public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Nate DeSimone" <nathaniel.l.desimone@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Kubacki, Michael A" <michael.a.kubacki@intel.com>
Cc: "Chaganty, Rangasai V" <rangasai.v.chaganty@intel.com>,
	"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [edk2-devel] [edk2-platforms][PATCH V2 14/47] Features/Intel/IpmiFeaturePkg: Add libraries
Date: Tue, 3 Dec 2019 23:57:16 +0000	[thread overview]
Message-ID: <02A34F284D1DA44BB705E61F7180EF0AB5C13DB0@ORSMSX114.amr.corp.intel.com> (raw)
In-Reply-To: <20191128010614.43628-15-michael.a.kubacki@intel.com>

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Kubacki, Michael A
Sent: Wednesday, November 27, 2019 5:06 PM
To: devel@edk2.groups.io
Cc: Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Gao, Liming <liming.gao@intel.com>
Subject: [edk2-devel] [edk2-platforms][PATCH V2 14/47] Features/Intel/IpmiFeaturePkg: Add libraries

This change adds the libraries required for the IPMI feature to IpmiFeaturePkg.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com>
---
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec                                          |   9 +
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc                                     |  72 +++++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dsc                                          |   5 +
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLib.inf                   |  32 +++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/IpmiPlatformHookLibNull.inf |  26 ++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/IpmiCommandLib.h                            | 235 +++++++++++++++++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/IpmiPlatformHookLib.h                       |  23 ++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnApp.c             | 248 ++++++++++++++++++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnChassis.c         | 101 +++++++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnStorage.c         | 275 ++++++++++++++++++++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnTransport.c       |  81 ++++++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/IpmiPlatformHookLibNull.c   |  36 +++
 12 files changed, 1143 insertions(+)

diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec
index dfa8888e88..4c43fc5f49 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.d
+++ ec
@@ -22,6 +22,15 @@
 [Includes]
   Include
 
+[LibraryClasses]
+  ## @libraryclass  Provides services to send IPMI commands.
+  #
+  IpmiCommandLib|Include/Library/IpmiCommandLib.inf
+
+  ## @libraryclass  Provides an API for platform-specific IPMI hooks.
+  #
+  IpmiCommandLib|Include/Library/IpmiPlatformHookLib.h
+
 [Guids]
   gIpmiFeaturePkgTokenSpaceGuid  =  {0xc05283f6, 0xd6a8, 0x48f3, {0x9b, 0x59, 0xfb, 0xca, 0x71, 0x32, 0x0f, 0x12}}
 
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc
new file mode 100644
index 0000000000..c6a385108b
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeat
+++ ure.dsc
@@ -0,0 +1,72 @@
+## @file
+# This is a build description file for the Intelligent Platform Management Interface (IPMI) advanced feature.
+# This file should be included into another package DSC file to build this feature.
+#
+# The DEC files are used by the utilities that parse DSC and # INF 
+files to generate AutoGen.c and AutoGen.h files # for the build 
+infrastructure.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> # # 
+SPDX-License-Identifier: BSD-2-Clause-Patent # ##
+
+#######################################################################
+#########
+#
+# Defines Section - statements that will be processed to create a Makefile.
+#
+#######################################################################
+#########
+[Defines]
+
+#######################################################################
+#########
+#
+# Library Class section - list of all Library Classes needed by this feature.
+#
+#######################################################################
+#########
+[LibraryClasses]
+  #######################################
+  # Edk2 Packages
+  #######################################
+  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
+
+BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.in
+f
+  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+  IpmiLib|MdeModulePkg/Library/BaseIpmiLibNull/BaseIpmiLibNull.inf
+
+#######################################################################
+#########
+#
+# Component section - list of all components that need built for this feature.
+#
+# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
+#       into firmware volume images. This section is just a list of modules to compile from
+#       source into UEFI-compliant binaries.
+#       It is the FDF file that contains information on combining binary files into firmware
+#       volume images, whose concept is beyond UEFI and is described in PI specification.
+#       There may also be modules listed in this section that are not required in the FDF file,
+#       When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
+#       generated for it, but the binary will not be put into any firmware volume.
+#
+#######################################################################
+#########
+[Components]
+  #####################################
+  # IPMI Feature Package
+  #####################################
+
+  # Add library instances here that are not included in package 
+ components and should be tested  # in the package build.
+
+ OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandL
+ ib.inf
+ OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/Ipm
+ iPlatformHookLibNull.inf
+
+  # Add components here that should be included in the package build.
+
+#######################################################################
+############################
+#
+# BuildOptions Section - Define the module specific tool chain flags that should be used as
+#                        the default flags for a module. These flags are appended to any
+#                        standard flags that are defined by the build process. They can be
+#                        applied for any modules or only those modules with the specific
+#                        module style (EDK or EDKII) specified in [Components] section.
+#
+#######################################################################
+############################
+[BuildOptions]
+  *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dsc b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dsc
index 1952ba185e..623a52650f 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dsc
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.d
+++ sc
@@ -22,3 +22,8 @@
   SUPPORTED_ARCHITECTURES        = IA32|X64
   BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT
   SKUID_IDENTIFIER               = DEFAULT
