/** @file\r
- DataHubRecord.h includes all data hub sub class GUID definitions.\r
+ DataHubRecord.h includes all data hub subclass GUID definitions.\r
\r
- This file includes all data hub sub class defitions from \r
- Cache subclass spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9,\r
- Processor Subclass spec 0.9, and Misc SubClass spec 0.9.\r
- \r
- Copyright (c) 2007 - 2009, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
+ This file includes all data hub sub class defitions from\r
+ Cache subclass specification 0.9, DataHub SubClass specification 0.9, Memory SubClass Spec 0.9,\r
+ Processor Subclass specification 0.9, and Misc SubClass specification 0.9.\r
\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
#ifndef _DATAHUB_RECORDS_GUID_H_\r
#define _DATAHUB_RECORDS_GUID_H_\r
\r
+//\r
+// The include is required to retrieve type EFI_EXP_BASE10_DATA\r
+//\r
+#include <Guid/StatusCodeDataTypeId.h>\r
+\r
#define EFI_PROCESSOR_SUBCLASS_GUID \\r
{ 0x26fdeb7e, 0xb8af, 0x4ccf, {0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7 } }\r
\r
extern EFI_GUID gEfiCacheSubClassGuid;\r
\r
///\r
-/// The memory subclass belongs to the data class and is identified as the memory \r
+/// The memory subclass belongs to the data class and is identified as the memory\r
/// subclass by the GUID.\r
///\r
#define EFI_MEMORY_SUBCLASS_GUID \\r
\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In ProcSubclass spec 0.9, the value is 0x0100.\r
+/// Inconsistent with specification here:\r
+/// In ProcSubclass specification 0.9, the value is 0x0100.\r
/// Keep it unchanged from the perspective of binary consistency.\r
///\r
#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
} FLOOPY_CONN_DEVICE_PATH;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
/// It's implementation-specific to simplify the code logic.\r
///\r
typedef union _EFI_MISC_PORT_DEVICE_PATH {\r
///\r
/// String Token Definition\r
///\r
-/// Inconsistent with specification here: \r
-/// The macro isn't defined by any spec.\r
+/// Inconsistent with specification here:\r
+/// The macro isn't defined by any specification.\r
/// Keep it unchanged for backward compatibility.\r
///\r
#define EFI_STRING_TOKEN UINT16\r
\r
///\r
-/// Each data record that is a member of some subclass starts with a standard \r
+/// Each data record that is a member of some subclass starts with a standard\r
/// header of type EFI_SUBCLASS_TYPE1_HEADER.\r
-/// This header is only a guideline and applicable only to a data \r
-/// subclass that is producing SMBIOS data records. A subclass can start with a \r
-/// different header if needed. \r
+/// This header is only a guideline and applicable only to a data\r
+/// subclass that is producing SMBIOS data records. A subclass can start with a\r
+/// different header if needed.\r
///\r
typedef struct {\r
///\r
- /// The version of the specification to which a specific subclass data record adheres. \r
+ /// The version of the specification to which a specific subclass data record adheres.\r
///\r
UINT32 Version;\r
///\r
- /// The size in bytes of this data class header. \r
+ /// The size in bytes of this data class header.\r
///\r
UINT32 HeaderSize;\r
///\r
- /// The instance number of the subclass with the same ProducerName. This number is \r
- /// applicable in cases where multiple subclass instances that were produced by the same \r
- /// driver exist in the system. This entry is 1 based; 0 means Reserved and -1 means Not \r
- /// Applicable. All data consumer drivers should be able to handle all the possible values \r
- /// of Instance, including Not Applicable and Reserved. \r
+ /// The instance number of the subclass with the same ProducerName. This number is\r
+ /// applicable in cases where multiple subclass instances that were produced by the same\r
+ /// driver exist in the system. This entry is 1 based; 0 means Reserved and -1 means Not\r
+ /// Applicable. All data consumer drivers should be able to handle all the possible values\r
+ /// of Instance, including Not Applicable and Reserved.\r
///\r
UINT16 Instance;\r
///\r
- /// The instance number of the RecordType for the same Instance. This number is \r
- /// applicable in cases where multiple instances of the RecordType exist for a specific \r
- /// Instance. This entry is 1 based; 0 means Reserved and -1 means Not Applicable. \r
- /// All data consumer drivers should be able to handle all the possible values of \r
- /// SubInstance, including Not Applicable and Reserved. \r
+ /// The instance number of the RecordType for the same Instance. This number is\r
+ /// applicable in cases where multiple instances of the RecordType exist for a specific\r
+ /// Instance. This entry is 1 based; 0 means Reserved and -1 means Not Applicable.\r
+ /// All data consumer drivers should be able to handle all the possible values of\r
+ /// SubInstance, including Not Applicable and Reserved.\r
///\r
UINT16 SubInstance;\r
///\r
- /// The record number for the data record being specified. The numbering scheme and \r
- /// definition is defined in the specific subclass specification. \r
+ /// The record number for the data record being specified. The numbering scheme and\r
+ /// definition is defined in the specific subclass specification.\r
///\r
UINT32 RecordType;\r
} EFI_SUBCLASS_TYPE1_HEADER;\r
\r
///\r
-/// This structure is used to link data records in the same subclasses. A data record is \r
-/// defined as a link to another data record in the same subclass using this structure. \r
+/// This structure is used to link data records in the same subclasses. A data record is\r
+/// defined as a link to another data record in the same subclass using this structure.\r
///\r
typedef struct {\r
///\r
- /// An EFI_GUID that identifies the component that produced this data record. Type \r
- /// EFI_GUID is defined in InstallProtocolInterface() in the EFI 1.10 Specification. \r
+ /// An EFI_GUID that identifies the component that produced this data record. Type\r
+ /// EFI_GUID is defined in InstallProtocolInterface() in the EFI 1.10 Specification.\r
///\r
EFI_GUID ProducerName;\r
///\r
- /// The instance number of the subclass with the same ProducerName. This number is \r
- /// applicable in cases where multiple subclass instances that were produced by the same \r
- /// driver exist in the system. This entry is 1 based; 0 means Reserved and -1 means Not \r
- /// Applicable. All data consumer drivers should be able to handle all the possible values \r
- /// of Instance, including Not Applicable and Reserved. \r
+ /// The instance number of the subclass with the same ProducerName. This number is\r
+ /// applicable in cases where multiple subclass instances that were produced by the same\r
+ /// driver exist in the system. This entry is 1 based; 0 means Reserved and -1 means Not\r
+ /// Applicable. All data consumer drivers should be able to handle all the possible values\r
+ /// of Instance, including Not Applicable and Reserved.\r
///\r
UINT16 Instance;\r
- /// The instance number of the RecordType for the same Instance. This number is \r
- /// applicable in cases where multiple instances of the RecordType exist for a specific \r
- /// Instance. This entry is 1 based; 0 means Reserved and -1 means Not Applicable. \r
- /// All data consumer drivers should be able to handle all the possible values of \r
- /// SubInstance, including Not Applicable and Reserved. \r
+ /// The instance number of the RecordType for the same Instance. This number is\r
+ /// applicable in cases where multiple instances of the RecordType exist for a specific\r
+ /// Instance. This entry is 1 based; 0 means Reserved and -1 means Not Applicable.\r
+ /// All data consumer drivers should be able to handle all the possible values of\r
+ /// SubInstance, including Not Applicable and Reserved.\r
UINT16 SubInstance;\r
} EFI_INTER_LINK_DATA;\r
\r
// EXP data\r
//\r
///\r
-/// This macro provides a calculation for base-10 representations. Value and Exponent are each \r
+/// This macro provides a calculation for base-10 representations. Value and Exponent are each\r
/// INT16. It is signed to cover negative values and is 16 bits wide (15 bits for data and 1 bit\r
-/// for the sign). \r
+/// for the sign).\r
///\r
typedef struct {\r
///\r
- /// The INT16 number by which to multiply the base-10 representation. \r
+ /// The INT16 number by which to multiply the base-10 representation.\r
///\r
UINT16 Value;\r
///\r
- /// The INT16 number by which to raise the base-10 calculation. \r
+ /// The INT16 number by which to raise the base-10 calculation.\r
///\r
UINT16 Exponent;\r
} EFI_EXP_BASE2_DATA;\r
\r
-///\r
-/// This macro provides a calculation for base-2 representations. Value and Exponent are each \r
-/// INT16. It is 16 bits wide and is unsigned to mean nonnegative values. \r
-///\r
-typedef struct {\r
- ///\r
- /// The INT16 number by which to multiply the base-2 representation.\r
- ///\r
- INT16 Value;\r
- ///\r
- /// The INT16 number by which to raise the base-2 calculation. \r
- ///\r
- INT16 Exponent;\r
-} EFI_EXP_BASE10_DATA;\r
-\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;\r
\r
///\r
-/// This data record refers to the list of frequencies that the processor core supports. The list of \r
-/// supported frequencies is determined by the firmware based on hardware capabilities--for example, \r
-/// it could be a common subset of all processors and the chipset. The unit of measurement of this data \r
-/// record is in Hertz. For asynchronous processors, the content of this data record is zero. \r
-/// The list is terminated by -1 in the Value field of the last element. A Value field of zero means \r
-/// that the processor/driver supports automatic frequency selection. \r
+/// This data record refers to the list of frequencies that the processor core supports. The list of\r
+/// supported frequencies is determined by the firmware based on hardware capabilities--for example,\r
+/// it could be a common subset of all processors and the chipset. The unit of measurement of this data\r
+/// record is in Hertz. For asynchronous processors, the content of this data record is zero.\r
+/// The list is terminated by -1 in the Value field of the last element. A Value field of zero means\r
+/// that the processor/driver supports automatic frequency selection.\r
///\r
-/// Inconsistent with specification here: \r
-/// According to MiscSubclass 0.9 spec, it should be a pointer since it refers to a list of frequencies.\r
+/// Inconsistent with specification here:\r
+/// According to MiscSubclass 0.9 specification, it should be a pointer since it refers to a list of frequencies.\r
///\r
typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;\r
\r
///\r
-/// This data record refers to the list of supported frequencies of the processor external bus. The list of \r
-/// supported frequencies is determined by the firmware based on hardware capabilities--for example, \r
-/// it could be a common subset of all processors and the chipset. The unit of measurement of this data \r
-/// record is in Hertz. For asynchronous processors, the content of this data record is NULL. \r
-/// The list is terminated by -1 in the Value field of the last element. A Value field of zero means \r
-/// that the processor/driver supports automatic frequency selection. \r
+/// This data record refers to the list of supported frequencies of the processor external bus. The list of\r
+/// supported frequencies is determined by the firmware based on hardware capabilities--for example,\r
+/// it could be a common subset of all processors and the chipset. The unit of measurement of this data\r
+/// record is in Hertz. For asynchronous processors, the content of this data record is NULL.\r
+/// The list is terminated by -1 in the Value field of the last element. A Value field of zero means\r
+/// that the processor/driver supports automatic frequency selection.\r
///\r
typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;\r
typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
+typedef STRING_REF EFI_PROCESSOR_PART_NUMBER_DATA;\r
\r
typedef struct {\r
UINT32 ProcessorSteppingId:4;\r
\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// The name of third field in ProcSubClass spec0.9 is LogicalProcessorCount.\r
+/// Inconsistent with specification here:\r
+/// The name of third field in ProcSubClass specification 0.9 is LogicalProcessorCount.\r
/// Keep it unchanged for backward compatibility.\r
///\r
typedef struct {\r
} EFI_PROCESSOR_FEATURE_FLAGS;\r
\r
///\r
-/// This data record refers to the unique ID that identifies a set of processors. This data record is 16 \r
-/// bytes in length. The data in this structure is processor specific and reserved values can be defined \r
-/// for future use. The consumer of this data should not make any assumption and should use this data \r
-/// with respect to the processor family defined in the Family record number. \r
+/// This data record refers to the unique ID that identifies a set of processors. This data record is 16\r
+/// bytes in length. The data in this structure is processor specific and reserved values can be defined\r
+/// for future use. The consumer of this data should not make any assumption and should use this data\r
+/// with respect to the processor family defined in the Family record number.\r
///\r
typedef struct {\r
///\r
///\r
EFI_PROCESSOR_SIGNATURE Signature;\r
///\r
- /// Provides additional processor information. \r
+ /// Provides additional processor information.\r
///\r
EFI_PROCESSOR_MISC_INFO MiscInfo;\r
///\r
- /// Reserved for future use. \r
+ /// Reserved for future use.\r
///\r
UINT32 Reserved;\r
///\r
- /// Provides additional processor information. \r
+ /// Provides additional processor information.\r
///\r
EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;\r
} EFI_PROCESSOR_ID_DATA;\r
\r
///\r
-/// This data record refers to the general classification of the processor. This data record is 4 bytes in \r
-/// length. \r
+/// This data record refers to the general classification of the processor. This data record is 4 bytes in\r
+/// length.\r
///\r
typedef enum {\r
EfiProcessorOther = 1,\r
} EFI_PROCESSOR_TYPE_DATA;\r
\r
///\r
-/// This data record refers to the family of the processor as defined by the DMTF. \r
-/// This data record is 4 bytes in length. \r
+/// This data record refers to the family of the processor as defined by the DMTF.\r
+/// This data record is 4 bytes in length.\r
///\r
typedef enum {\r
- EfiProcessorFamilyOther = 0x01, \r
+ EfiProcessorFamilyOther = 0x01,\r
EfiProcessorFamilyUnknown = 0x02,\r
- EfiProcessorFamily8086 = 0x03, \r
+ EfiProcessorFamily8086 = 0x03,\r
EfiProcessorFamily80286 = 0x04,\r
- EfiProcessorFamilyIntel386 = 0x05, \r
+ EfiProcessorFamilyIntel386 = 0x05,\r
EfiProcessorFamilyIntel486 = 0x06,\r
EfiProcessorFamily8087 = 0x07,\r
EfiProcessorFamily80287 = 0x08,\r
- EfiProcessorFamily80387 = 0x09, \r
+ EfiProcessorFamily80387 = 0x09,\r
EfiProcessorFamily80487 = 0x0A,\r
- EfiProcessorFamilyPentium = 0x0B, \r
+ EfiProcessorFamilyPentium = 0x0B,\r
EfiProcessorFamilyPentiumPro = 0x0C,\r
EfiProcessorFamilyPentiumII = 0x0D,\r
EfiProcessorFamilyPentiumMMX = 0x0E,\r
EfiProcessorFamilyCeleron = 0x0F,\r
EfiProcessorFamilyPentiumIIXeon = 0x10,\r
- EfiProcessorFamilyPentiumIII = 0x11, \r
+ EfiProcessorFamilyPentiumIII = 0x11,\r
EfiProcessorFamilyM1 = 0x12,\r
EfiProcessorFamilyM2 = 0x13,\r
EfiProcessorFamilyM1Reserved2 = 0x14,\r
EfiProcessorFamilyM1Reserved4 = 0x16,\r
EfiProcessorFamilyM1Reserved5 = 0x17,\r
EfiProcessorFamilyAmdDuron = 0x18,\r
- EfiProcessorFamilyK5 = 0x19, \r
+ EfiProcessorFamilyK5 = 0x19,\r
EfiProcessorFamilyK6 = 0x1A,\r
EfiProcessorFamilyK6_2 = 0x1B,\r
EfiProcessorFamilyK6_3 = 0x1C,\r
EfiProcessorFamilyUltraSparcIIi = 0x56,\r
EfiProcessorFamilyUltraSparcIII = 0x57,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field in ProcSubClass spec 0.9 is defined as EfiProcessorFamilyUltraSparcIIi.\r
+ /// Inconsistent with specification here:\r
+ /// This field in ProcSubClass specification 0.9 is defined as EfiProcessorFamilyUltraSparcIIi.\r
/// Change it to EfiProcessorFamilyUltraSparcIIIi to avoid build break.\r
///\r
EfiProcessorFamilyUltraSparcIIIi = 0x58,\r
EfiProcessorFamilyAMDAthlonMP = 0xB7,\r
EfiProcessorFamilyIntelItanium2 = 0xB8,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelPentiumM = 0xB9,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelCeleronD = 0xBA,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelPentiumD = 0xBB,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
- EfiProcessorFamilyIntelCoreSolo = 0xBD, \r
+ EfiProcessorFamilyIntelCoreSolo = 0xBD,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
- EfiProcessorFamilyReserved = 0xBE, \r
+ EfiProcessorFamilyReserved = 0xBE,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelCore2 = 0xBF,\r
EfiProcessorFamilyIBM390 = 0xC8,\r
EfiProcessorFamilyG4 = 0xC9,\r
EfiProcessorFamilyG5 = 0xCA,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyG6 = 0xCB,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyzArchitectur = 0xCC,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaC7M = 0xD2,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaC7D = 0xD3,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaC7 = 0xD4,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaEden = 0xD5,\r
EfiProcessorFamilyi860 = 0xFA,\r
EfiProcessorFamilyi960 = 0xFB,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIndicatorFamily2 = 0xFE,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyReserved1 = 0xFF\r
} EFI_PROCESSOR_FAMILY_DATA;\r
\r
-///\r
-/// This data record refers to the core voltage of the processor being defined. The unit of measurement \r
-/// of this data record is in volts. \r
+typedef enum {\r
+ EfiProcessorFamilySh3 = 0x104,\r
+ EfiProcessorFamilySh4 = 0x105,\r
+ EfiProcessorFamilyArm = 0x118,\r
+ EfiProcessorFamilyStrongArm = 0x119,\r
+ EfiProcessorFamily6x86 = 0x12C,\r
+ EfiProcessorFamilyMediaGx = 0x12D,\r
+ EfiProcessorFamilyMii = 0x12E,\r
+ EfiProcessorFamilyWinChip = 0x140,\r
+ EfiProcessorFamilyDsp = 0x15E,\r
+ EfiProcessorFamilyVideo = 0x1F4\r
+} EFI_PROCESSOR_FAMILY2_DATA;\r
+\r
+///\r
+/// This data record refers to the core voltage of the processor being defined. The unit of measurement\r
+/// of this data record is in volts.\r
///\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;\r
\r
///\r
-/// This data record refers to the base address of the APIC of the processor being defined. This data \r
-/// record is a physical address location. \r
+/// This data record refers to the base address of the APIC of the processor being defined. This data\r
+/// record is a physical address location.\r
///\r
typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;\r
\r
///\r
-/// This data record refers to the ID of the APIC of the processor being defined. This data record is a \r
-/// 4-byte entry. \r
+/// This data record refers to the ID of the APIC of the processor being defined. This data record is a\r
+/// 4-byte entry.\r
///\r
typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;\r
\r
///\r
-/// This data record refers to the version number of the APIC of the processor being defined. This data \r
-/// record is a 4-byte entry. \r
+/// This data record refers to the version number of the APIC of the processor being defined. This data\r
+/// record is a 4-byte entry.\r
///\r
typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;\r
\r
} EFI_PROCESSOR_MICROCODE_TYPE;\r
\r
///\r
-/// This data record refers to the revision of the processor microcode that is loaded in the processor. \r
-/// This data record is a 4-byte entry. \r
+/// This data record refers to the revision of the processor microcode that is loaded in the processor.\r
+/// This data record is a 4-byte entry.\r
///\r
typedef struct {\r
///\r
- /// Identifies what type of microcode the data is. \r
- /// \r
+ /// Identifies what type of microcode the data is.\r
+ ///\r
EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;\r
///\r
- /// Indicates the revision number of this microcode. \r
+ /// Indicates the revision number of this microcode.\r
///\r
UINT32 ProcessorMicrocodeRevisionNumber;\r
} EFI_PROCESSOR_MICROCODE_REVISION_DATA;\r
/// This data record refers to the status of the processor.\r
///\r
typedef struct {\r
- UINT32 CpuStatus :3; ///< Indicates the status of the processor. \r
- UINT32 Reserved1 :3; ///< Reserved for future use. Should be set to zero. \r
- UINT32 SocketPopulated :1; ///< Indicates if the processor is socketed or not. \r
- UINT32 Reserved2 :1; ///< Reserved for future use. Should be set to zero. \r
- UINT32 ApicEnable :1; ///< Indicates if the APIC is enabled or not. \r
- UINT32 BootApplicationProcessor :1; ///< Indicates if this processor is the boot processor. \r
- UINT32 Reserved3 :22;///< Reserved for future use. Should be set to zero. \r
+ UINT32 CpuStatus :3; ///< Indicates the status of the processor.\r
+ UINT32 Reserved1 :3; ///< Reserved for future use. Should be set to zero.\r
+ UINT32 SocketPopulated :1; ///< Indicates if the processor is socketed or not.\r
+ UINT32 Reserved2 :1; ///< Reserved for future use. Should be set to zero.\r
+ UINT32 ApicEnable :1; ///< Indicates if the APIC is enabled or not.\r
+ UINT32 BootApplicationProcessor :1; ///< Indicates if this processor is the boot processor.\r
+ UINT32 Reserved3 :22;///< Reserved for future use. Should be set to zero.\r
} EFI_PROCESSOR_STATUS_DATA;\r
\r
typedef enum {\r
EfiProcessorSocket754 = 0x10,\r
EfiProcessorSocket940 = 0x11,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocket939 = 0x12,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocketmPGA604 = 0x13,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocketLGA771 = 0x14,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocketLGA775 = 0x15\r
\r
typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In ProcSubclass spec 0.9, the naming is EFI_PROCESSOR_CACHE_ASSOCIATION_DATA.\r
+/// Inconsistent with specification here:\r
+/// In ProcSubclass specification 0.9, the naming is EFI_PROCESSOR_CACHE_ASSOCIATION_DATA.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;\r
\r
///\r
-/// This data record refers to the health status of the processor. \r
+/// This data record refers to the health status of the processor.\r
///\r
-/// Inconsistent with specification here: \r
-/// In ProcSubclass spec 0.9, the naming is EFI_PROCESSOR_HEALTH_STATUS_DATA.\r
+/// Inconsistent with specification here:\r
+/// In ProcSubclass specification 0.9, the naming is EFI_PROCESSOR_HEALTH_STATUS_DATA.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef enum {\r
EfiProcessorHealthy = 1,\r
EfiProcessorPerfRestricted = 2,\r
- EfiProcessorFuncRestricted = 3 \r
+ EfiProcessorFuncRestricted = 3\r
} EFI_PROCESSOR_HEALTH_STATUS;\r
\r
///\r
-/// This data record refers to the package number of this processor. Multiple logical processors can \r
-/// exist in a system and each logical processor can be correlated to the physical processor using this \r
-/// record type. \r
+/// This data record refers to the package number of this processor. Multiple logical processors can\r
+/// exist in a system and each logical processor can be correlated to the physical processor using this\r
+/// record type.\r
///\r
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
\r
+typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA;\r
+typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;\r
+typedef UINT8 EFI_PROCESSOR_THREAD_COUNT_DATA;\r
+\r
+typedef struct {\r
+ UINT16 Reserved :1;\r
+ UINT16 Unknown :1;\r
+ UINT16 Capable64Bit :1;\r
+ UINT16 Reserved2 :13;\r
+} EFI_PROCESSOR_CHARACTERISTICS_DATA;\r
+\r
///\r
/// Inconsistent with specification here:\r
-/// In ProcSubclass spec 0.9, the enumeration type data structure is NOT defined.\r
-/// The equivalent in spec is \r
+/// In ProcSubclass specification 0.9, the enumeration type data structure is NOT defined.\r
+/// The equivalent in specification is\r
/// #define EFI_PROCESSOR_FREQUENCY_RECORD_NUMBER 0x00000001\r
/// #define EFI_PROCESSOR_BUS_FREQUENCY_RECORD_NUMBER 0x00000002\r
/// #define EFI_PROCESSOR_VERSION_RECORD_NUMBER 0x00000003\r
ProcessorPackageNumberRecordType = 21,\r
ProcessorCoreFrequencyListRecordType = 22,\r
ProcessorFsbFrequencyListRecordType = 23,\r
- ProcessorHealthStatusRecordType = 24\r
+ ProcessorHealthStatusRecordType = 24,\r
+ ProcessorCoreCountRecordType = 25,\r
+ ProcessorEnabledCoreCountRecordType = 26,\r
+ ProcessorThreadCountRecordType = 27,\r
+ ProcessorCharacteristicsRecordType = 28,\r
+ ProcessorFamily2RecordType = 29,\r
+ ProcessorPartNumberRecordType = 30,\r
} EFI_CPU_VARIABLE_RECORD_TYPE;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In ProcSubclass spec 0.9, the union type data structure is NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In ProcSubclass specification 0.9, the union type data structure is NOT defined.\r
/// It's implementation-specific to simplify the code logic.\r
///\r
typedef union {\r
EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
+ EFI_PROCESSOR_PART_NUMBER_DATA ProcessorPartNumber;\r
EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
+ EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;\r
+ EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;\r
+ EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;\r
+ EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;\r
+ EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;\r
} EFI_CPU_VARIABLE_RECORD;\r
\r
typedef struct {\r
\r
typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;\r
///\r
-/// Inconsistent with specification here: \r
-/// In CacheSubclass spec 0.9, the naming is EFI_CACHE_MAXIMUM_SIZE_DATA.\r
+/// Inconsistent with specification here:\r
+/// In CacheSubclass specification 0.9, the naming is EFI_CACHE_MAXIMUM_SIZE_DATA.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;\r
UINT32 NonBurst :1;\r
UINT32 Burst :1;\r
UINT32 PipelineBurst :1;\r
+ ///\r
+ /// Inconsistent between CacheSubclass 0.9 and SMBIOS specifications here:\r
+ /// In CacheSubclass specification 0.9, the sequence of Asynchronous and Synchronous fileds\r
+ /// are opposite to SMBIOS specification.\r
+ ///\r
UINT32 Asynchronous :1;\r
UINT32 Synchronous :1;\r
UINT32 Reserved :25;\r
} EFI_CACHE_ASSOCIATIVITY_DATA;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In CacheSubclass 0.9 spec. It defines the field type as UINT16.\r
-/// In fact, it should be UINT32 type since it refers to a 32bit width data.\r
+/// Inconsistent with specification here:\r
+/// In CacheSubclass 0.9 specification. It defines the field type as UINT16.\r
+/// In fact, it should be UINT32 type because it refers to a 32bit width data.\r
///\r
typedef struct {\r
UINT32 Level :3;\r
\r
///\r
/// Inconsistent with specification here:\r
-/// In CacheSubclass spec 0.9, the enumeration type data structure is NOT defined.\r
-/// The equivalent in spec is \r
+/// In CacheSubclass specification 0.9, the enumeration type data structure is NOT defined.\r
+/// The equivalent in specification is\r
/// #define EFI_CACHE_SIZE_RECORD_NUMBER 0x00000001\r
/// #define EFI_CACHE_MAXIMUM_SIZE_RECORD_NUMBER 0x00000002\r
/// #define EFI_CACHE_SPEED_RECORD_NUMBER 0x00000003\r
/// #define EFI_CACHE_SOCKET_RECORD_NUMBER 0x00000004\r
-/// #define EFI_CACHE_SRAM_SUPPORT_RECORD_NUMBER 0x00000005 \r
-/// #define EFI_CACHE_SRAM_INSTALL_RECORD_NUMBER 0x00000006 \r
+/// #define EFI_CACHE_SRAM_SUPPORT_RECORD_NUMBER 0x00000005\r
+/// #define EFI_CACHE_SRAM_INSTALL_RECORD_NUMBER 0x00000006\r
/// #define EFI_CACHE_ERROR_SUPPORT_RECORD_NUMBER 0x00000007\r
/// #define EFI_CACHE_TYPE_RECORD_NUMBER 0x00000008\r
/// #define EFI_CACHE_ASSOCIATIVITY_RECORD_NUMBER 0x00000009\r
} EFI_CACHE_VARIABLE_RECORD_TYPE;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In CacheSubclass spec0.9, the union type data structure is NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In CacheSubclass specification 0.9, the union type data structure is NOT defined.\r
/// It's implementation-specific to simplify the code logic.\r
///\r
typedef union {\r
} EFI_MEMORY_REGION_TYPE;\r
\r
///\r
-/// This data record refers to the size of a memory region. The regions that are \r
-/// described can refer to physical memory, memory-mapped I/O, or reserved BIOS memory regions. \r
-/// The unit of measurement of this data record is in bytes. \r
+/// This data record refers to the size of a memory region. The regions that are\r
+/// described can refer to physical memory, memory-mapped I/O, or reserved BIOS memory regions.\r
+/// The unit of measurement of this data record is in bytes.\r
///\r
typedef struct {\r
///\r
- /// A zero-based value that indicates which processor(s) can access the memory region. \r
- /// A value of 0xFFFF indicates the region is accessible by all processors. \r
+ /// A zero-based value that indicates which processor(s) can access the memory region.\r
+ /// A value of 0xFFFF indicates the region is accessible by all processors.\r
///\r
UINT32 ProcessorNumber;\r
///\r
- /// A zero-based value that indicates the starting bus that can access the memory region. \r
+ /// A zero-based value that indicates the starting bus that can access the memory region.\r
///\r
UINT16 StartBusNumber;\r
///\r
- /// A zero-based value that indicates the ending bus that can access the memory region. \r
- /// A value of 0xFF for a PCI system indicates the region is accessible by all buses and \r
- /// is global in scope. An example of the EndBusNumber not being 0xFF is a system \r
- /// with two or more peer-to-host PCI bridges. \r
+ /// A zero-based value that indicates the ending bus that can access the memory region.\r
+ /// A value of 0xFF for a PCI system indicates the region is accessible by all buses and\r
+ /// is global in scope. An example of the EndBusNumber not being 0xFF is a system\r
+ /// with two or more peer-to-host PCI bridges.\r
///\r
UINT16 EndBusNumber;\r
///\r
- /// The type of memory region from the operating system's point of view. \r
- /// MemoryRegionType values are equivalent to the legacy INT 15 AX = E820 BIOS \r
- /// command values. \r
+ /// The type of memory region from the operating system's point of view.\r
+ /// MemoryRegionType values are equivalent to the legacy INT 15 AX = E820 BIOS\r
+ /// command values.\r
///\r
EFI_MEMORY_REGION_TYPE MemoryRegionType;\r
///\r
- /// The size of the memory region in bytes. \r
+ /// The size of the memory region in bytes.\r
///\r
EFI_EXP_BASE2_DATA MemorySize;\r
///\r
- /// The starting physical address of the memory region. \r
+ /// The starting physical address of the memory region.\r
///\r
EFI_PHYSICAL_ADDRESS MemoryStartAddress;\r
} EFI_MEMORY_SIZE_DATA;\r
} EFI_MEMORY_ERROR_CORRECTION;\r
\r
///\r
-/// This data record refers to the physical memory array. This data record is a structure. \r
-/// The type definition structure for EFI_MEMORY_ARRAY_LOCATION_DATA is in SMBIOS 2.3.4: \r
-/// - Table 3.3.17.1, Type 16, Offset 0x4 \r
-/// - Table 3.3.17.2, Type 16, Offset 0x5 \r
-/// - Table 3.3.17.3, Type 16, with the following offsets: \r
-/// -- Offset 0x6 \r
-/// -- Offset 0x7 \r
-/// -- Offset 0xB \r
-/// -- Offset 0xD \r
-/// \r
+/// This data record refers to the physical memory array. This data record is a structure.\r
+/// The type definition structure for EFI_MEMORY_ARRAY_LOCATION_DATA is in SMBIOS 2.3.4:\r
+/// - Table 3.3.17.1, Type 16, Offset 0x4\r
+/// - Table 3.3.17.2, Type 16, Offset 0x5\r
+/// - Table 3.3.17.3, Type 16, with the following offsets:\r
+/// -- Offset 0x6\r
+/// -- Offset 0x7\r
+/// -- Offset 0xB\r
+/// -- Offset 0xD\r
+///\r
typedef struct {\r
///\r
- /// The physical location of the memory array. \r
+ /// The physical location of the memory array.\r
///\r
EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;\r
///\r
///\r
EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;\r
///\r
- /// The maximum memory capacity size in kilobytes. If capacity is unknown, then \r
- /// values of MaximumMemoryCapacity.Value = 0x00 and \r
+ /// The maximum memory capacity size in kilobytes. If capacity is unknown, then\r
+ /// values of MaximumMemoryCapacity.Value = 0x00 and\r
/// MaximumMemoryCapacity.Exponent = 0x8000 are used.\r
///\r
EFI_EXP_BASE2_DATA MaximumMemoryCapacity;\r
///\r
- /// The number of memory slots or sockets that are available for memory devices \r
- /// in this array. \r
+ /// The number of memory slots or sockets that are available for memory devices\r
+ /// in this array.\r
///\r
UINT16 NumberMemoryDevices;\r
} EFI_MEMORY_ARRAY_LOCATION_DATA;\r
EfiMemoryFormFactorSodimm = 0x0D,\r
EfiMemoryFormFactorSrimm = 0x0E,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryFormFactorFbDimm = 0x0F\r
} EFI_MEMORY_FORM_FACTOR;\r
EfiMemoryTypeRdram = 0x11,\r
EfiMemoryTypeDdr = 0x12,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryTypeDdr2 = 0x13,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryTypeDdr2FbDimm = 0x14\r
} EFI_MEMORY_ARRAY_TYPE;\r
EfiMemoryStateAbsent = 4,\r
EfiMemoryStateDisabled = 5,\r
///\r
- /// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// Inconsistent with specification here:\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryStatePartial = 6\r
} EFI_MEMORY_STATE;\r
\r
///\r
-/// This data record describes a memory device. This data record is a structure. \r
+/// This data record describes a memory device. This data record is a structure.\r
/// The type definition structure for EFI_MEMORY_ARRAY_LINK_DATA is in SMBIOS 2.3.4.\r
///\r
typedef struct {\r
///\r
- /// A string that identifies the physically labeled socket or board position where the \r
+ /// A string that identifies the physically labeled socket or board position where the\r
/// memory device is located.\r
///\r
STRING_REF MemoryDeviceLocator;\r
///\r
- /// A string denoting the physically labeled bank where the memory device is located. \r
+ /// A string denoting the physically labeled bank where the memory device is located.\r
///\r
STRING_REF MemoryBankLocator;\r
///\r
- /// A string denoting the memory manufacturer. \r
- /// \r
+ /// A string denoting the memory manufacturer.\r
+ ///\r
STRING_REF MemoryManufacturer;\r
///\r
- /// A string denoting the serial number of the memory device. \r
+ /// A string denoting the serial number of the memory device.\r
///\r
STRING_REF MemorySerialNumber;\r
///\r
- /// The asset tag of the memory device. \r
+ /// The asset tag of the memory device.\r
///\r
STRING_REF MemoryAssetTag;\r
///\r
- /// A string denoting the part number of the memory device. \r
+ /// A string denoting the part number of the memory device.\r
///\r
STRING_REF MemoryPartNumber;\r
///\r
- /// A link to a memory array structure set. \r
+ /// A link to a memory array structure set.\r
///\r
EFI_INTER_LINK_DATA MemoryArrayLink;\r
///\r
///\r
EFI_INTER_LINK_DATA MemorySubArrayLink;\r
///\r
- /// The total width in bits of this memory device. If there are no error correcting bits, \r
- /// then the total width equals the data width. If the width is unknown, then set the field \r
- /// to 0xFFFF. \r
+ /// The total width in bits of this memory device. If there are no error correcting bits,\r
+ /// then the total width equals the data width. If the width is unknown, then set the field\r
+ /// to 0xFFFF.\r
///\r
UINT16 MemoryTotalWidth;\r
///\r
- /// The data width in bits of the memory device. A data width of 0x00 and a total width \r
- /// of 0x08 indicate that the device is used solely for error correction. \r
+ /// The data width in bits of the memory device. A data width of 0x00 and a total width\r
+ /// of 0x08 indicate that the device is used solely for error correction.\r
///\r
UINT16 MemoryDataWidth;\r
///\r
- /// The size in bytes of the memory device. A value of 0x00 denotes that no device is \r
+ /// The size in bytes of the memory device. A value of 0x00 denotes that no device is\r
/// installed, while a value of all Fs denotes that the size is not known.\r
///\r
EFI_EXP_BASE2_DATA MemoryDeviceSize;\r
///\r
- /// The form factor of the memory device. \r
+ /// The form factor of the memory device.\r
///\r
EFI_MEMORY_FORM_FACTOR MemoryFormFactor;\r
///\r
- /// A memory device set that must be populated with all devices of the same type and \r
- /// size. A value of 0x00 indicates that the device is not part of any set. A value of 0xFF \r
- /// indicates that the attribute is unknown. Any other value denotes the set number. \r
+ /// A memory device set that must be populated with all devices of the same type and\r
+ /// size. A value of 0x00 indicates that the device is not part of any set. A value of 0xFF\r
+ /// indicates that the attribute is unknown. Any other value denotes the set number.\r
///\r
UINT8 MemoryDeviceSet;\r
///\r
- /// The memory type in the socket. \r
+ /// The memory type in the socket.\r
///\r
EFI_MEMORY_ARRAY_TYPE MemoryType;\r
///\r
- /// The memory type details. \r
+ /// The memory type details.\r
///\r
EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;\r
///\r
- /// The memory speed in megahertz (MHz). A value of 0x00 denotes that \r
+ /// The memory speed in megahertz (MHz). A value of 0x00 denotes that\r
/// the speed is unknown.\r
- /// Inconsistent with specification here: \r
- /// In MemSubclass spec 0.9, the naming is MemoryTypeSpeed.\r
- /// Keep it unchanged for backward compatibilty.\r
- ///\r
+ /// Inconsistent with specification here:\r
+ /// In MemSubclass specification 0.9, the naming is MemoryTypeSpeed.\r
+ /// Keep it unchanged for backward compatibilty.\r
+ ///\r
EFI_EXP_BASE10_DATA MemorySpeed;\r
///\r
- /// The memory state. \r
+ /// The memory state.\r
///\r
EFI_MEMORY_STATE MemoryState;\r
} EFI_MEMORY_ARRAY_LINK_DATA;\r
#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004\r
\r
///\r
-/// This data record refers to a specified physical memory array associated with \r
-/// a given memory range. \r
-/// \r
+/// This data record refers to a specified physical memory array associated with\r
+/// a given memory range.\r
+///\r
typedef struct {\r
///\r
- /// The starting physical address in bytes of memory mapped to a specified physical \r
- /// memory array. \r
+ /// The starting physical address in bytes of memory mapped to a specified physical\r
+ /// memory array.\r
///\r
EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;\r
///\r
- /// The last physical address in bytes of memory mapped to a specified physical memory \r
- /// array. \r
+ /// The last physical address in bytes of memory mapped to a specified physical memory\r
+ /// array.\r
///\r
EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;\r
///\r
///\r
EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
///\r
- /// The number of memory devices that form a single row of memory for the address \r
- /// partition. \r
+ /// The number of memory devices that form a single row of memory for the address\r
+ /// partition.\r
///\r
UINT16 MemoryArrayPartitionWidth;\r
} EFI_MEMORY_ARRAY_START_ADDRESS_DATA;\r
#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005\r
\r
///\r
-/// This data record refers to a physical memory device that is associated with \r
+/// This data record refers to a physical memory device that is associated with\r
/// a given memory range.\r
-/// \r
+///\r
typedef struct {\r
///\r
- /// The starting physical address that is associated with the device. \r
+ /// The starting physical address that is associated with the device.\r
///\r
EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;\r
///\r
- /// The ending physical address that is associated with the device. \r
+ /// The ending physical address that is associated with the device.\r
///\r
EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;\r
///\r
- /// A link to the memory device data structure. \r
+ /// A link to the memory device data structure.\r
///\r
EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;\r
- /// \r
- /// A link to the memory array data structure. \r
+ ///\r
+ /// A link to the memory array data structure.\r
///\r
EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
///\r
- /// The position of the memory device in a row. A value of 0x00 is reserved and a value \r
- /// of 0xFF indicates that the position is unknown. \r
+ /// The position of the memory device in a row. A value of 0x00 is reserved and a value\r
+ /// of 0xFF indicates that the position is unknown.\r
///\r
UINT8 MemoryDevicePartitionRowPosition;\r
///\r
- /// The position of the device in an interleave. \r
+ /// The position of the device in an interleave.\r
///\r
UINT8 MemoryDeviceInterleavePosition;\r
///\r
- /// The maximum number of consecutive rows from the device that are accessed in a \r
- /// single interleave transfer. A value of 0x00 indicates that the device is not interleaved \r
- /// and a value of 0xFF indicates that the interleave configuration is unknown. \r
+ /// The maximum number of consecutive rows from the device that are accessed in a\r
+ /// single interleave transfer. A value of 0x00 indicates that the device is not interleaved\r
+ /// and a value of 0xFF indicates that the interleave configuration is unknown.\r
///\r
UINT8 MemoryDeviceInterleaveDataDepth;\r
} EFI_MEMORY_DEVICE_START_ADDRESS_DATA;\r
} EFI_MEMORY_CHANNEL_TYPE;\r
\r
///\r
-/// This data record refers the type of memory that is associated with the channel. This data record is a \r
-/// structure. \r
-/// The type definition structure for EFI_MEMORY_CHANNEL_TYPE_DATA is in SMBIOS 2.3.4, \r
-/// Table 3.3.38, Type 37, with the following offsets: \r
-/// - Offset 0x4 \r
-/// - Offset 0x5 \r
+/// This data record refers the type of memory that is associated with the channel. This data record is a\r
+/// structure.\r
+/// The type definition structure for EFI_MEMORY_CHANNEL_TYPE_DATA is in SMBIOS 2.3.4,\r
+/// Table 3.3.38, Type 37, with the following offsets:\r
+/// - Offset 0x4\r
+/// - Offset 0x5\r
/// - Offset 0x6\r
-/// \r
+///\r
typedef struct {\r
///\r
- /// The type of memory that is associated with the channel. \r
- /// \r
+ /// The type of memory that is associated with the channel.\r
+ ///\r
EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;\r
///\r
/// The maximum load that is supported by the channel.\r
///\r
UINT8 MemoryChannelMaximumLoad;\r
///\r
- /// The number of memory devices on this channel. \r
+ /// The number of memory devices on this channel.\r
///\r
UINT8 MemoryChannelDeviceCount;\r
} EFI_MEMORY_CHANNEL_TYPE_DATA;\r
#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007\r
\r
///\r
-/// This data record refers to the memory device that is associated with the memory channel. This data \r
-/// record is a structure. \r
-/// The type definition structure for EFI_MEMORY_CHANNEL_DEVICE_DATA is in SMBIOS 2.3.4, \r
-/// Table 3.3.38, Type 37, with the following offsets: \r
-/// - Offset 0x7 \r
+/// This data record refers to the memory device that is associated with the memory channel. This data\r
+/// record is a structure.\r
+/// The type definition structure for EFI_MEMORY_CHANNEL_DEVICE_DATA is in SMBIOS 2.3.4,\r
+/// Table 3.3.38, Type 37, with the following offsets:\r
+/// - Offset 0x7\r
/// - Offset 0x8\r
///\r
typedef struct {\r
///\r
- /// A number between one and MemoryChannelDeviceCount plus an arbitrary base. \r
- /// \r
+ /// A number between one and MemoryChannelDeviceCount plus an arbitrary base.\r
+ ///\r
UINT8 DeviceId;\r
///\r
- /// The Link of the associated memory device. See Memory Device (Type 17) for \r
- /// memory devices. \r
+ /// The Link of the associated memory device. See Memory Device (Type 17) for\r
+ /// memory devices.\r
///\r
EFI_INTER_LINK_DATA DeviceLink;\r
///\r
- /// The number of load units that this device consumes. \r
+ /// The number of load units that this device consumes.\r
///\r
UINT8 MemoryChannelDeviceLoad;\r
} EFI_MEMORY_CHANNEL_DEVICE_DATA;\r
// Memory. Controller Information - SMBIOS Type 5\r
//\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
#define EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER 0x00000008\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
-typedef enum { \r
+typedef enum {\r
EfiErrorDetectingMethodOther = 1,\r
EfiErrorDetectingMethodUnknown = 2,\r
EfiErrorDetectingMethodNone = 3,\r
} EFI_MEMORY_ERROR_DETECT_METHOD_TYPE;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
} EFI_MEMORY_ERROR_CORRECT_CAPABILITY;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
-typedef enum { \r
+typedef enum {\r
EfiMemoryInterleaveOther = 1,\r
EfiMemoryInterleaveUnknown = 2,\r
EfiMemoryInterleaveOneWay = 3,\r
} EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
} EFI_MEMORY_SPEED_TYPE;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
} EFI_MEMORY_SUPPORTED_TYPE;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
/// EFI_MEMORY_CONTROLLER_INFORMATION is obsolete\r
/// Use EFI_MEMORY_CONTROLLER_INFORMATION_DATA instead\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
} EFI_MEMORY_CONTROLLER_INFORMATION;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
///\r
/// Memory. Error Information - SMBIOS Type 18\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
#define EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER 0x00000009\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
-typedef enum { \r
+typedef enum {\r
EfiMemoryErrorOther = 1,\r
EfiMemoryErrorUnknown = 2,\r
EfiMemoryErrorOk = 3,\r
EfiMemoryErrorUnCorrectable = 14\r
} EFI_MEMORY_ERROR_TYPE;\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
-typedef enum { \r
+typedef enum {\r
EfiMemoryGranularityOther = 1,\r
EfiMemoryGranularityOtherUnknown = 2,\r
EfiMemoryGranularityDeviceLevel = 3,\r
EfiMemoryGranularityMemPartitionLevel = 4\r
} EFI_MEMORY_ERROR_GRANULARITY_TYPE;\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
-typedef enum { \r
+typedef enum {\r
EfiMemoryErrorOperationOther = 1,\r
EfiMemoryErrorOperationUnknown = 2,\r
EfiMemoryErrorOperationRead = 3,\r
EfiMemoryErrorOperationPartialWrite = 5\r
} EFI_MEMORY_ERROR_OPERATION_TYPE;\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
typedef struct {\r
} EFI_MEMORY_32BIT_ERROR_INFORMATION;\r
\r
///\r
-/// Memory. Error Information - SMBIOS Type 33\r
+/// Memory. Error Information - SMBIOS Type 33.\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 33.\r
///\r
#define EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER 0x0000000A\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 33.\r
///\r
typedef struct {\r
} EFI_MEMORY_64BIT_ERROR_INFORMATION;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It is implementation-specific to simplify the code logic.\r
///\r
typedef union _EFI_MEMORY_SUBCLASS_RECORDS {\r
EFI_PHYSICAL_ADDRESS BiosStartingAddress;\r
EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;\r
EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;\r
- EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION \r
+ EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION\r
BiosCharacteristics2;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 0.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 0.\r
///\r
UINT8 BiosMajorRelease;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 0.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 0.\r
///\r
UINT8 BiosMinorRelease;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 0.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 0.\r
///\r
UINT8 BiosEmbeddedFirmwareMajorRelease;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 0.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 0.\r
///\r
UINT8 BiosEmbeddedFirmwareMinorRelease;\r
} EFI_MISC_BIOS_VENDOR_DATA;\r
EFI_GUID SystemUuid;\r
EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 1.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 1.\r
///\r
STRING_REF SystemSKUNumber;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 1.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 1.\r
///\r
STRING_REF SystemFamily;\r
} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
\r
typedef struct {\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass 0.9 spec, it has a wrong field name "EFI_MISC_CHASSIS_TYPE".\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass 0.9 specification, it has the incorrect field name "EFI_MISC_CHASSIS_TYPE".\r
/// Change it to "ChassisType" to pass build.\r
///\r
UINT32 ChassisType :16;\r
EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;\r
EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;\r
EFI_MISC_PORT_TYPE PortType;\r
+ ///\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this type of field is defined as EFI_DEVICE_PATH_PROTOCOL,\r
+ /// which causes the implementation some complexity. Keep it unchanged for backward\r
+ /// compatibility.\r
+ ///\r
EFI_MISC_PORT_DEVICE_PATH PortPath;\r
} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;\r
\r
EfiSlotTypePci66MhzCapable = 0x0E,\r
EfiSlotTypeAgp = 0x0F,\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, its naming should be EfiSlotTypeAgp2X\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, its naming should be EfiSlotTypeAgp2X\r
/// rather than EfiSlotTypeApg2X.\r
///\r
EfiSlotTypeAgp2X = 0x10,\r
EfiSlotTypePC98LocalBus = 0xA3,\r
EfiSlotTypePC98Card = 0xA4,\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this field isn't defined.\r
- /// It's introduced for SmBios 2.6 spec type 9.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, these fields aren't defined.\r
+ /// They're introduced for SmBios 2.6 specification type 9.\r
///\r
- EfiSlotTypePciExpress = 0xA5\r
+ EfiSlotTypePciExpress = 0xA5,\r
+ EfiSlotTypePciExpressX1 = 0xA6,\r
+ EfiSlotTypePciExpressX2 = 0xA7,\r
+ EfiSlotTypePciExpressX4 = 0xA8,\r
+ EfiSlotTypePciExpressX8 = 0xA9,\r
+ EfiSlotTypePciExpressX16 = 0xAA\r
} EFI_MISC_SLOT_TYPE;\r
\r
typedef enum {\r
EfiSlotDataBusWidth16Bit = 0x04,\r
EfiSlotDataBusWidth32Bit = 0x05,\r
EfiSlotDataBusWidth64Bit = 0x06,\r
- EfiSlotDataBusWidth128Bit = 0x07\r
+ EfiSlotDataBusWidth128Bit = 0x07,\r
+ ///\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, these fields aren't defined.\r
+ /// They're introduced for SmBios 2.6 specification type 9.\r
+ ///\r
+ EfiSlotDataBusWidth1xOrx1 = 0x8,\r
+ EfiSlotDataBusWidth2xOrx2 = 0x9,\r
+ EfiSlotDataBusWidth4xOrx4 = 0xA,\r
+ EfiSlotDataBusWidth8xOrx8 = 0xB,\r
+ EfiSlotDataBusWidth12xOrx12 = 0xC,\r
+ EfiSlotDataBusWidth16xOrx16 = 0xD,\r
+ EfiSlotDataBusWidth32xOrx32 = 0xE\r
} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
\r
typedef enum {\r
typedef struct {\r
STRING_REF OnBoardDeviceDescription;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, the naming is OnBoardDeviceType.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, the name is OnBoardDeviceType.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
// Portable Battery - SMBIOS Type 22\r
//\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the naming is EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the name is EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
#define EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER 0x00000010\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BATTERY_DEVICE_CHEMISTRY.\r
-/// And all field namings are also different with spec.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BATTERY_DEVICE_CHEMISTRY.\r
+/// And all field namings are also different with specification.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
-typedef enum { \r
+typedef enum {\r
EfiPortableBatteryDeviceChemistryOther = 1,\r
EfiPortableBatteryDeviceChemistryUnknown = 2,\r
EfiPortableBatteryDeviceChemistryLeadAcid = 3,\r
} EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BATTERY_LOCATION_DATA.\r
-/// And the name and the order of the fields are also different with spec.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BATTERY_LOCATION_DATA.\r
+/// Also, the name and the order of the fields vary with specifications.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\r
STRING_REF ManufactureDate;\r
STRING_REF SerialNumber;\r
STRING_REF DeviceName;\r
- EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY \r
+ EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY\r
DeviceChemistry;\r
UINT16 DesignCapacity;\r
UINT16 DesignVoltage;\r
UINT16 SBDSManufactureDate;\r
STRING_REF SBDSDeviceChemistry;\r
UINT8 DesignCapacityMultiplier;\r
- UINT32 OEMSpecific; \r
- UINT8 BatteryNumber; // Temporary \r
+ UINT32 OEMSpecific;\r
+ UINT8 BatteryNumber; // Temporary\r
BOOLEAN Valid; // Is entry valid - Temporary\r
} EFI_MISC_PORTABLE_BATTERY;\r
\r
#define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, it only mention the possible value of each field in\r
-/// EFI_MISC_HARDWARE_SECURITY_SETTINGS. \r
-/// It's implementation-specific to simplify the code logic.\r
+/// Inconsistent with specification here:\r
+/// The MiscSubclass specification 0.9 only mentions the possible value of each field in\r
+/// EFI_MISC_HARDWARE_SECURITY_SETTINGS.\r
+/// It's implementation-specific in order to to simplify the code logic.\r
///\r
typedef enum {\r
EfiHardwareSecurityStatusDisabled = 0,\r
typedef struct {\r
EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
- UINT16 CoolingDeviceUnitGroup;\r
- EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
+ UINT8 CoolingDeviceUnitGroup;\r
+ UINT16 CoolingDeviceNominalSpeed;\r
UINT32 CoolingDeviceOemDefined;\r
} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
\r
STRING_REF TemperatureProbeDescription;\r
EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
TemperatureProbeLocation;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
- EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
- EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
- EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
+ ///\r
+ /// Inconsistent with specification here:\r
+ /// MiscSubclass 0.9 specification defines the fields type as EFI_EXP_BASE10_DATA.\r
+ /// In fact, they should be UINT16 type because they refer to 16bit width data.\r
+ /// Keeping this inconsistency for backward compatibility.\r
+ ///\r
+ UINT16 TemperatureProbeMaximumValue;\r
+ UINT16 TemperatureProbeMinimumValue;\r
+ UINT16 TemperatureProbeResolution;\r
+ UINT16 TemperatureProbeTolerance;\r
+ UINT16 TemperatureProbeAccuracy;\r
+ UINT16 TemperatureProbeNominalValue;\r
+ UINT16 MDLowerNoncriticalThreshold;\r
+ UINT16 MDUpperNoncriticalThreshold;\r
+ UINT16 MDLowerCriticalThreshold;\r
+ UINT16 MDUpperCriticalThreshold;\r
+ UINT16 MDLowerNonrecoverableThreshold;\r
+ UINT16 MDUpperNonrecoverableThreshold;\r
UINT32 TemperatureProbeOemDefined;\r
} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
\r
#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef enum {\r
\r
typedef struct {\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, the field name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, the field name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;\r
EFI_INTER_LINK_DATA ManagementDeviceLink;\r
EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this field is NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 35.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this field is NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 35.\r
///\r
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;\r
+ ///\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, this field is NOT defined.\r
+ /// It's implementation-specific to simplify the code logic.\r
+ ///\r
+ UINT8 ComponentType;\r
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
\r
//\r
\r
typedef struct {\r
EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;\r
- EFI_MISC_IPMI_SPECIFICATION_REVISION \r
+ EFI_MISC_IPMI_SPECIFICATION_REVISION\r
IpmiSpecificationRevision;\r
UINT16 IpmiI2CSlaveAddress;\r
UINT16 IpmiNvDeviceAddress;\r
} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
\r
#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
+///\r
+/// The definition above is *NOT* defined in MiscSubclass specifications 0.9.\r
+/// It's defined for backward compatibility.\r
+///\r
+#define EFI_MISC_IPMI_INTERFACE_TYPE_DATA_RECORD_NUMBER EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER\r
\r
///\r
/// System Power supply Record - SMBIOS Type 39\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the type of all fields are UINT32.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the type of all fields are UINT32.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\r
} EFI_MISC_POWER_SUPPLY_CHARACTERISTICS;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\r
///\r
/// OEM Data Record - SMBIOS Type 0x80-0xFF\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the structure name is EFI_SMBIOS_STRUCTURE_HDR.\r
-/// Due to this structure is commonly used by vendor to construct SmBios type 0x80~0xFF table,\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the structure name is EFI_SMBIOS_STRUCTURE_HDR.\r
+/// Due to this, the structure is commonly used by vendors to construct SmBios type 0x80~0xFF table,\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\r
\r
typedef struct {\r
///\r
- /// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, the field name is EFI_SMBIOS_STRUCTURE_HDR.\r
+ /// Inconsistent with specification here:\r
+ /// In MiscSubclass specification 0.9, the field name is EFI_SMBIOS_STRUCTURE_HDR.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
SMBIOS_STRUCTURE_HDR Header;\r
///\r
/// Misc. System Event Log - SMBIOS Type 15\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.\r
-/// It's introduced for SmBios 2.6 spec type 15.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 15.\r
///\r
#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.\r
-/// It's introduced for SmBios 2.6 spec type 15.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 15.\r
///\r
typedef struct {\r
UINT16 LogAreaLength;\r
// 0x00~0x04: as following definition\r
// 0x05~0x7f: Available for future assignment.\r
// 0x80~0xff: BIOS Vendor/OEM-specific.\r
-// \r
+//\r
#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00\r
#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01\r
#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02\r
///\r
/// Management Device Threshold Data Record - SMBIOS Type 36\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.\r
-/// It's introduced for SmBios 2.6 spec type 36.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 36.\r
///\r
#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021\r
///\r
-/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.\r
-/// It's introduced for SmBios 2.6 spec type 36.\r
+/// Inconsistent with specification here:\r
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 36.\r
///\r
typedef struct {\r
UINT16 LowerThresNonCritical;\r
typedef EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA EFI_MISC_VOLTAGE_PROBE_DESCRIPTION;\r
typedef EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA EFI_MISC_COOLING_DEVICE_TEMP_LINK;\r
typedef EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION;\r
-typedef EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA \r
+typedef EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA\r
EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;\r
typedef EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;\r
typedef EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;\r
+typedef EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
+ EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It is implementation-specific to simplify the code logic.\r
///\r
typedef union {\r
} EFI_MISC_SUBCLASS_RECORDS;\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It is implementation-specific to simplify the code logic.\r
///\r
typedef struct {\r
#pragma pack()\r
\r
///\r
-/// Inconsistent with specification here: \r
-/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In DataHubSubclass specification 0.9 page 16, the following symbol is NOT defined.\r
/// But value is meaningful, 0 means Reserved.\r
///\r
#define EFI_SUBCLASS_INSTANCE_RESERVED 0\r
///\r
-/// Inconsistent with specification here: \r
-/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.\r
+/// Inconsistent with specification here:\r
+/// In DataHubSubclass specification 0.9 page 16, the following symbol is NOT defined.\r
/// But value is meaningful, -1 means Not Applicable.\r
///\r
#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF\r