Create PR https://github.com/tianocore/edk2/pull/2647 to merge it.
Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 gaoliming > 发送时间: 2022年3月8日 9:42 > 收件人: 'Abdul Lateef Attar' <abdat...@amd.com>; devel@edk2.groups.io > 抄送: 'Michael D Kinney' <michael.d.kin...@intel.com>; 'Zhiguang Liu' > <zhiguang....@intel.com> > 主题: [edk2-devel] 回复: [PATCH v3 1/1] MdePkg/Include: Smbios > Specification 3.5.0 changes > > Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn> > > > -----邮件原件----- > > 发件人: abdullateef.at...@amd.com <abdullateef.at...@amd.com> 代表 > > Abdul Lateef Attar > > 发送时间: 2022年2月24日 23:50 > > 收件人: devel@edk2.groups.io > > 抄送: Michael D Kinney <michael.d.kin...@intel.com>; Liming Gao > > <gaolim...@byosoft.com.cn>; Zhiguang Liu <zhiguang....@intel.com> > > 主题: [PATCH v3 1/1] MdePkg/Include: Smbios Specification 3.5.0 changes > > > > Adds following changes > > 1) Added support for manufacturing mode in > > BIOS Characteristics Extension Byte 2. > > 2) Added support for slot height in > > System Slot Table (type 9). > > 3) Updated Built-in pointing device interface with > > USB, I2C and SPI. > > 4) Updates Onboard Devices Extended Information with > > wireless LAN, bluetooth, WWAN, eMMC, NVMe and UFC. > > 5) Added new table Firmware Inventory Information (Type 45) > > and its corresponding enum values. > > 6) Added new table String Property Table (Type 46) > > and its corresponding enum values. > > > > Cc: Michael D Kinney <michael.d.kin...@intel.com> > > Cc: Liming Gao <gaolim...@byosoft.com.cn> > > Cc: Zhiguang Liu <zhiguang....@intel.com> > > Signed-off-by: Abdul Lateef Attar <abdat...@amd.com> > > --- > > MdePkg/Include/IndustryStandard/SmBios.h | 144 > +++++++++++++++++++- > > 1 file changed, 140 insertions(+), 4 deletions(-) > > > > diff --git a/MdePkg/Include/IndustryStandard/SmBios.h > > b/MdePkg/Include/IndustryStandard/SmBios.h > > index 828ea6d753c2..2b1567b0528b 100644 > > --- a/MdePkg/Include/IndustryStandard/SmBios.h > > +++ b/MdePkg/Include/IndustryStandard/SmBios.h > > @@ -1,9 +1,10 @@ > > /** @file > > > > - Industry Standard Definitions of SMBIOS Table Specification v3.3.0. > > > > + Industry Standard Definitions of SMBIOS Table Specification v3.5.0. > > > > > > > > Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR> > > > > (C) Copyright 2015-2017 Hewlett Packard Enterprise Development > LP<BR> > > > > (C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development > LP<BR> > > > > +Copyright (c) 2022, AMD Incorporated. All rights reserved.<BR> > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > > > > > **/ > > > > @@ -94,6 +95,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > #define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE > > 42 > > > > #define SMBIOS_TYPE_TPM_DEVICE > 43 > > > > #define SMBIOS_TYPE_PROCESSOR_ADDITIONAL_INFORMATION > 44 > > > > +#define SMBIOS_TYPE_FIRMWARE_INVENTORY_INFORMATION > > 45 > > > > +#define SMBIOS_TYPE_STRING_PROPERTY_INFORMATION > 46 > > > > > > > > /// > > > > /// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, > chapter > > 3.3.43. > > > > @@ -252,7 +255,9 @@ typedef struct { > > UINT8 TargetContentDistributionEnabled : 1; > > > > UINT8 UefiSpecificationSupported : 1; > > > > UINT8 VirtualMachineSupported : 1; > > > > - UINT8 ExtensionByte2Reserved : 3; > > > > + UINT8 ManufacturingModeSupported : 1; > > > > + UINT8 ManufacturingModeEnabled : 1; > > > > + UINT8 ExtensionByte2Reserved : 1; > > > > } MBCE_SYSTEM_RESERVED; > > > > > > > > /// > > > > @@ -1401,6 +1406,17 @@ typedef struct { > > UINT8 Reserved : 1; ///< Set to 0. > > > > } MISC_SLOT_CHARACTERISTICS2; > > > > > > > > +/// > > > > +/// System Slots - Slot Height > > > > +/// > > > > +typedef enum { > > > > + SlotHeightNone = 0x00, > > > > + SlotHeightOther = 0x01, > > > > + SlotHeightUnknown = 0x02, > > > > + SlotHeightFullHeight = 0x03, > > > > + SlotHeightLowProfile = 0x04 > > > > +} MISC_SLOT_HEIGHT; > > > > + > > > > /// > > > > /// System Slots - Peer Segment/Bus/Device/Function/Width Groups > > > > /// > > > > @@ -1446,6 +1462,10 @@ typedef struct { > > UINT8 SlotInformation; > > > > UINT8 SlotPhysicalWidth; > > > > UINT16 SlotPitch; > > > > + // > > > > + // Add for smbios 3.5 > > > > + // > > > > + UINT8 SlotHeight; ///< > The > > enumeration value from MISC_SLOT_HEIGHT. > > > > } SMBIOS_TABLE_TYPE9; > > > > > > > > /// > > > > @@ -2004,7 +2024,9 @@ typedef enum { > > PointingDeviceInterfaceADB = 0x08, > > > > PointingDeviceInterfaceBusMouseDB9 = 0xA0, > > > > PointingDeviceInterfaceBusMouseMicroDin = 0xA1, > > > > - PointingDeviceInterfaceUsb = 0xA2 > > > > + PointingDeviceInterfaceUsb = 0xA2, > > > > + PointingDeviceInterfaceI2c = 0xA3, > > > > + PointingDeviceInterfaceSpi = 0xA4 > > > > } BUILTIN_POINTING_DEVICE_INTERFACE; > > > > > > > > /// > > > > @@ -2508,7 +2530,13 @@ typedef enum { > > OnBoardDeviceExtendedTypeSound = 0x07, > > > > OnBoardDeviceExtendedTypePATAController = 0x08, > > > > OnBoardDeviceExtendedTypeSATAController = 0x09, > > > > - OnBoardDeviceExtendedTypeSASController = 0x0A > > > > + OnBoardDeviceExtendedTypeSASController = 0x0A, > > > > + OnBoardDeviceExtendedTypeWirelessLAN = 0x0B, > > > > + OnBoardDeviceExtendedTypeBluetooth = 0x0C, > > > > + OnBoardDeviceExtendedTypeWWAN = 0x0D, > > > > + OnBoardDeviceExtendedTypeeMMC = 0x0E, > > > > + OnBoardDeviceExtendedTypeNvme = 0x0F, > > > > + OnBoardDeviceExtendedTypeUfc = 0x10 > > > > } ONBOARD_DEVICE_EXTENDED_INFO_TYPE; > > > > > > > > /// > > > > @@ -2646,6 +2674,112 @@ typedef struct { > > UINT32 OemDefined; > > > > } SMBIOS_TABLE_TYPE43; > > > > > > > > +/// > > > > +/// Firmware Inventory Version Format Type (Type 45). > > > > +/// > > > > +typedef enum { > > > > + VersionFormatTypeFreeForm = 0x00, > > > > + VersionFormatTypeMajorMinor = 0x01, > > > > + VersionFormatType32BitHex = 0x02, > > > > + VersionFormatType64BitHex = 0x03, > > > > + VersionFormatTypeReserved = 0x04, /// 0x04 - 0x7F are reserved > > > > + VersionFormatTypeOem = 0x80 /// 0x80 - 0xFF are BIOS > > Vendor/OEM-specific > > > > +} FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE; > > > > + > > > > +/// > > > > +/// Firmware Inventory Firmware Id Format Type (Type 45). > > > > +/// > > > > +typedef enum { > > > > + FirmwareIdFormatTypeFreeForm = 0x00, > > > > + FirmwareIdFormatTypeUuid = 0x01, > > > > + FirmwareIdFormatTypeReserved = 0x04, /// 0x04 - 0x7F are > > reserved > > > > + InventoryFirmwareIdFormatTypeOem = 0x80 /// 0x80 - 0xFF are > BIOS > > Vendor/OEM-specific > > > > +} FIRMWARE_INVENTORY_FIRMWARE_ID_FORMAT_TYPE; > > > > + > > > > +/// > > > > +/// Firmware Inventory Firmware Characteristics (Type 45). > > > > +/// > > > > +typedef enum { > > > > + CharacteristicsUpdatable = 0x00, > > > > + CharacteristicsWriteProtected = 0x01, > > > > + CharacteristicsReserved = 0x02 /// 0x02 - 0x0F are > reserved > > > > +} FIRMWARE_INVENTORY_CHARACTERISTICS; > > > > + > > > > +/// > > > > +/// Firmware Inventory State Information (Type 45). > > > > +/// > > > > +typedef enum { > > > > + FirmwareInventoryStateOther = 0x01, > > > > + FirmwareInventoryStateUnknown = 0x02, > > > > + FirmwareInventoryStateDisabled = 0x03, > > > > + FirmwareInventoryStateEnabled = 0x04, > > > > + FirmwareInventoryStateAbsent = 0x05, > > > > + FirmwareInventoryStateStandbyOffline = 0x06, > > > > + FirmwareInventoryStateStandbySpare = 0x07, > > > > + FirmwareInventoryStateUnavailableOffline = 0x08, > > > > +} FIRMWARE_INVENTORY_STATE; > > > > + > > > > +/// > > > > +/// Firmware Inventory Information (Type 45) > > > > +/// > > > > +/// The information in this structure defines an inventory of firmware > > > > +/// components in the system. This can include firmware components such > > as > > > > +/// BIOS, BMC, as well as firmware for other devices in the system. > > > > +/// The information can be used by software to display the firmware > > inventory > > > > +/// in a uniform manner. It can also be used by a management controller, > > > > +/// such as a BMC, for remote system management. > > > > +/// This structure is not intended to replace other standard programmatic > > > > +/// interfaces for firmware updates. > > > > +/// One Type 45 structure is provided for each firmware component. > > > > +/// > > > > +typedef struct { > > > > + SMBIOS_STRUCTURE Hdr; > > > > + SMBIOS_HANDLE RefHandle; > > > > + > > > > + UINT8 FirmwareComponentName; > > > > + UINT8 FirmwareVersion; > > > > + UINT8 FirmwareVersionFormat; ///< The > > enumeration value from FIRMWARE_INVENTORY_VERSION_FORMAT_TYPE > > > > + UINT8 FirmwareId; > > > > + UINT8 FirmwareIdFormat; > > > > + UINT8 ReleaseDate; > > > > + UINT8 Manufacturer; > > > > + UINT8 LowestSupportedVersion; > > > > + UINT64 ImageSize; > > > > + UINT32 Characteristics; > > > > + UINT8 State; > > > > + UINT8 AssociatedComponentCount; > > > > + /// > > > > + /// zero or n-number of handles depends on > AssociatedComponentCount > > > > + /// handles are of type SMBIOS_HANDLE > > > > + /// > > > > +} SMBIOS_TABLE_TYPE45; > > > > + > > > > +/// > > > > +/// String Property IDs (Type 46). > > > > +/// > > > > +typedef enum { > > > > + StringPropertyIdNone = 0x0000, > > > > + StringPropertyIdDevicePath = 0x0001, > > > > + StringPropertyIdReserved = 0x0002, /// Reserved 0x0002 - > > 0x7FFF > > > > + StringPropertyIdBiosVendor = 0x8000, /// BIOS vendor 0x8000 - > 0xBFFF > > > > + StringPropertyIdOem = 0xC000 /// OEM range 0xC000 - > > 0xFFFF > > > > +} STRING_PROPERTY_ID; > > > > + > > > > +/// > > > > +/// This structure defines a string property for another structure. > > > > +/// This allows adding string properties that are common to several > > structures > > > > +/// without having to modify the definitions of these structures. > > > > +/// Multiple type 46 structures can add string properties to the same > > > > +/// parent structure. > > > > +/// > > > > +typedef struct { > > > > + SMBIOS_STRUCTURE Hdr; > > > > + SMBIOS_HANDLE RefHandle; > > > > + UINT16 StringPropertyId; > > > > + UINT8 StringPropertyValue; > > > > + SMBIOS_HANDLE ParentHandle; > > > > +} SMBIOS_TABLE_TYPE46; > > > > + > > > > /// > > > > /// Inactive (Type 126) > > > > /// > > > > @@ -2710,6 +2844,8 @@ typedef union { > > SMBIOS_TABLE_TYPE42 *Type42; > > > > SMBIOS_TABLE_TYPE43 *Type43; > > > > SMBIOS_TABLE_TYPE44 *Type44; > > > > + SMBIOS_TABLE_TYPE45 *Type45; > > > > + SMBIOS_TABLE_TYPE46 *Type46; > > > > SMBIOS_TABLE_TYPE126 *Type126; > > > > SMBIOS_TABLE_TYPE127 *Type127; > > > > UINT8 *Raw; > > > > -- > > 2.25.1 > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#87726): https://edk2.groups.io/g/devel/message/87726 Mute This Topic: https://groups.io/mt/89860209/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-