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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to