+
+#
+# This package always builds the feature.
+#
+!include Include/IpmiFeature.dsc
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLib.inf b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLib.inf
new file mode 100644
index 0000000000..0bdace8688
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiComm
+++ andLib/IpmiCommandLib.inf
@@ -0,0 +1,32 @@
+### @file
+# Component description file for IPMI Command Library.
+#
+# Copyright (c) 2018 - 2019, Intel Corporation. All rights 
+reserved.<BR> # # SPDX-License-Identifier: BSD-2-Clause-Patent # ###
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = IpmiCommandLib
+  FILE_GUID                      = E599C9C7-5913-40A0-8669-67282E2BEC53
+  MODULE_TYPE                    = UEFI_DRIVER
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = IpmiCommandLib
+
+[sources]
+  IpmiCommandLibNetFnApp.c
+  IpmiCommandLibNetFnTransport.c
+  IpmiCommandLibNetFnChassis.c
+  IpmiCommandLibNetFnStorage.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec
+
+[LibraryClasses]
+  BaseMemoryLib
+  DebugLib
+  IpmiLib
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/IpmiPlatformHookLibNull.inf b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/IpmiPlatformHookLibNull.inf
new file mode 100644
index 0000000000..ab270079aa
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlat
+++ formHookLibNull/IpmiPlatformHookLibNull.inf
@@ -0,0 +1,26 @@
+### @file
+# Component description file for IPMI platform Library.
+#
+# Copyright (c) 2018 - 2019, Intel Corporation. All rights 
+reserved.<BR> # # SPDX-License-Identifier: BSD-2-Clause-Patent # ###
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = IpmiPlatformHookLibNull
+  FILE_GUID                      = C31A5B17-81DB-4D86-B376-17711BB6E0A5
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = IpmiPlatformHookLib
+
+[sources]
+  IpmiPlatformHookLibNull.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec
+
+[LibraryClasses]
+  DebugLib
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/IpmiCommandLib.h b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/IpmiCommandLib.h
new file mode 100644
index 0000000000..9b761717d4
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/
+++ IpmiCommandLib.h
@@ -0,0 +1,235 @@
+/** @file
+  This library abstract how to send/receive IPMI command.
+
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _IPMI_COMMAND_LIB_H_
+#define _IPMI_COMMAND_LIB_H_
+
+#include <Uefi.h>
+#include <IndustryStandard/Ipmi.h>
+
+//
+// NetFnApp
+//
+EFI_STATUS
+EFIAPI
+IpmiGetDeviceId (
+  OUT IPMI_GET_DEVICE_ID_RESPONSE  *DeviceId
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelfTestResult (
+  OUT IPMI_SELF_TEST_RESULT_RESPONSE   *SelfTestResult
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiResetWatchdogTimer (
+  OUT UINT8                            *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiSetWatchdogTimer (
+  IN  IPMI_SET_WATCHDOG_TIMER_REQUEST  *SetWatchdogTimer,
+  OUT UINT8                            *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetWatchdogTimer (
+  OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiSetBmcGlobalEnables (
+  IN  IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST  *SetBmcGlobalEnables,
+  OUT UINT8                                *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetBmcGlobalEnables (
+  OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiClearMessageFlags (
+  IN  IPMI_CLEAR_MESSAGE_FLAGS_REQUEST  *ClearMessageFlagsRequest,
+  OUT UINT8                             *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetMessageFlags (
+  OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetMessage (
+  OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse,
+  IN OUT UINT32                 *GetMessageResponseSize
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiSendMessage (
+  IN  IPMI_SEND_MESSAGE_REQUEST  *SendMessageRequest,
+  IN  UINT32                     SendMessageRequestSize,
+  OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse,
+  IN OUT UINT32                  *SendMessageResponseSize
+  );
+
+//
+// NetFnTransport
+//
+EFI_STATUS
+EFIAPI
+IpmiSolActivating (
+  IN  IPMI_SOL_ACTIVATING_REQUEST  *SolActivatingRequest,
+  OUT UINT8                        *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiSetSolConfigurationParameters (
+  IN  IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST  *SetConfigurationParametersRequest,
+  IN  UINT32                                         SetConfigurationParametersRequestSize,
+  OUT UINT8                                          *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetSolConfigurationParameters (
+  IN  IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST
+*GetConfigurationParametersRequest,
+  OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse,
+  IN OUT UINT32                                      *GetConfigurationParametersResponseSize
+  );
+
+//
+// NetFnChasis
+//
+EFI_STATUS
+EFIAPI
+IpmiGetChassisCapabilities (
+  OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE
+*GetChassisCapabilitiesResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetChassisStatus (
+  OUT IPMI_GET_CHASSIS_STATUS_RESPONSE  *GetChassisStatusResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiChassisControl (
+  IN IPMI_CHASSIS_CONTROL_REQUEST  *ChassisControlRequest,
+  OUT UINT8                        *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiSetPowerRestorePolicy (
+  IN  IPMI_SET_POWER_RESTORE_POLICY_REQUEST  *ChassisControlRequest,
+  OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *ChassisControlResponse
+  );
+
+//
+// NetFnStorage
+//
+EFI_STATUS
+EFIAPI
+IpmiGetFruInventoryAreaInfo (
+  IN  IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST   *GetFruInventoryAreaInfoRequest,
+  OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE
+*GetFruInventoryAreaInfoResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiReadFruData (
+  IN  IPMI_READ_FRU_DATA_REQUEST        *ReadFruDataRequest,
+  OUT IPMI_READ_FRU_DATA_RESPONSE       *ReadFruDataResponse,
+  IN OUT UINT32                         *ReadFruDataResponseSize
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiWriteFruData (
+  IN  IPMI_WRITE_FRU_DATA_REQUEST       *WriteFruDataRequest,
+  IN  UINT32                            WriteFruDataRequestSize,
+  OUT IPMI_WRITE_FRU_DATA_RESPONSE      *WriteFruDataResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelInfo (
+  OUT IPMI_GET_SEL_INFO_RESPONSE  *GetSelInfoResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelEntry (
+  IN IPMI_GET_SEL_ENTRY_REQUEST    *GetSelEntryRequest,
+  OUT IPMI_GET_SEL_ENTRY_RESPONSE  *GetSelEntryResponse,
+  IN OUT UINT32                    *GetSelEntryResponseSize
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiAddSelEntry (
+  IN IPMI_ADD_SEL_ENTRY_REQUEST    *AddSelEntryRequest,
+  OUT IPMI_ADD_SEL_ENTRY_RESPONSE  *AddSelEntryResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiPartialAddSelEntry (
+  IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST    *PartialAddSelEntryRequest,
+  IN UINT32                                PartialAddSelEntryRequestSize,
+  OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE  *PartialAddSelEntryResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiClearSel (
+  IN IPMI_CLEAR_SEL_REQUEST   *ClearSelRequest,
+  OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelTime (
+  OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiSetSelTime (
+  IN IPMI_SET_SEL_TIME_REQUEST  *SetSelTimeRequest,
+  OUT UINT8                     *CompletionCode
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetSdrRepositoryInfo (
+  OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE  *GetSdrRepositoryInfoResp
+  );
+
+EFI_STATUS
+EFIAPI
+IpmiGetSdr (
+  IN  IPMI_GET_SDR_REQUEST          *GetSdrRequest,
+  OUT IPMI_GET_SDR_RESPONSE         *GetSdrResponse,
+  IN OUT UINT32                     *GetSdrResponseSize
+  );
+
+#endif
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/IpmiPlatformHookLib.h b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/IpmiPlatformHookLib.h
new file mode 100644
index 0000000000..8359e3f38b
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/Library/
+++ IpmiPlatformHookLib.h
@@ -0,0 +1,23 @@
+/** @file
+  This library abstract the platform specific hook for IPMI.
+
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _IPMI_PLATFORM_UPDATE_LIB_H_
+#define _IPMI_PLATFORM_UPDATE_LIB_H_
+
+#include <Uefi.h>
+#include <IndustryStandard/Acpi.h>
+#include <Protocol/Smbios.h>
+
+EFI_STATUS
+EFIAPI
+PlatformIpmiIoRangeSet(
+  UINT16 IpmiIoBase
+  );
+
+#endif
+
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnApp.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnApp.c
new file mode 100644
index 0000000000..b57db50610
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiComm
+++ andLib/IpmiCommandLibNetFnApp.c
@@ -0,0 +1,248 @@
+/** @file
+  IPMI Command - NetFnApp.
+
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <PiPei.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/IpmiLib.h>
+
+#include <IndustryStandard/Ipmi.h>
+
+EFI_STATUS
+EFIAPI
+IpmiGetDeviceId (
+  OUT IPMI_GET_DEVICE_ID_RESPONSE  *DeviceId
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*DeviceId);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_GET_DEVICE_ID,
+             NULL,
+             0,
+             (VOID *)DeviceId,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelfTestResult (
+  OUT IPMI_SELF_TEST_RESULT_RESPONSE   *SelfTestResult
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*SelfTestResult);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_GET_SELFTEST_RESULTS,
+             NULL,
+             0,
+             (VOID *)SelfTestResult,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiResetWatchdogTimer (
+  OUT UINT8                            *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_RESET_WATCHDOG_TIMER,
+             NULL,
+             0,
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiSetWatchdogTimer (
+  IN  IPMI_SET_WATCHDOG_TIMER_REQUEST  *SetWatchdogTimer,
+  OUT UINT8                            *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_SET_WATCHDOG_TIMER,
+             (VOID *)SetWatchdogTimer,
+             sizeof(*SetWatchdogTimer),
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetWatchdogTimer (
+  OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetWatchdogTimer);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_GET_WATCHDOG_TIMER,
+             NULL,
+             0,
+             (VOID *)GetWatchdogTimer,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiSetBmcGlobalEnables (
+  IN  IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST  *SetBmcGlobalEnables,
+  OUT UINT8                                *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_SET_BMC_GLOBAL_ENABLES,
+             (VOID *)SetBmcGlobalEnables,
+             sizeof(*SetBmcGlobalEnables),
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetBmcGlobalEnables (
+  OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetBmcGlobalEnables);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_GET_BMC_GLOBAL_ENABLES,
+             NULL,
+             0,
+             (VOID *)GetBmcGlobalEnables,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiClearMessageFlags (
+  IN  IPMI_CLEAR_MESSAGE_FLAGS_REQUEST  *ClearMessageFlagsRequest,
+  OUT UINT8                             *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_CLEAR_MESSAGE_FLAGS,
+             (VOID *)ClearMessageFlagsRequest,
+             sizeof(*ClearMessageFlagsRequest),
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetMessageFlags (
+  OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetMessageFlagsResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_GET_MESSAGE_FLAGS,
+             NULL,
+             0,
+             (VOID *)GetMessageFlagsResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetMessage (
+  OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse,
+  IN OUT UINT32                 *GetMessageResponseSize
+  )
+{
+  EFI_STATUS                   Status;
+
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_GET_MESSAGE,
+             NULL,
+             0,
+             (VOID *)GetMessageResponse,
+             GetMessageResponseSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiSendMessage (
+  IN  IPMI_SEND_MESSAGE_REQUEST  *SendMessageRequest,
+  IN  UINT32                     SendMessageRequestSize,
+  OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse,
+  IN OUT UINT32                  *SendMessageResponseSize
+  )
+{
+  EFI_STATUS                   Status;
+
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_APP,
+             IPMI_APP_SEND_MESSAGE,
+             (VOID *)SendMessageRequest,
+             SendMessageRequestSize,
+             (VOID *)SendMessageResponse,
+             SendMessageResponseSize
+             );
+  return Status;
+}
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnChassis.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnChassis.c
new file mode 100644
index 0000000000..1b86aa888e
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiComm
+++ andLib/IpmiCommandLibNetFnChassis.c
@@ -0,0 +1,101 @@
+/** @file
+  IPMI Command - NetFnChassis.
+
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <PiPei.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/IpmiLib.h>
+
+#include <IndustryStandard/Ipmi.h>
+
+
+EFI_STATUS
+EFIAPI
+IpmiGetChassisCapabilities (
+  OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE
+*GetChassisCapabilitiesResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetChassisCapabilitiesResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_CHASSIS,
+             IPMI_CHASSIS_GET_CAPABILITIES,
+             NULL,
+             0,
+             (VOID *)GetChassisCapabilitiesResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetChassisStatus (
+  OUT IPMI_GET_CHASSIS_STATUS_RESPONSE  *GetChassisStatusResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetChassisStatusResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_CHASSIS,
+             IPMI_CHASSIS_GET_STATUS,
+             NULL,
+             0,
+             (VOID *)GetChassisStatusResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiChassisControl (
+  IN IPMI_CHASSIS_CONTROL_REQUEST  *ChassisControlRequest,
+  OUT UINT8                        *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_CHASSIS,
+             IPMI_CHASSIS_CONTROL,
+             (VOID *)ChassisControlRequest,
+             sizeof(*ChassisControlRequest),
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiSetPowerRestorePolicy (
+  IN  IPMI_SET_POWER_RESTORE_POLICY_REQUEST  *ChassisControlRequest,
+  OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *ChassisControlResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*ChassisControlResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_CHASSIS,
+             IPMI_CHASSIS_SET_POWER_RESTORE_POLICY,
+             (VOID *)ChassisControlRequest,
+             sizeof(*ChassisControlRequest),
+             (VOID *)ChassisControlResponse,
+             &DataSize
+             );
+  return Status;
+}
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnStorage.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnStorage.c
new file mode 100644
index 0000000000..8e892c5f84
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiComm
+++ andLib/IpmiCommandLibNetFnStorage.c
@@ -0,0 +1,275 @@
+/** @file
+  IPMI Command - NetFnStorage.
+
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <PiPei.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/IpmiLib.h>
+
+#include <IndustryStandard/Ipmi.h>
+
+
+EFI_STATUS
+EFIAPI
+IpmiGetFruInventoryAreaInfo (
+  IN  IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST   *GetFruInventoryAreaInfoRequest,
+  OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE
+*GetFruInventoryAreaInfoResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetFruInventoryAreaInfoResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_GET_FRU_INVENTORY_AREAINFO,
+             (VOID *)GetFruInventoryAreaInfoRequest,
+             sizeof(*GetFruInventoryAreaInfoRequest),
+             (VOID *)GetFruInventoryAreaInfoResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiReadFruData (
+  IN  IPMI_READ_FRU_DATA_REQUEST        *ReadFruDataRequest,
+  OUT IPMI_READ_FRU_DATA_RESPONSE       *ReadFruDataResponse,
+  IN OUT UINT32                         *ReadFruDataResponseSize
+  )
+{
+  EFI_STATUS                   Status;
+
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_READ_FRU_DATA,
+             (VOID *)ReadFruDataRequest,
+             sizeof(*ReadFruDataRequest),
+             (VOID *)ReadFruDataResponse,
+             ReadFruDataResponseSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiWriteFruData (
+  IN  IPMI_WRITE_FRU_DATA_REQUEST       *WriteFruDataRequest,
+  IN  UINT32                            WriteFruDataRequestSize,
+  OUT IPMI_WRITE_FRU_DATA_RESPONSE      *WriteFruDataResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*WriteFruDataResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_WRITE_FRU_DATA,
+             (VOID *)WriteFruDataRequest,
+             WriteFruDataRequestSize,
+             (VOID *)WriteFruDataResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelInfo (
+  OUT IPMI_GET_SEL_INFO_RESPONSE  *GetSelInfoResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetSelInfoResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_GET_SEL_INFO,
+             NULL,
+             0,
+             (VOID *)GetSelInfoResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelEntry (
+  IN IPMI_GET_SEL_ENTRY_REQUEST    *GetSelEntryRequest,
+  OUT IPMI_GET_SEL_ENTRY_RESPONSE  *GetSelEntryResponse,
+  IN OUT UINT32                    *GetSelEntryResponseSize
+  )
+{
+  EFI_STATUS                   Status;
+
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_GET_SEL_ENTRY,
+             (VOID *)GetSelEntryRequest,
+             sizeof(*GetSelEntryRequest),
+             (VOID *)GetSelEntryResponse,
+             GetSelEntryResponseSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiAddSelEntry (
+  IN IPMI_ADD_SEL_ENTRY_REQUEST    *AddSelEntryRequest,
+  OUT IPMI_ADD_SEL_ENTRY_RESPONSE  *AddSelEntryResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*AddSelEntryResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_ADD_SEL_ENTRY,
+             (VOID *)AddSelEntryRequest,
+             sizeof(*AddSelEntryRequest),
+             (VOID *)AddSelEntryResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiPartialAddSelEntry (
+  IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST    *PartialAddSelEntryRequest,
+  IN UINT32                                PartialAddSelEntryRequestSize,
+  OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE  *PartialAddSelEntryResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*PartialAddSelEntryResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_PARTIAL_ADD_SEL_ENTRY,
+             (VOID *)PartialAddSelEntryRequest,
+             PartialAddSelEntryRequestSize,
+             (VOID *)PartialAddSelEntryResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiClearSel (
+  IN IPMI_CLEAR_SEL_REQUEST   *ClearSelRequest,
+  OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*ClearSelResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_CLEAR_SEL,
+             (VOID *)ClearSelRequest,
+             sizeof(*ClearSelRequest),
+             (VOID *)ClearSelResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetSelTime (
+  OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetSelTimeResponse);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_GET_SEL_TIME,
+             NULL,
+             0,
+             (VOID *)GetSelTimeResponse,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiSetSelTime (
+  IN IPMI_SET_SEL_TIME_REQUEST  *SetSelTimeRequest,
+  OUT UINT8                     *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_SET_SEL_TIME,
+             (VOID *)SetSelTimeRequest,
+             sizeof(*SetSelTimeRequest),
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetSdrRepositoryInfo (
+  OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE  *GetSdrRepositoryInfoResp
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*GetSdrRepositoryInfoResp);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_GET_SDR_REPOSITORY_INFO,
+             NULL,
+             0,
+             (VOID *)GetSdrRepositoryInfoResp,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetSdr (
+  IN  IPMI_GET_SDR_REQUEST          *GetSdrRequest,
+  OUT IPMI_GET_SDR_RESPONSE         *GetSdrResponse,
+  IN OUT UINT32                     *GetSdrResponseSize
+  )
+{
+  EFI_STATUS                   Status;
+
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_STORAGE,
+             IPMI_STORAGE_GET_SDR,
+             (VOID *)GetSdrRequest,
+             sizeof(*GetSdrRequest),
+             (VOID *)GetSdrResponse,
+             GetSdrResponseSize
+             );
+  return Status;
+}
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnTransport.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiCommandLib/IpmiCommandLibNetFnTransport.c
new file mode 100644
index 0000000000..3b9b17b909
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiComm
+++ andLib/IpmiCommandLibNetFnTransport.c
@@ -0,0 +1,81 @@
+/** @file
+  IPMI Command - NetFnTransport.
+
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <PiPei.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/IpmiLib.h>
+
+#include <IndustryStandard/Ipmi.h>
+
+
+EFI_STATUS
+EFIAPI
+IpmiSolActivating (
+  IN  IPMI_SOL_ACTIVATING_REQUEST  *SolActivatingRequest,
+  OUT UINT8                        *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_TRANSPORT,
+             IPMI_TRANSPORT_SOL_ACTIVATING,
+             (VOID *)SolActivatingRequest,
+             sizeof(*SolActivatingRequest),
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiSetSolConfigurationParameters (
+  IN  IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST  *SetConfigurationParametersRequest,
+  IN  UINT32                                         SetConfigurationParametersRequestSize,
+  OUT UINT8                                          *CompletionCode
+  )
+{
+  EFI_STATUS                   Status;
+  UINT32                       DataSize;
+
+  DataSize = sizeof(*CompletionCode);
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_TRANSPORT,
+             IPMI_TRANSPORT_SET_SOL_CONFIG_PARAM,
+             (VOID *)SetConfigurationParametersRequest,
+             SetConfigurationParametersRequestSize,
+             (VOID *)CompletionCode,
+             &DataSize
+             );
+  return Status;
+}
+
+EFI_STATUS
+EFIAPI
+IpmiGetSolConfigurationParameters (
+  IN  IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST
+*GetConfigurationParametersRequest,
+  OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse,
+  IN OUT UINT32                                      *GetConfigurationParametersResponseSize
+  )
+{
+  EFI_STATUS                   Status;
+
+  Status = IpmiSubmitCommand (
+             IPMI_NETFN_TRANSPORT,
+             IPMI_TRANSPORT_GET_SOL_CONFIG_PARAM,
+             (VOID *)GetConfigurationParametersRequest,
+             sizeof(*GetConfigurationParametersRequest),
+             (VOID *)GetConfigurationParametersResponse,
+             GetConfigurationParametersResponseSize
+             );
+  return Status;
+}
diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/IpmiPlatformHookLibNull.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlatformHookLibNull/IpmiPlatformHookLibNull.c
new file mode 100644
index 0000000000..bdc8d23827
--- /dev/null
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Library/IpmiPlat
+++ formHookLibNull/IpmiPlatformHookLibNull.c
@@ -0,0 +1,36 @@
+/** @file
+  IPMI platform hook library.
+
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/IpmiPlatformHookLib.h>
+
+//
+// Prototype definitions for IPMI Platform Update Library // EFI_STATUS 
+EFIAPI PlatformIpmiIoRangeSet(
+  UINT16 IpmiIoBase
+  )
+/*++
+
+  Routine Description:
+
+  This function sets IPMI Io range
+
+  Arguments:
+
+   IpmiIoBase
+
+  Returns:
+
+    Status
+
+--*/
+{
+  return EFI_SUCCESS;
+}
--
2.16.2.windows.1





  reply	other threads:[~2019-12-03 23:57 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-28  1:05 [edk2-platforms][PATCH V2 00/47] Intel Advanced Feature Refactor Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 01/47] AdvancedFeaturePkg: Package DSC style cleanup Kubacki, Michael A
