| /** @file | |
| IPMI Platform Management FRU Information Storage Definitions | |
| This file contains the definitions for: | |
| Common Header Format (Chapter 8) | |
| MultiRecord Header (Section 16.1) | |
| Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| @par Revision Reference: | |
| - IPMI Platform Management FRU Information Storage Definition v1.0 Revision | |
| 1.3, Dated March 24, 2015. | |
| https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ipmi-platform-mgt-fru-info-storage-def-v1-0-rev-1-3-spec-update.pdf | |
| **/ | |
| #ifndef _IPMI_FRU_INFORMATION_STORAGE_H_ | |
| #define _IPMI_FRU_INFORMATION_STORAGE_H_ | |
| #pragma pack(1) | |
| // | |
| // Structure definitions for FRU Common Header | |
| // | |
| typedef union { | |
| /// | |
| /// Individual bit fields | |
| /// | |
| struct { | |
| UINT8 FormatVersionNumber : 4; | |
| UINT8 Reserved : 4; | |
| } Bits; | |
| /// | |
| /// All bit fields as a 8-bit value | |
| /// | |
| UINT8 Uint8; | |
| } IPMI_FRU_COMMON_HEADER_FORMAT_VERSION; | |
| typedef struct { | |
| IPMI_FRU_COMMON_HEADER_FORMAT_VERSION FormatVersion; | |
| UINT8 InternalUseStartingOffset; | |
| UINT8 ChassisInfoStartingOffset; | |
| UINT8 BoardAreaStartingOffset; | |
| UINT8 ProductInfoStartingOffset; | |
| UINT8 MultiRecInfoStartingOffset; | |
| UINT8 Pad; | |
| UINT8 Checksum; | |
| } IPMI_FRU_COMMON_HEADER; | |
| // | |
| // Structure definition for FRU MultiRecord Header | |
| // | |
| typedef union { | |
| /// | |
| /// Individual bit fields | |
| /// | |
| struct { | |
| UINT8 RecordFormatVersion : 4; | |
| UINT8 Reserved : 3; | |
| UINT8 EndofList : 1; | |
| } Bits; | |
| /// | |
| /// All bit fields as a 8-bit value | |
| /// | |
| UINT8 Uint8; | |
| } IPMI_FRU_MULTI_RECORD_HEADER_FORMAT_VERSION; | |
| typedef struct { | |
| UINT8 RecordTypeId; | |
| IPMI_FRU_MULTI_RECORD_HEADER_FORMAT_VERSION FormatVersion; | |
| UINT8 RecordLength; | |
| UINT8 RecordChecksum; | |
| UINT8 HeaderChecksum; | |
| } IPMI_FRU_MULTI_RECORD_HEADER; | |
| // | |
| // Structure definition for System UUID Subrecord with checksum. | |
| // | |
| typedef struct { | |
| UINT8 RecordCheckSum; | |
| UINT8 SubRecordId; | |
| EFI_GUID Uuid; | |
| } IPMI_SYSTEM_UUID_SUB_RECORD_WITH_CHECKSUM; | |
| #pragma pack() | |
| #endif |