]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/IpmiCommandLib: Add NULL instance library
authorAbner Chang <abner.chang@amd.com>
Mon, 26 Dec 2022 07:06:55 +0000 (15:06 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 19 Jan 2023 03:57:32 +0000 (03:57 +0000)
The NULL instance of IpmiCommandLib library under
MdeModulePkg as the default IpmiCommandLib instance
used by the modules under edk2.

Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiCommandLibNull.inf [new file with mode: 0644]
MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnApp.c [new file with mode: 0644]
MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnChassis.c [new file with mode: 0644]
MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnStorage.c [new file with mode: 0644]
MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnTransport.c [new file with mode: 0644]

diff --git a/MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiCommandLibNull.inf b/MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiCommandLibNull.inf
new file mode 100644 (file)
index 0000000..175e1ae
--- /dev/null
@@ -0,0 +1,34 @@
+## @file\r
+# NULL instance of IpmiCommandLib\r
+#\r
+# Component description file for IPMI Command Library.\r
+#\r
+# Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>\r
+#\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+#\r
+##\r
+\r
+[Defines]\r
+  INF_VERSION                    = 0x00010005\r
+  BASE_NAME                      = BaseIpmiCommandLibNull\r
+  FILE_GUID                      = 63F06EF8-B78A-4E7E-823E-D11A21059669\r
+  MODULE_TYPE                    = BASE\r
+  VERSION_STRING                 = 1.0\r
+  LIBRARY_CLASS                  = IpmiCommandLib\r
+\r
+[sources]\r
+  IpmiCommandLibNetFnApp.c\r
+  IpmiCommandLibNetFnTransport.c\r
+  IpmiCommandLibNetFnChassis.c\r
+  IpmiCommandLibNetFnStorage.c\r
+\r
+[Packages]\r
+  MdePkg/MdePkg.dec\r
+  MdeModulePkg/MdeModulePkg.dec\r
+\r
+[LibraryClasses]\r
+  BaseMemoryLib\r
+  DebugLib\r
+\r
diff --git a/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnApp.c b/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnApp.c
new file mode 100644 (file)
index 0000000..2312e08
--- /dev/null
@@ -0,0 +1,252 @@
+/** @file\r
+  IPMI Command - NetFnApp NULL instance library.\r
+\r
+  Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+#include <Uefi.h>\r
+#include <IndustryStandard/Ipmi.h>\r
+\r
+/**\r
+  This function gets the IPMI Device ID.\r
+\r
+  @param[out] DeviceId  Get device ID response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetDeviceId (\r
+  OUT IPMI_GET_DEVICE_ID_RESPONSE  *DeviceId\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets the self-test result.\r
+\r
+  @param[out] SelfTestResult  Self test command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSelfTestResult (\r
+  OUT IPMI_SELF_TEST_RESULT_RESPONSE  *SelfTestResult\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function resets watchdog timer.\r
+\r
+  @param[out] CompletionCode  The command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiResetWatchdogTimer (\r
+  OUT UINT8  *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sets watchdog timer.\r
+\r
+  @param[in] SetWatchdogTimer  Set watchdog timer request.\r
+  @param[out] CompletionCode   The command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSetWatchdogTimer (\r
+  IN  IPMI_SET_WATCHDOG_TIMER_REQUEST  *SetWatchdogTimer,\r
+  OUT UINT8                            *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets watchdog timer.\r
+\r
+  @param[out] GetWatchdogTimer  Get watchdog timer response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetWatchdogTimer (\r
+  OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE  *GetWatchdogTimer\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sets BMC global enables.\r
+\r
+  @param[in]  SetBmcGlobalEnables    Set BMC global enables command request.\r
+  @param[out] CompletionCode         The command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSetBmcGlobalEnables (\r
+  IN  IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST  *SetBmcGlobalEnables,\r
+  OUT UINT8                                *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets BMC global enables.\r
+\r
+  @param[out]  GetBmcGlobalEnables  Get BMC global enables command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetBmcGlobalEnables (\r
+  OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE  *GetBmcGlobalEnables\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function clears message flag.\r
+\r
+  @param[in]    ClearMessageFlagsRequest  Clear message flags command Request.\r
+  @param[out]   CompletionCode            The command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiClearMessageFlags (\r
+  IN  IPMI_CLEAR_MESSAGE_FLAGS_REQUEST  *ClearMessageFlagsRequest,\r
+  OUT UINT8                             *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets message flags.\r
+\r
+  @param[out]    GetMessageFlagsResponse  Get message flags response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetMessageFlags (\r
+  OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE  *GetMessageFlagsResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets message.\r
+\r
+  @param[out]     GetMessageResponse      Get message command response.\r
+  @param[in,out]  GetMessageResponseSize  The size of get message response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetMessage (\r
+  OUT IPMI_GET_MESSAGE_RESPONSE  *GetMessageResponse,\r
+  IN OUT UINT32                  *GetMessageResponseSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sends message.\r
+\r
+  @param[in]     SendMessageRequest        The send message command request.\r
+  @param[in]     SendMessageRequestSize    The size of the send message command request.\r
+  @param[out]    SendMessageResponse       The send message command response.\r
+  @param[in,out] SendMessageResponseSize   The size of the send message command response.\r
+                                           When input, the expected size of response.\r
+                                           When output, the actual size of response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSendMessage (\r
+  IN  IPMI_SEND_MESSAGE_REQUEST   *SendMessageRequest,\r
+  IN  UINT32                      SendMessageRequestSize,\r
+  OUT IPMI_SEND_MESSAGE_RESPONSE  *SendMessageResponse,\r
+  IN OUT UINT32                   *SendMessageResponseSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets the system UUID.\r
+\r
+  @param[out] SystemGuid   The pointer to retrieve system UUID.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSystemUuid (\r
+  OUT EFI_GUID  *SystemGuid\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets the channel information.\r
+\r
+  @param[in] GetChannelInfoRequest           The get channel information request.\r
+  @param[out] GetChannelInfoResponse         The get channel information response.\r
+  @param[out] GetChannelInfoResponseSize     When input, the expected size of response.\r
+                                             When output, the exact size of the returned\r
+                                             response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetChannelInfo (\r
+  IN  IPMI_GET_CHANNEL_INFO_REQUEST   *GetChannelInfoRequest,\r
+  OUT IPMI_GET_CHANNEL_INFO_RESPONSE  *GetChannelInfoResponse,\r
+  OUT UINT32                          *GetChannelInfoResponseSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
diff --git a/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnChassis.c b/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnChassis.c
new file mode 100644 (file)
index 0000000..300a9b0
--- /dev/null
@@ -0,0 +1,123 @@
+/** @file\r
+  IPMI Command - NetFnChassis NULL instance library.\r
+\r
+  Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+#include <Uefi.h>\r
+#include <IndustryStandard/Ipmi.h>\r
+\r
+/**\r
+  This function gets chassis capability.\r
+\r
+  @param[out] GetChassisCapabilitiesResponse  Gets chassis capability command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetChassisCapabilities (\r
+  OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE  *GetChassisCapabilitiesResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets chassis status.\r
+\r
+  @param[out] GetChassisStatusResponse  The get chassis status command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetChassisStatus (\r
+  OUT IPMI_GET_CHASSIS_STATUS_RESPONSE  *GetChassisStatusResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sends chassis control request.\r
+\r
+  @param[in]  ChassisControlRequest  The chassis control request.\r
+  @param[out] CompletionCode         The command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiChassisControl (\r
+  IN IPMI_CHASSIS_CONTROL_REQUEST  *ChassisControlRequest,\r
+  OUT UINT8                        *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sets power restore policy.\r
+\r
+  @param[in]  ChassisControlRequest    The set power restore policy control\r
+                                       command request.\r
+  @param[out] ChassisControlResponse   The response of power restore policy.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSetPowerRestorePolicy (\r
+  IN  IPMI_SET_POWER_RESTORE_POLICY_REQUEST   *ChassisControlRequest,\r
+  OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE  *ChassisControlResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sets system boot option.\r
+\r
+  @param[in]  BootOptionsRequest    Set system boot option request.\r
+  @param[out] BootOptionsResponse   The response of set system boot\r
+                                    option request.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSetSystemBootOptions (\r
+  IN  IPMI_SET_BOOT_OPTIONS_REQUEST   *BootOptionsRequest,\r
+  OUT IPMI_SET_BOOT_OPTIONS_RESPONSE  *BootOptionsResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets system boot option.\r
+\r
+  @param[in]  BootOptionsRequest    Get system boot option request.\r
+  @param[out] BootOptionsResponse   The response of get system boot\r
+                                    option request.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSystemBootOptions (\r
+  IN  IPMI_GET_BOOT_OPTIONS_REQUEST   *BootOptionsRequest,\r
+  OUT IPMI_GET_BOOT_OPTIONS_RESPONSE  *BootOptionsResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
diff --git a/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnStorage.c b/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnStorage.c
new file mode 100644 (file)
index 0000000..9e5ac95
--- /dev/null
@@ -0,0 +1,248 @@
+/** @file\r
+  IPMI Command - NetFnStorage NULL instance library.\r
+\r
+  Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+#include <Uefi.h>\r
+#include <IndustryStandard/Ipmi.h>\r
+\r
+/**\r
+  This function gets FRU inventory area info.\r
+\r
+  @param[in]  GetFruInventoryAreaInfoRequest    Get FRU inventory area command request.\r
+  @param[out] GetFruInventoryAreaInfoResponse   get FRU inventory area command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetFruInventoryAreaInfo (\r
+  IN  IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST   *GetFruInventoryAreaInfoRequest,\r
+  OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE  *GetFruInventoryAreaInfoResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function reads FRU data.\r
+\r
+  @param[in]      ReadFruDataRequest       Read FRU data command request.\r
+  @param[out]     ReadFruDataResponse      Read FRU data command response.\r
+  @param[in,out]  ReadFruDataResponseSize  Size of the read FRU data response.\r
+                                           When input, the expected size of response data.\r
+                                           When out, the exact size of response data.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiReadFruData (\r
+  IN  IPMI_READ_FRU_DATA_REQUEST   *ReadFruDataRequest,\r
+  OUT IPMI_READ_FRU_DATA_RESPONSE  *ReadFruDataResponse,\r
+  IN OUT UINT32                    *ReadFruDataResponseSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets chassis capability.\r
+\r
+  @param[in]    WriteFruDataRequest      Write FRU data command request.\r
+  @param[in]    WriteFruDataRequestSize  Size of the write FRU data command request.\r
+  @param[out]   WriteFruDataResponse     Write FRU data response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiWriteFruData (\r
+  IN  IPMI_WRITE_FRU_DATA_REQUEST   *WriteFruDataRequest,\r
+  IN  UINT32                        WriteFruDataRequestSize,\r
+  OUT IPMI_WRITE_FRU_DATA_RESPONSE  *WriteFruDataResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets SEL information.\r
+\r
+  @param[out]    GetSelInfoResponse    Get SEL information command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSelInfo (\r
+  OUT IPMI_GET_SEL_INFO_RESPONSE  *GetSelInfoResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets SEL entry.\r
+\r
+  @param[in]      GetSelEntryRequest       Get SEL entry command request.\r
+  @param[out]     GetSelEntryResponse      Get SEL entry command response.\r
+  @param[in,out]  GetSelEntryResponseSize  Size of Get SEL entry request.\r
+                                           When input, the expected size of response data.\r
+                                           When out, the exact size of response data.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSelEntry (\r
+  IN IPMI_GET_SEL_ENTRY_REQUEST    *GetSelEntryRequest,\r
+  OUT IPMI_GET_SEL_ENTRY_RESPONSE  *GetSelEntryResponse,\r
+  IN OUT UINT32                    *GetSelEntryResponseSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function adds SEL entry.\r
+\r
+  @param[in]    AddSelEntryRequest       Add SEL entry command request.\r
+  @param[out]   AddSelEntryResponse      Add SEL entry command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiAddSelEntry (\r
+  IN IPMI_ADD_SEL_ENTRY_REQUEST    *AddSelEntryRequest,\r
+  OUT IPMI_ADD_SEL_ENTRY_RESPONSE  *AddSelEntryResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function partially adds SEL entry.\r
+\r
+  @param[in]    PartialAddSelEntryRequest      Partial add SEL entry command request.\r
+  @param[in]    PartialAddSelEntryRequestSize  Size of partial add SEL entry command request.\r
+  @param[out]   PartialAddSelEntryResponse     Partial add SEL entry command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiPartialAddSelEntry (\r
+  IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST    *PartialAddSelEntryRequest,\r
+  IN UINT32                                PartialAddSelEntryRequestSize,\r
+  OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE  *PartialAddSelEntryResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function clears SEL entry.\r
+\r
+  @param[in]    ClearSelRequest      Clear SEL command request.\r
+  @param[out]   ClearSelResponse     Clear SEL command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiClearSel (\r
+  IN IPMI_CLEAR_SEL_REQUEST    *ClearSelRequest,\r
+  OUT IPMI_CLEAR_SEL_RESPONSE  *ClearSelResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets SEL time.\r
+\r
+  @param[out]   GetSelTimeResponse    Get SEL time command response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSelTime (\r
+  OUT IPMI_GET_SEL_TIME_RESPONSE  *GetSelTimeResponse\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sets SEL time.\r
+\r
+  @param[in]    SetSelTimeRequest    Set SEL time command request.\r
+  @param[out]   CompletionCode       Command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSetSelTime (\r
+  IN IPMI_SET_SEL_TIME_REQUEST  *SetSelTimeRequest,\r
+  OUT UINT8                     *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets SDR repository information.\r
+\r
+  @param[out]    GetSdrRepositoryInfoResp    Get SDR repository response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSdrRepositoryInfo (\r
+  OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE  *GetSdrRepositoryInfoResp\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets SDR\r
+\r
+  @param[in]      GetSdrRequest        Get SDR resquest.\r
+  @param[out]     GetSdrResponse       Get SDR response.\r
+  @param[in,out]  GetSdrResponseSize   The size of get SDR response.\r
+                                       When input, the expected size of response data.\r
+                                       When out, the exact size of response data.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSdr (\r
+  IN  IPMI_GET_SDR_REQUEST   *GetSdrRequest,\r
+  OUT IPMI_GET_SDR_RESPONSE  *GetSdrResponse,\r
+  IN OUT UINT32              *GetSdrResponseSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
diff --git a/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnTransport.c b/MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnTransport.c
new file mode 100644 (file)
index 0000000..b45329f
--- /dev/null
@@ -0,0 +1,100 @@
+/** @file\r
+  IPMI Command - NetFnTransport NULL instance library.\r
+\r
+  Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+#include <Uefi.h>\r
+#include <IndustryStandard/Ipmi.h>\r
+\r
+/**\r
+  This function activates SOL\r
+\r
+  @param[in]      SolActivatingRequest    SOL activating request.\r
+  @param[out]     CompletionCode          The command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSolActivating (\r
+  IN  IPMI_SOL_ACTIVATING_REQUEST  *SolActivatingRequest,\r
+  OUT UINT8                        *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function sets SOL configuration parameters.\r
+\r
+  @param[in]      SetConfigurationParametersRequest      Set SOL configuration parameters\r
+                                                         command request.\r
+  @param[in]      SetConfigurationParametersRequestSize  Size of set SOL configuration\r
+                                                         parameters command request.\r
+  @param[out]     CompletionCode                         The command completion code.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiSetSolConfigurationParameters (\r
+  IN  IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST  *SetConfigurationParametersRequest,\r
+  IN  UINT32                                         SetConfigurationParametersRequestSize,\r
+  OUT UINT8                                          *CompletionCode\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets SOL configuration parameters.\r
+\r
+  @param[in]      GetConfigurationParametersRequest        Get SOL configuration parameters\r
+                                                           command request.\r
+  @param[out]     GetConfigurationParametersResponse       Get SOL configuration parameters\r
+                                                           response.\r
+  @param[in,out]  GetConfigurationParametersResponseSize   When input, the size of expect response.\r
+                                                           When output, the exact size of\r
+                                                           expect response.\r
+\r
+  @retval EFI_UNSUPPORTED  Unsupported in the NULL lib.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetSolConfigurationParameters (\r
+  IN  IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST   *GetConfigurationParametersRequest,\r
+  OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE  *GetConfigurationParametersResponse,\r
+  IN OUT UINT32                                       *GetConfigurationParametersResponseSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  This function gets the LAN configuration parameter.\r
+\r
+  @param[in]     GetLanConfigurationParametersRequest   Request data\r
+  @param[out]    GetLanConfigurationParametersResponse  Response data\r
+  @param[in,out] GetLanConfigurationParametersSize      When input, the expected size of response data.\r
+                                                        When out, the exact size of response data.\r
+\r
+  @retval EFI_SUCCESS          Lan configuration parameter is returned in the response.\r
+  @retval Others               Other errors.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IpmiGetLanConfigurationParameters (\r
+  IN   IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST   *GetLanConfigurationParametersRequest,\r
+  OUT  IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE  *GetLanConfigurationParametersResponse,\r
+  IN OUT UINT32                                        *GetLanConfigurationParametersSize\r
+  )\r
+{\r
+  return RETURN_UNSUPPORTED;\r
+}\r