2019-12-03  8:45   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 02/47] DebugFeaturePkg: " Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 03/47] UserInterfaceFeaturePkg: " Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 04/47] Features/Intel: Add Readme.md Kubacki, Michael A
2019-12-03  9:07   ` Chaganty, Rangasai V
2019-12-03 23:57   ` Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 05/47] Features/Intel/PowerManagement: " Kubacki, Michael A
2019-12-03  9:14   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 06/47] Features/Intel/OutOfBandManagement: " Kubacki, Michael A
2019-12-03  9:22   ` Chaganty, Rangasai V
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 07/47] Features/Intel/SystemInformation: " Kubacki, Michael A
2019-12-03  9:30   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 08/47] Features/Intel/Debugging: " Kubacki, Michael A
2019-12-03  9:32   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 09/47] Features/Intel/UserInterface: " Kubacki, Michael A
2019-12-03  9:36   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 10/47] Features/Intel/Network: " Kubacki, Michael A
2019-12-03  9:38   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 11/47] TemplateFeaturePkg: Add initial package Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 12/47] Features/Intel/S3FeaturePkg: " Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 13/47] Features/Intel/IpmiFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-12-04  7:53   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 14/47] Features/Intel/IpmiFeaturePkg: Add libraries Kubacki, Michael A
2019-12-03 23:57   ` Nate DeSimone [this message]
2019-12-04  8:10   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 15/47] Features/Intel/IpmiFeaturePkg: Add modules Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-12-04  8:22   ` Chaganty, Rangasai V
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 16/47] Features/Intel/SmbiosFeaturePkg: Add initial package Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 17/47] Features/Intel/SmbiosFeaturePkg: Update default strings Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 18/47] Features/Intel/AcpiDebugFeaturePkg: Add initial package Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 19/47] Features/Intel/Usb3DebugFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 20/47] Features/Intel/UserAuthFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 21/47] Features/Intel/NetworkFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 22/47] Features/Intel/AdvancedFeaturePkg: Add package Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 23/47] Features/Intel/AdvancedFeaturePkg: Add temporary build workaround Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 24/47] Features/Intel/AdvancedFeaturePkg: Add FDF include files Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 25/47] KabylakeOpenBoardPkg/KabylakeRvp3: Add PEI_ARCH and DXE_ARCH Kubacki, Michael A
2019-11-29  6:42   ` [edk2-devel] " Chiu, Chasel
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 26/47] KabylakeOpenBoardPkg/GalagoPro3: " Kubacki, Michael A
2019-11-29  6:43   ` Chiu, Chasel
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 27/47] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: " Kubacki, Michael A
2019-11-29  6:43   ` [edk2-devel] " Chiu, Chasel
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 28/47] SimicsOpenBoardPkg/BoardX58Ich10: Use " Kubacki, Michael A
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 29/47] MinPlatformPkg: Add FvAdvancedPreMemory Kubacki, Michael A
2019-11-29  6:43   ` [edk2-devel] " Chiu, Chasel
2019-12-03 23:57   ` Nate DeSimone
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 30/47] KabylakeOpenBoardPkg/KabylakeRvp3: " Kubacki, Michael A
2019-11-29  6:45   ` Chiu, Chasel
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 31/47] KabylakeOpenBoardPkg/GalagoPro3: " Kubacki, Michael A
2019-11-29  6:49   ` Chiu, Chasel
2019-11-28  1:05 ` [edk2-platforms][PATCH V2 32/47] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: " Kubacki, Michael A
2019-11-29  6:50   ` Chiu, Chasel
2019-11-28  1:06 ` [edk2-platforms][PATCH V2 33/47] Platform/Intel: Add advanced feature build support Kubacki, Michael A
2019-11-29  6:52   ` Chiu, Chasel
2019-11-28  1:06 ` [edk2-platforms][PATCH V2 34/47] Platform/Intel/Readme.md Content update Kubacki, Michael A
2019-11-28  1:06 ` [edk2-platforms][PATCH V2 35/47] KabylakeOpenBoardPkg/GalagoPro3: Enable advanced features Kubacki, Michael A
2019-11-29  7:00   ` Chiu, Chasel
2019-11-28  1:06 ` [edk2-platforms][PATCH V2 36/47] KabylakeOpenBoardPkg/KabylakeRvp3: " Kubacki, Michael A
2019-11-29  7:01   ` Chiu, Chasel
2019-11-28  1:06 ` [edk2-platforms][PATCH V2 37/47] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: " Kubacki, Michael A
2019-11-29  7:02   ` Chiu, Chasel
2019-11-28  1:06 ` [edk2-platforms][PATCH V2 38/47] SimicsOpenBoardPkg: Use new advanced feature refactor Kubacki, Michael A
2019-12-03 23:57   ` [edk2-devel] " Nate DeSimone

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=02A34F284D1DA44BB705E61F7180EF0AB5C13DB0@ORSMSX114.amr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox