mirror of https://github.com/acidanthera/audk.git
MdePkg/Include: Add DMTF PLDM SMBIOS definitions
BZ #4396 This change adds definitions for DMTF PLDM SMBIOS Transfer specification. Spec ref: https://www.dmtf.org/sites/default/files/standards/documents/DSP0246_1.0.1.pdf Signed-off-by: Abner Chang <abner.chang@amd.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Cc: Nickle Wang <nicklew@nvidia.com> Cc: Igor Kulchytskyy <igork@ami.com> Cc: Isaac Oram <isaac.w.oram@intel.com> Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
9bf79303ae
commit
697e594fad
|
@ -0,0 +1,183 @@
|
|||
/** @file
|
||||
|
||||
The definitions of DMTF Platform Level Data Model (PLDM)
|
||||
SMBIOS Transfer Specification.
|
||||
|
||||
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@par Revision Reference:
|
||||
DMTF Platform Level Data Model (PLDM) SMBIOS Transfer Specification
|
||||
Version 1.0.1
|
||||
https://www.dmtf.org/sites/default/files/standards/documents/DSP0246_1.0.1.pdf
|
||||
|
||||
**/
|
||||
|
||||
#ifndef PLDM_SMBIOS_TRANSFER_H_
|
||||
#define PLDM_SMBIOS_TRANSFER_H_
|
||||
|
||||
#include <IndustryStandard/Pldm.h>
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
///
|
||||
/// Smbios-related definitions from PLDM for SMBIOS Transfer
|
||||
/// Specification (DMTF DSP0246)
|
||||
///
|
||||
#define PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x01
|
||||
#define PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x02
|
||||
#define PLDM_GET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x03
|
||||
#define PLDM_SET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x04
|
||||
#define PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_COMMAND_CODE 0x05
|
||||
#define PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_COMMAND_CODE 0x06
|
||||
|
||||
///
|
||||
/// PLDM SMBIOS transfer command specific completion code.
|
||||
///
|
||||
#define PLDM_COMPLETION_CODE_INVALID_DATA_TRANSFER_HANDLE 0x80
|
||||
#define PLDM_COMPLETION_CODE_INVALID_TRANSFER_OPERATION_FLAG 0x81
|
||||
#define PLDM_COMPLETION_CODE_INVALID_TRANSFER_FLAG 0x82
|
||||
#define PLDM_COMPLETION_CODE_NO_SMBIOS_STRUCTURE_TABLE_METADATA 0x83
|
||||
#define PLDM_COMPLETION_CODE_INVALID_DATA_INTEGRITY_CHECK 0x84
|
||||
#define PLDM_COMPLETION_CODE_SMBIOS_STRUCTURE_TABLE_UNAVAILABLE 0x85
|
||||
|
||||
///
|
||||
/// Get SMBIOS Structure Table Metadata Response.
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 SmbiosMajorVersion;
|
||||
UINT8 SmbiosMinorVersion;
|
||||
UINT16 MaximumStructureSize;
|
||||
UINT16 SmbiosStructureTableLength;
|
||||
UINT16 NumberOfSmbiosStructures;
|
||||
UINT32 SmbiosStructureTableIntegrityChecksum;
|
||||
} PLDM_SMBIOS_STRUCTURE_TABLE_METADATA;
|
||||
|
||||
typedef struct {
|
||||
PLDM_RESPONSE_HEADER ResponseHeader;
|
||||
PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT;
|
||||
|
||||
///
|
||||
/// Set SMBIOS Structure Table Metadata Request.
|
||||
///
|
||||
typedef struct {
|
||||
PLDM_REQUEST_HEADER RequestHeader;
|
||||
PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata;
|
||||
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_REQUEST_FORMAT;
|
||||
|
||||
///
|
||||
/// Set SMBIOS Structure Table Metadata Response.
|
||||
///
|
||||
typedef struct {
|
||||
PLDM_RESPONSE_HEADER ResponseHeader;
|
||||
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT;
|
||||
|
||||
///
|
||||
/// Get SMBIOS Structure Table Request.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 DataTransferHandle;
|
||||
UINT8 TransferOperationFlag;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST;
|
||||
|
||||
typedef struct {
|
||||
PLDM_REQUEST_HEADER RequestHeader;
|
||||
PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST GetSmbiosStructureTableRequest;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT;
|
||||
|
||||
///
|
||||
/// Get SMBIOS Structure Table Response.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 NextDataTransferHandle;
|
||||
UINT8 TransferFlag;
|
||||
UINT8 Table[0];
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE;
|
||||
|
||||
typedef struct {
|
||||
PLDM_RESPONSE_HEADER ResponseHeader;
|
||||
PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE GetSmbiosStructureTableResponse;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT;
|
||||
|
||||
///
|
||||
/// Set SMBIOS Structure Table Request.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 DataTransferHandle;
|
||||
UINT8 TransferFlag;
|
||||
UINT8 Table[0];
|
||||
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST;
|
||||
|
||||
typedef struct {
|
||||
PLDM_REQUEST_HEADER RequestHeader;
|
||||
PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST SetSmbiosStructureTableRequest;
|
||||
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT;
|
||||
|
||||
///
|
||||
/// Set SMBIOS Structure Table Response.
|
||||
///
|
||||
typedef struct {
|
||||
PLDM_RESPONSE_HEADER ResponseHeader;
|
||||
UINT32 NextDataTransferHandle;
|
||||
} PLDM_SET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT;
|
||||
|
||||
///
|
||||
/// Get SMBIOS Structure by Type Request.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 DataTransferHandle;
|
||||
UINT8 TransferOperationFlag;
|
||||
UINT8 Type;
|
||||
UINT16 StructureInstanceId;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST;
|
||||
|
||||
typedef struct {
|
||||
PLDM_REQUEST_HEADER RequestHeader;
|
||||
PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST GetSmbiosStructureByTypeRequest;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST_FORMAT;
|
||||
|
||||
///
|
||||
/// Get SMBIOS Structure by Type Response.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 NextDataTransferHandle;
|
||||
UINT8 TransferFlag;
|
||||
UINT8 Table[0];
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE;
|
||||
|
||||
typedef struct {
|
||||
PLDM_RESPONSE_HEADER ResponseHeader;
|
||||
PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE GetSmbiosStructureByTypeResponse;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE_FORMAT;
|
||||
|
||||
///
|
||||
/// Get SMBIOS Structure by Handle Request.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 DataTransferHandle;
|
||||
UINT8 TransferOperationFlag;
|
||||
UINT16 Handle;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST;
|
||||
|
||||
typedef struct {
|
||||
PLDM_REQUEST_HEADER RequestHeader;
|
||||
PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST GetSmbiosStructureByHandleRequest;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST_FORMAT;
|
||||
|
||||
///
|
||||
/// Get SMBIOS Structure by Handle Response.
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 NextDataTransferHandle;
|
||||
UINT8 TransferFlag;
|
||||
UINT8 Table[0];
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE;
|
||||
|
||||
typedef struct {
|
||||
PLDM_RESPONSE_HEADER ResponseHeader;
|
||||
PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE GetSmbiosStructureByTypeResponse;
|
||||
} PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE_FORMAT;
|
||||
#pragma pack()
|
||||
|
||||
#endif // PLDM_SMBIOS_TRANSFER_H_
|
Loading…
Reference in New Issue