Skip to content

Commit

Permalink
DynamicTablesPkg: Smbios Type4 and Type7 population.
Browse files Browse the repository at this point in the history
Create a SmbiosType4Lib and SmbiosType7Lib in DynamicTablesPkg for Smbios Type4 and Type7
table generation.

Signed-off-by: Harshal Ratan Patil <hapatil@nvidia.com>
Reviewed-by: Girish Mahadevan <gmahadevan@nvidia.com>
Reviewed-by: Jeff Brasen <jbrasen@nvidia.com>
  • Loading branch information
harshal03patil authored and jgarver committed Sep 6, 2023
1 parent 494debc commit 998950e
Show file tree
Hide file tree
Showing 5 changed files with 943 additions and 0 deletions.
154 changes: 154 additions & 0 deletions DynamicTablesPkg/Include/SmbiosNameSpaceObjects.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ typedef enum SmbiosObjectID {
ESmbiosObjMemoryArrayMappedAddress,
ESmbiosObjPowerSupplyInfo,
ESmbiosObjFirmwareInventoryInfo,
ESmbiosObjProcessorInfo,
ESmbiosObjCacheInfo,
ESmbiosObjMax
} ESMBIOS_OBJECT_ID;

Expand Down Expand Up @@ -607,6 +609,158 @@ typedef struct CmStdFirmwareInventoryInfo {
SMBIOS_TABLE_GENERATOR_ID GeneratorId;
} CM_SMBIOS_FIRMWARE_INVENTORY_INFO;

/** A structure that describes the Processor Information.
The Processor Information on the system is described by this object.
SMBIOS Specification v3.6.0 Type4
ID: EStdObjProcessorInfo
**/
typedef struct CmSmbiosProcessorInfo {
/** Socket Designation string */
CHAR8 *SocketDesignation;

/** Processor Type */
UINT8 ProcessorType;

/** Processor Family */
UINT8 ProcessorFamily;

/** Processor Manufacturer string */
CHAR8 *ProcessorManufacturer;

/** Processor ID */
PROCESSOR_ID_DATA ProcessorId;

/** Processor Version string */
CHAR8 *ProcessorVersion;

/** Voltage */
PROCESSOR_VOLTAGE Voltage;

/** External Clock */
UINT16 ExternalClock;

/** Max Speed*/
UINT16 MaxSpeed;

/** Current Speed */
UINT16 CurrentSpeed;

/** Status */
UINT8 Status;

/** Processor Upgrade */
UINT8 ProcessorUpgrade;

/** L1 Cache Handle */
UINT16 L1CacheHandle;

/** L2 Cache Handle */
UINT16 L2CacheHandle;

/** L3 Cache Handle */
UINT16 L3CacheHandle;

/** Serial Number string */
CHAR8 *SerialNumber;

/** Asset Tag string */
CHAR8 *AssetTag;

/** Part Number string */
CHAR8 *PartNumber;

/** Core Count */
UINT8 CoreCount;

/** Enabled Core Count */
UINT8 EnabledCoreCount;

/** Thread Count */
UINT8 ThreadCount;

/** Processor Characteristics */
UINT16 ProcessorCharacteristics;

/** Processor Family 2 */
UINT16 ProcessorFamily2;

/** Core Count 2 */
UINT16 CoreCount2;

/** Enabled Core Count 2 */
UINT16 EnabledCoreCount2;

/** Thread Count 2 */
UINT16 ThreadCount2;

/** Thread Enabled */
UINT16 ThreadEnabled;

/** CM Object Token of Processor information */
CM_OBJECT_TOKEN ProcessorInfoToken;

/** CM Object Token of L1 Cache information */
CM_OBJECT_TOKEN CacheInfoTokenL1;

/** CM Object Token of L2 Cache information */
CM_OBJECT_TOKEN CacheInfoTokenL2;

/** CM Object Token of L3 Cache information */
CM_OBJECT_TOKEN CacheInfoTokenL3;
} CM_SMBIOS_PROCESSOR_INFO;

/** A structure that describes the Cache Information.
The Cache Information on the system is described by this object.
SMBIOS Specification v3.6.0 Type7
ID: EStdObjCacheInfo
**/
typedef struct CmSmbiosCacheInfo {
/** Socket Designation string */
CHAR8 *SocketDesignation;

/** Cache Configuration */
UINT16 CacheConfiguration;

/** Maximum Cache Size */
UINT16 MaximumCacheSize;

/** Installed Size */
UINT16 InstalledSize;

/** Supported SRAM Type */
CACHE_SRAM_TYPE_DATA SupportedSRAMType;

/** Current SRAM Type */
CACHE_SRAM_TYPE_DATA CurrentSRAMType;

/** Cache Speed */
UINT8 CacheSpeed;

/** Error Correction Type */
UINT8 ErrorCorrectionType;

/** System Cache Type*/
UINT8 SystemCacheType;

/** Associativity */
UINT8 Associativity;

/** Maximum Cache Size 2*/
UINT32 MaximumCacheSize2;

/** Installed Size 2*/
UINT32 InstalledSize2;

/** CM Object Token of Cache information */
CM_OBJECT_TOKEN CacheInfoToken;
} CM_SMBIOS_CACHE_INFO;

#pragma pack()

#endif // SMBIOS_NAMESPACE_OBJECTS_H_
Loading

0 comments on commit 998950e

Please sign in to comment.