1 | /** @file
|
---|
2 |
|
---|
3 | The definitions of DMTF Platform Level Data Model (PLDM)
|
---|
4 | SMBIOS Transfer Specification.
|
---|
5 |
|
---|
6 | Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
|
---|
7 | SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
8 |
|
---|
9 | @par Revision Reference:
|
---|
10 | DMTF Platform Level Data Model (PLDM) SMBIOS Transfer Specification
|
---|
11 | Version 1.0.1
|
---|
12 | https://www.dmtf.org/sites/default/files/standards/documents/DSP0246_1.0.1.pdf
|
---|
13 |
|
---|
14 | **/
|
---|
15 |
|
---|
16 | #ifndef PLDM_SMBIOS_TRANSFER_H_
|
---|
17 | #define PLDM_SMBIOS_TRANSFER_H_
|
---|
18 |
|
---|
19 | #include <IndustryStandard/Pldm.h>
|
---|
20 |
|
---|
21 | #pragma pack(1)
|
---|
22 |
|
---|
23 | ///
|
---|
24 | /// Smbios-related definitions from PLDM for SMBIOS Transfer
|
---|
25 | /// Specification (DMTF DSP0246)
|
---|
26 | ///
|
---|
27 | #define PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x01
|
---|
28 | #define PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_COMMAND_CODE 0x02
|
---|
29 | #define PLDM_GET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x03
|
---|
30 | #define PLDM_SET_SMBIOS_STRUCTURE_TABLE_COMMAND_CODE 0x04
|
---|
31 | #define PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_COMMAND_CODE 0x05
|
---|
32 | #define PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_COMMAND_CODE 0x06
|
---|
33 |
|
---|
34 | ///
|
---|
35 | /// PLDM SMBIOS transfer command specific completion code.
|
---|
36 | ///
|
---|
37 | #define PLDM_COMPLETION_CODE_INVALID_DATA_TRANSFER_HANDLE 0x80
|
---|
38 | #define PLDM_COMPLETION_CODE_INVALID_TRANSFER_OPERATION_FLAG 0x81
|
---|
39 | #define PLDM_COMPLETION_CODE_INVALID_TRANSFER_FLAG 0x82
|
---|
40 | #define PLDM_COMPLETION_CODE_NO_SMBIOS_STRUCTURE_TABLE_METADATA 0x83
|
---|
41 | #define PLDM_COMPLETION_CODE_INVALID_DATA_INTEGRITY_CHECK 0x84
|
---|
42 | #define PLDM_COMPLETION_CODE_SMBIOS_STRUCTURE_TABLE_UNAVAILABLE 0x85
|
---|
43 |
|
---|
44 | ///
|
---|
45 | /// Get SMBIOS Structure Table Metadata Response.
|
---|
46 | ///
|
---|
47 | typedef struct {
|
---|
48 | UINT8 SmbiosMajorVersion;
|
---|
49 | UINT8 SmbiosMinorVersion;
|
---|
50 | UINT16 MaximumStructureSize;
|
---|
51 | UINT16 SmbiosStructureTableLength;
|
---|
52 | UINT16 NumberOfSmbiosStructures;
|
---|
53 | UINT32 SmbiosStructureTableIntegrityChecksum;
|
---|
54 | } PLDM_SMBIOS_STRUCTURE_TABLE_METADATA;
|
---|
55 |
|
---|
56 | typedef struct {
|
---|
57 | PLDM_RESPONSE_HEADER ResponseHeader;
|
---|
58 | PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata;
|
---|
59 | } PLDM_GET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT;
|
---|
60 |
|
---|
61 | ///
|
---|
62 | /// Set SMBIOS Structure Table Metadata Request.
|
---|
63 | ///
|
---|
64 | typedef struct {
|
---|
65 | PLDM_REQUEST_HEADER RequestHeader;
|
---|
66 | PLDM_SMBIOS_STRUCTURE_TABLE_METADATA SmbiosStructureTableMetadata;
|
---|
67 | } PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_REQUEST_FORMAT;
|
---|
68 |
|
---|
69 | ///
|
---|
70 | /// Set SMBIOS Structure Table Metadata Response.
|
---|
71 | ///
|
---|
72 | typedef struct {
|
---|
73 | PLDM_RESPONSE_HEADER ResponseHeader;
|
---|
74 | } PLDM_SET_SMBIOS_STRUCTURE_TABLE_METADATA_RESPONSE_FORMAT;
|
---|
75 |
|
---|
76 | ///
|
---|
77 | /// Get SMBIOS Structure Table Request.
|
---|
78 | ///
|
---|
79 | typedef struct {
|
---|
80 | UINT32 DataTransferHandle;
|
---|
81 | UINT8 TransferOperationFlag;
|
---|
82 | } PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST;
|
---|
83 |
|
---|
84 | typedef struct {
|
---|
85 | PLDM_REQUEST_HEADER RequestHeader;
|
---|
86 | PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST GetSmbiosStructureTableRequest;
|
---|
87 | } PLDM_GET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT;
|
---|
88 |
|
---|
89 | ///
|
---|
90 | /// Get SMBIOS Structure Table Response.
|
---|
91 | ///
|
---|
92 | typedef struct {
|
---|
93 | UINT32 NextDataTransferHandle;
|
---|
94 | UINT8 TransferFlag;
|
---|
95 | UINT8 Table[0];
|
---|
96 | } PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE;
|
---|
97 |
|
---|
98 | typedef struct {
|
---|
99 | PLDM_RESPONSE_HEADER ResponseHeader;
|
---|
100 | PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE GetSmbiosStructureTableResponse;
|
---|
101 | } PLDM_GET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT;
|
---|
102 |
|
---|
103 | ///
|
---|
104 | /// Set SMBIOS Structure Table Request.
|
---|
105 | ///
|
---|
106 | typedef struct {
|
---|
107 | UINT32 DataTransferHandle;
|
---|
108 | UINT8 TransferFlag;
|
---|
109 | UINT8 Table[0];
|
---|
110 | } PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST;
|
---|
111 |
|
---|
112 | typedef struct {
|
---|
113 | PLDM_REQUEST_HEADER RequestHeader;
|
---|
114 | PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST SetSmbiosStructureTableRequest;
|
---|
115 | } PLDM_SET_SMBIOS_STRUCTURE_TABLE_REQUEST_FORMAT;
|
---|
116 |
|
---|
117 | ///
|
---|
118 | /// Set SMBIOS Structure Table Response.
|
---|
119 | ///
|
---|
120 | typedef struct {
|
---|
121 | PLDM_RESPONSE_HEADER ResponseHeader;
|
---|
122 | UINT32 NextDataTransferHandle;
|
---|
123 | } PLDM_SET_SMBIOS_STRUCTURE_TABLE_RESPONSE_FORMAT;
|
---|
124 |
|
---|
125 | ///
|
---|
126 | /// Get SMBIOS Structure by Type Request.
|
---|
127 | ///
|
---|
128 | typedef struct {
|
---|
129 | UINT32 DataTransferHandle;
|
---|
130 | UINT8 TransferOperationFlag;
|
---|
131 | UINT8 Type;
|
---|
132 | UINT16 StructureInstanceId;
|
---|
133 | } PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST;
|
---|
134 |
|
---|
135 | typedef struct {
|
---|
136 | PLDM_REQUEST_HEADER RequestHeader;
|
---|
137 | PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST GetSmbiosStructureByTypeRequest;
|
---|
138 | } PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_REQUEST_FORMAT;
|
---|
139 |
|
---|
140 | ///
|
---|
141 | /// Get SMBIOS Structure by Type Response.
|
---|
142 | ///
|
---|
143 | typedef struct {
|
---|
144 | UINT32 NextDataTransferHandle;
|
---|
145 | UINT8 TransferFlag;
|
---|
146 | UINT8 Table[0];
|
---|
147 | } PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE;
|
---|
148 |
|
---|
149 | typedef struct {
|
---|
150 | PLDM_RESPONSE_HEADER ResponseHeader;
|
---|
151 | PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE GetSmbiosStructureByTypeResponse;
|
---|
152 | } PLDM_GET_SMBIOS_STRUCTURE_BY_TYPE_RESPONSE_FORMAT;
|
---|
153 |
|
---|
154 | ///
|
---|
155 | /// Get SMBIOS Structure by Handle Request.
|
---|
156 | ///
|
---|
157 | typedef struct {
|
---|
158 | UINT32 DataTransferHandle;
|
---|
159 | UINT8 TransferOperationFlag;
|
---|
160 | UINT16 Handle;
|
---|
161 | } PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST;
|
---|
162 |
|
---|
163 | typedef struct {
|
---|
164 | PLDM_REQUEST_HEADER RequestHeader;
|
---|
165 | PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST GetSmbiosStructureByHandleRequest;
|
---|
166 | } PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_REQUEST_FORMAT;
|
---|
167 |
|
---|
168 | ///
|
---|
169 | /// Get SMBIOS Structure by Handle Response.
|
---|
170 | ///
|
---|
171 | typedef struct {
|
---|
172 | UINT32 NextDataTransferHandle;
|
---|
173 | UINT8 TransferFlag;
|
---|
174 | UINT8 Table[0];
|
---|
175 | } PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE;
|
---|
176 |
|
---|
177 | typedef struct {
|
---|
178 | PLDM_RESPONSE_HEADER ResponseHeader;
|
---|
179 | PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE GetSmbiosStructureByTypeResponse;
|
---|
180 | } PLDM_GET_SMBIOS_STRUCTURE_BY_HANDLE_RESPONSE_FORMAT;
|
---|
181 | #pragma pack()
|
---|
182 |
|
---|
183 | #endif // PLDM_SMBIOS_TRANSFER_H_
|
---|