Thanks for your update. Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn>
Besides, I suggest you also update ShellPkg\Library\UefiShellDebug1CommandsLib\SmbiosView to support new added tables. Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Abdul Lateef > Attar via groups.io > 发送时间: 2021年11月5日 20:25 > 收件人: devel@edk2.groups.io > 抄送: Michael D Kinney <michael.d.kin...@intel.com>; Liming Gao > <gaolim...@byosoft.com.cn>; Zhiguang Liu <zhiguang....@intel.com> > 主题: [edk2-devel] [PATCH v1 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 2c2b32b8d462..62c96987aae2 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) 2021, 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; > > > > /// > > @@ -1402,6 +1407,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 > > /// > > @@ -1447,6 +1463,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; > > > > /// > > @@ -2007,7 +2027,9 @@ typedef enum { > PointingDeviceInterfaceADB = 0x08, > > PointingDeviceInterfaceBusMouseDB9 = 0xA0, > > PointingDeviceInterfaceBusMouseMicroDin = 0xA1, > > - PointingDeviceInterfaceUsb = 0xA2 > > + PointingDeviceInterfaceUsb = 0xA2, > > + PointingDeviceInterfaceI2c = 0xA3, > > + PointingDeviceInterfaceSpi = 0xA4 > > } BUILTIN_POINTING_DEVICE_INTERFACE; > > > > /// > > @@ -2511,7 +2533,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; > > > > /// > > @@ -2650,6 +2678,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) > > /// > > @@ -2714,6 +2848,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 (#83424): https://edk2.groups.io/g/devel/message/83424 Mute This Topic: https://groups.io/mt/86896893/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-