MdeModulePkg/IpmiCommandLib: Add NULL instance library

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>
This commit is contained in:
Abner Chang 2022-12-26 15:06:55 +08:00 committed by mergify[bot]
parent bde407db51
commit ae55e9fca6
5 changed files with 757 additions and 0 deletions

View File

@ -0,0 +1,34 @@
## @file
# NULL instance of IpmiCommandLib
#
# Component description file for IPMI Command Library.
#
# Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>
# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = BaseIpmiCommandLibNull
FILE_GUID = 63F06EF8-B78A-4E7E-823E-D11A21059669
MODULE_TYPE = BASE
VERSION_STRING = 1.0
LIBRARY_CLASS = IpmiCommandLib
[sources]
IpmiCommandLibNetFnApp.c
IpmiCommandLibNetFnTransport.c
IpmiCommandLibNetFnChassis.c
IpmiCommandLibNetFnStorage.c
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
BaseMemoryLib
DebugLib

View File

@ -0,0 +1,252 @@
/** @file
IPMI Command - NetFnApp NULL instance library.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Uefi.h>
#include <IndustryStandard/Ipmi.h>
/**
This function gets the IPMI Device ID.
@param[out] DeviceId Get device ID response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetDeviceId (
OUT IPMI_GET_DEVICE_ID_RESPONSE *DeviceId
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets the self-test result.
@param[out] SelfTestResult Self test command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSelfTestResult (
OUT IPMI_SELF_TEST_RESULT_RESPONSE *SelfTestResult
)
{
return RETURN_UNSUPPORTED;
}
/**
This function resets watchdog timer.
@param[out] CompletionCode The command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiResetWatchdogTimer (
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sets watchdog timer.
@param[in] SetWatchdogTimer Set watchdog timer request.
@param[out] CompletionCode The command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSetWatchdogTimer (
IN IPMI_SET_WATCHDOG_TIMER_REQUEST *SetWatchdogTimer,
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets watchdog timer.
@param[out] GetWatchdogTimer Get watchdog timer response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetWatchdogTimer (
OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sets BMC global enables.
@param[in] SetBmcGlobalEnables Set BMC global enables command request.
@param[out] CompletionCode The command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSetBmcGlobalEnables (
IN IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST *SetBmcGlobalEnables,
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets BMC global enables.
@param[out] GetBmcGlobalEnables Get BMC global enables command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetBmcGlobalEnables (
OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables
)
{
return RETURN_UNSUPPORTED;
}
/**
This function clears message flag.
@param[in] ClearMessageFlagsRequest Clear message flags command Request.
@param[out] CompletionCode The command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiClearMessageFlags (
IN IPMI_CLEAR_MESSAGE_FLAGS_REQUEST *ClearMessageFlagsRequest,
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets message flags.
@param[out] GetMessageFlagsResponse Get message flags response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetMessageFlags (
OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets message.
@param[out] GetMessageResponse Get message command response.
@param[in,out] GetMessageResponseSize The size of get message response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetMessage (
OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse,
IN OUT UINT32 *GetMessageResponseSize
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sends message.
@param[in] SendMessageRequest The send message command request.
@param[in] SendMessageRequestSize The size of the send message command request.
@param[out] SendMessageResponse The send message command response.
@param[in,out] SendMessageResponseSize The size of the send message command response.
When input, the expected size of response.
When output, the actual size of response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSendMessage (
IN IPMI_SEND_MESSAGE_REQUEST *SendMessageRequest,
IN UINT32 SendMessageRequestSize,
OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse,
IN OUT UINT32 *SendMessageResponseSize
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets the system UUID.
@param[out] SystemGuid The pointer to retrieve system UUID.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSystemUuid (
OUT EFI_GUID *SystemGuid
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets the channel information.
@param[in] GetChannelInfoRequest The get channel information request.
@param[out] GetChannelInfoResponse The get channel information response.
@param[out] GetChannelInfoResponseSize When input, the expected size of response.
When output, the exact size of the returned
response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetChannelInfo (
IN IPMI_GET_CHANNEL_INFO_REQUEST *GetChannelInfoRequest,
OUT IPMI_GET_CHANNEL_INFO_RESPONSE *GetChannelInfoResponse,
OUT UINT32 *GetChannelInfoResponseSize
)
{
return RETURN_UNSUPPORTED;
}

View File

@ -0,0 +1,123 @@
/** @file
IPMI Command - NetFnChassis NULL instance library.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Uefi.h>
#include <IndustryStandard/Ipmi.h>
/**
This function gets chassis capability.
@param[out] GetChassisCapabilitiesResponse Gets chassis capability command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetChassisCapabilities (
OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE *GetChassisCapabilitiesResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets chassis status.
@param[out] GetChassisStatusResponse The get chassis status command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetChassisStatus (
OUT IPMI_GET_CHASSIS_STATUS_RESPONSE *GetChassisStatusResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sends chassis control request.
@param[in] ChassisControlRequest The chassis control request.
@param[out] CompletionCode The command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiChassisControl (
IN IPMI_CHASSIS_CONTROL_REQUEST *ChassisControlRequest,
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sets power restore policy.
@param[in] ChassisControlRequest The set power restore policy control
command request.
@param[out] ChassisControlResponse The response of power restore policy.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSetPowerRestorePolicy (
IN IPMI_SET_POWER_RESTORE_POLICY_REQUEST *ChassisControlRequest,
OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *ChassisControlResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sets system boot option.
@param[in] BootOptionsRequest Set system boot option request.
@param[out] BootOptionsResponse The response of set system boot
option request.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSetSystemBootOptions (
IN IPMI_SET_BOOT_OPTIONS_REQUEST *BootOptionsRequest,
OUT IPMI_SET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets system boot option.
@param[in] BootOptionsRequest Get system boot option request.
@param[out] BootOptionsResponse The response of get system boot
option request.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSystemBootOptions (
IN IPMI_GET_BOOT_OPTIONS_REQUEST *BootOptionsRequest,
OUT IPMI_GET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse
)
{
return RETURN_UNSUPPORTED;
}

View File

@ -0,0 +1,248 @@
/** @file
IPMI Command - NetFnStorage NULL instance library.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Uefi.h>
#include <IndustryStandard/Ipmi.h>
/**
This function gets FRU inventory area info.
@param[in] GetFruInventoryAreaInfoRequest Get FRU inventory area command request.
@param[out] GetFruInventoryAreaInfoResponse get FRU inventory area command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetFruInventoryAreaInfo (
IN IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST *GetFruInventoryAreaInfoRequest,
OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE *GetFruInventoryAreaInfoResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function reads FRU data.
@param[in] ReadFruDataRequest Read FRU data command request.
@param[out] ReadFruDataResponse Read FRU data command response.
@param[in,out] ReadFruDataResponseSize Size of the read FRU data response.
When input, the expected size of response data.
When out, the exact size of response data.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiReadFruData (
IN IPMI_READ_FRU_DATA_REQUEST *ReadFruDataRequest,
OUT IPMI_READ_FRU_DATA_RESPONSE *ReadFruDataResponse,
IN OUT UINT32 *ReadFruDataResponseSize
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets chassis capability.
@param[in] WriteFruDataRequest Write FRU data command request.
@param[in] WriteFruDataRequestSize Size of the write FRU data command request.
@param[out] WriteFruDataResponse Write FRU data response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiWriteFruData (
IN IPMI_WRITE_FRU_DATA_REQUEST *WriteFruDataRequest,
IN UINT32 WriteFruDataRequestSize,
OUT IPMI_WRITE_FRU_DATA_RESPONSE *WriteFruDataResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets SEL information.
@param[out] GetSelInfoResponse Get SEL information command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSelInfo (
OUT IPMI_GET_SEL_INFO_RESPONSE *GetSelInfoResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets SEL entry.
@param[in] GetSelEntryRequest Get SEL entry command request.
@param[out] GetSelEntryResponse Get SEL entry command response.
@param[in,out] GetSelEntryResponseSize Size of Get SEL entry request.
When input, the expected size of response data.
When out, the exact size of response data.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSelEntry (
IN IPMI_GET_SEL_ENTRY_REQUEST *GetSelEntryRequest,
OUT IPMI_GET_SEL_ENTRY_RESPONSE *GetSelEntryResponse,
IN OUT UINT32 *GetSelEntryResponseSize
)
{
return RETURN_UNSUPPORTED;
}
/**
This function adds SEL entry.
@param[in] AddSelEntryRequest Add SEL entry command request.
@param[out] AddSelEntryResponse Add SEL entry command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiAddSelEntry (
IN IPMI_ADD_SEL_ENTRY_REQUEST *AddSelEntryRequest,
OUT IPMI_ADD_SEL_ENTRY_RESPONSE *AddSelEntryResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function partially adds SEL entry.
@param[in] PartialAddSelEntryRequest Partial add SEL entry command request.
@param[in] PartialAddSelEntryRequestSize Size of partial add SEL entry command request.
@param[out] PartialAddSelEntryResponse Partial add SEL entry command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiPartialAddSelEntry (
IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST *PartialAddSelEntryRequest,
IN UINT32 PartialAddSelEntryRequestSize,
OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE *PartialAddSelEntryResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function clears SEL entry.
@param[in] ClearSelRequest Clear SEL command request.
@param[out] ClearSelResponse Clear SEL command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiClearSel (
IN IPMI_CLEAR_SEL_REQUEST *ClearSelRequest,
OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets SEL time.
@param[out] GetSelTimeResponse Get SEL time command response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSelTime (
OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sets SEL time.
@param[in] SetSelTimeRequest Set SEL time command request.
@param[out] CompletionCode Command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSetSelTime (
IN IPMI_SET_SEL_TIME_REQUEST *SetSelTimeRequest,
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets SDR repository information.
@param[out] GetSdrRepositoryInfoResp Get SDR repository response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSdrRepositoryInfo (
OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE *GetSdrRepositoryInfoResp
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets SDR
@param[in] GetSdrRequest Get SDR resquest.
@param[out] GetSdrResponse Get SDR response.
@param[in,out] GetSdrResponseSize The size of get SDR response.
When input, the expected size of response data.
When out, the exact size of response data.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSdr (
IN IPMI_GET_SDR_REQUEST *GetSdrRequest,
OUT IPMI_GET_SDR_RESPONSE *GetSdrResponse,
IN OUT UINT32 *GetSdrResponseSize
)
{
return RETURN_UNSUPPORTED;
}

View File

@ -0,0 +1,100 @@
/** @file
IPMI Command - NetFnTransport NULL instance library.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR>
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Uefi.h>
#include <IndustryStandard/Ipmi.h>
/**
This function activates SOL
@param[in] SolActivatingRequest SOL activating request.
@param[out] CompletionCode The command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSolActivating (
IN IPMI_SOL_ACTIVATING_REQUEST *SolActivatingRequest,
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function sets SOL configuration parameters.
@param[in] SetConfigurationParametersRequest Set SOL configuration parameters
command request.
@param[in] SetConfigurationParametersRequestSize Size of set SOL configuration
parameters command request.
@param[out] CompletionCode The command completion code.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiSetSolConfigurationParameters (
IN IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST *SetConfigurationParametersRequest,
IN UINT32 SetConfigurationParametersRequestSize,
OUT UINT8 *CompletionCode
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets SOL configuration parameters.
@param[in] GetConfigurationParametersRequest Get SOL configuration parameters
command request.
@param[out] GetConfigurationParametersResponse Get SOL configuration parameters
response.
@param[in,out] GetConfigurationParametersResponseSize When input, the size of expect response.
When output, the exact size of
expect response.
@retval EFI_UNSUPPORTED Unsupported in the NULL lib.
**/
EFI_STATUS
EFIAPI
IpmiGetSolConfigurationParameters (
IN IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST *GetConfigurationParametersRequest,
OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse,
IN OUT UINT32 *GetConfigurationParametersResponseSize
)
{
return RETURN_UNSUPPORTED;
}
/**
This function gets the LAN configuration parameter.
@param[in] GetLanConfigurationParametersRequest Request data
@param[out] GetLanConfigurationParametersResponse Response data
@param[in,out] GetLanConfigurationParametersSize When input, the expected size of response data.
When out, the exact size of response data.
@retval EFI_SUCCESS Lan configuration parameter is returned in the response.
@retval Others Other errors.
**/
EFI_STATUS
EFIAPI
IpmiGetLanConfigurationParameters (
IN IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST *GetLanConfigurationParametersRequest,
OUT IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE *GetLanConfigurationParametersResponse,
IN OUT UINT32 *GetLanConfigurationParametersSize
)
{
return RETURN_UNSUPPORTED;
}