summaryrefslogtreecommitdiffstats
path: root/MdePkg/Include
diff options
context:
space:
mode:
authorAbner Chang <abner.chang@amd.com>2023-04-02 09:40:14 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-04-20 21:33:28 +0000
commit697e594fad518f288e97a9923168d5bea8a1787a (patch)
treec1e19a98a6be24b836e081c9a36c92d7fa683476 /MdePkg/Include
parent9bf79303ae5cb4d0e14ed7a219107b53e2ecdcd0 (diff)
downloadedk2-697e594fad518f288e97a9923168d5bea8a1787a.tar.gz
edk2-697e594fad518f288e97a9923168d5bea8a1787a.tar.bz2
edk2-697e594fad518f288e97a9923168d5bea8a1787a.zip
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>
Diffstat (limited to 'MdePkg/Include')
-rw-r--r--MdePkg/Include/IndustryStandard/PldmSmbiosTransfer.h183
1 files changed, 183 insertions, 0 deletions
diff --git a/MdePkg/Include/IndustryStandard/PldmSmbiosTransfer.h b/MdePkg/Include/IndustryStandard/PldmSmbiosTransfer.h
new file mode 100644
index 0000000000..9b7a5e838e
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/PldmSmbiosTransfer.h
@@ -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_