diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Include/Protocol/SmbiosDynamicData.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'Include/Protocol/SmbiosDynamicData.h')
-rw-r--r-- | Include/Protocol/SmbiosDynamicData.h | 585 |
1 files changed, 585 insertions, 0 deletions
diff --git a/Include/Protocol/SmbiosDynamicData.h b/Include/Protocol/SmbiosDynamicData.h new file mode 100644 index 0000000..76bf66e --- /dev/null +++ b/Include/Protocol/SmbiosDynamicData.h @@ -0,0 +1,585 @@ +//**********************************************************************// +//**********************************************************************// +//** **// +//** (C)Copyright 1985-2016, American Megatrends, Inc. **// +//** **// +//** All Rights Reserved. **// +//** **// +//** 5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093 **// +//** **// +//** Phone: (770)-246-8600 **// +//** **// +//**********************************************************************// +//**********************************************************************// + +//**********************************************************************// +// $Header: /Alaska/BIN/Modules/SMBIOS/SmbiosProtocol/SmbiosDynamicData.h 33 4/07/16 5:50p Davidd $ +// +// $Revision: 33 $ +// +// $Date: 4/07/16 5:50p $ +//**********************************************************************// +// Revision History +// ---------------- +// $Log: /Alaska/BIN/Modules/SMBIOS/SmbiosProtocol/SmbiosDynamicData.h $ +// +// 33 4/07/16 5:50p Davidd +// [TAG] EIP231162 +// [Category] New Feature +// [Description] Merge Aptio V Smbios -09 changes for Aptio 4 +// 4.6.5.5_SMBIOS_40 release +// [Files] Smbios.sdl +// SmbiosDynamicData.h +// Smbios.h +// SmbiosStaticData.sdl +// SmbiosStaticData.asm +// SmbData.mac +// SmbMacro.aid +// SmbDesc.def +// +// 32 5/29/13 12:47p Davidd +// [TAG] EIP124735 +// [Category] Spec Update +// [Severity] Normal +// [Description] SMBIOS 2.8.0 specification support for Aptio 4 +// [Files] Smb.equ +// Smbdata.mac +// Smbdesc.def +// Smbstruc.def +// Smbios.c +// Smbios.h +// SmbiosDynamicData.h +// +// 31 5/23/13 2:37p Davidd +// [TAG] EIP104836 +// [Category] New Feature +// [Description] DMIEdit support edit type 4 +// [Files] SmbiosBoard.c +// SmbiosDMIEditBoard.sdl +// Smbios.c +// SmbiosDMIEditFunc.c +// Smbios.h +// SmbiosDynamicData.h +// +// 30 6/16/11 12:28p Davidd +// [TAG] EIP61776 +// [Category] Improvement +// [Description] SMBIOS Type 17 "Type Detail" Registered/Unbuffered, +// needs to be dynamically updated +// [Files] Smbios.sdl +// SmbiosDynamicData.h +// Smbios.c +// +// 29 5/04/11 3:34p Davidd +// [TAG] EIP57144 +// [Category] NEW FEATURE +// [Description] Allow SMBIOS Type 39 to be modified using DMIEdit +// [Files] SmbiosBoard.c +// Smbios.h +// SmbiosDynamicData.h +// Smbios.c +// SmbiosDmieditFunc.c +// SmbiosNvramFunc.c +// +// 28 12/08/10 10:57a Davidd +// [TAG] EIP48952 +// [Category] Improvement +// [Description] Customer Request for SMBIOS Type 16 +// MemoryErrorCorrection field to be filled out +// [Files] +// Smbios.c +// SmbiosDynamicData.h +// +// 27 11/19/10 6:19p Davidd +// [TAG] EIP46175 +// [Category] Improvement +// [Description] Redesign SMBIOS to avoid redundant SPD reading +// [Files] +// Smbios.c +// SmbiosDynamicData.h +// +// 26 11/15/10 3:56p Davidd +// [TAG] EIP46175 +// [Category] Improvement +// [Description] Redesign SMBIOS to avoid redundant SPD reading +// [Files] +// Smbios.c +// SmbiosDynamicData.h +// +// 25 11/15/10 2:19p Davidd +// [TAG] EIP46936 +// [Category] Improvement +// [Description] Generic Smbios module should have the support to +// disable SMBIOS memory update +// [Files] +// Smbios.c +// Smbios.sdl +// SmbiosBoard.c +// SmbiosDynamicData.h +// +// 24 10/08/10 8:07p Davidd +// [TAG] EIP43278 +// +// [Category] Function Request +// +// [Severity] Normal +// +// [Description] SMBIOS 2.7 requirement +// +// [Files] Include\Protocol\Smbios.h +// Include\Protocol\SmbiosDynamicData.h +// Board\EM\SMBIOS\SMBiosStaticData\SmbiosStaticData.sdl +// Board\EM\SMBIOS\SMBiosStaticData\SMBDATA.MAC +// Board\EM\SMBIOS\SMBiosStaticData\SMBSTRUC.DEF +// Board\EM\SMBIOS\SMBiosStaticData\SMBMACRO.AID +// Board\EM\SMBIOS\SMBiosStaticData\Smbdesc.def +// Board\EM\SMBIOS\SMBiosStaticData\SMB.EQU +// +// 23 6/02/09 3:52p Davidd +// Updated AMI headers (EIP 22180) +// +// 22 5/19/09 11:01a Davidd +// Changes added to improve memory type 17 porting (EIP 22241). +// +// 21 12/30/08 3:15p Davidd +// Fixed the hanging problem when only SMBIOS binary component is present +// (ref. EIP 18370) +// +// 20 11/14/08 4:42p Davidd +// - Added OemUpdate protocol +// +// 19 10/23/08 6:21p Davidd +// Added changes to support SMBIOS version 2.5 and 2.6. +// +// 18 2/22/08 10:20a Davidd +// Simplified the way the number of memory slots for each physical memory +// array are defined. +// +// 17 2/06/08 3:44p Davidd +// Added NumberOfBatteries field to _EFI_SMBIOS_BOARD_PROTOCOL to hold the +// number of batteries in the system. +// +// 16 2/01/08 11:57a Davidd +// Changes made to support SMBIOS type 17 with multiple memory arrays. +// +// 15 12/17/07 12:20p Davidd +// Added PORTABLE_BATTERY_INFO to EFI_SMBIOS_BOARD_PROTOCOL +// +// 14 11/26/07 5:53p Davidd +// Changes added to dynamically update the Processor Information Type 4. +// +// 13 11/21/07 10:38a Davidd +// Added dynamic data update support for Portable Battery Data structure +// 22. +// +// 12 9/12/07 2:26p Davidd +// Added changes to set memory type and speed to unknown for unoccupied +// memory slot. +// +// 11 6/05/07 4:18p Michaela +// Added AMI_SMBIOS_CPU_INFO_PROTOCOL for dynamic +// updating of CPU information +// +// 10 3/29/07 4:05p Davidd +// Made change to the year in the AMI banner +// +// 9 3/21/07 4:01p Michaela +// Added MemErrInfoHandle field in MEMORY_DEVICE +// structure typedef +// +// 8 12/15/06 1:15p Davidd +// Code cleanup and reformatted to coding standard. +// +// 7 3/02/06 10:35a Davidd +// Commented out fields deemed to be static. +// +// 6 7/27/05 1:25p Davidd +// Removed conditional compilation switches and added them to +// SmbiosBoardProtocol. +// +// 5 7/18/05 6:07p Davidd +// Added protocol definition for creating the dynamic data. +// +// 4 7/13/05 5:35p Davidd +// Added Processor Manufacturer and Processor Version fields. +// +// 3 7/05/05 12:17p Davidd +// Made SMBIOS variables static so that it can be shared in different +// files. +// +// 2 6/21/05 12:08p Davidd +// Corrected build error. +// +// 1 5/02/05 3:23p Davidd +// Initial Check-in. +// +// 1 4/29/05 2:12p Davidd +// Initial checkin. +// +//**********************************************************************// + +#ifndef _SMIBios_Dynamic_H +#define _SMIBios_Dynamic_H + +#include <Token.h> +#include <AmiHobs.h> +#include <Protocol/SmBus.h> + +#if SMBIOS_SUPPORT +#define EFI_SMBIOS_DYNAMIC_DATA_GUID \ + {0xe380280c, 0x4c35, 0x4aa3, { 0xb9, 0x61, 0x7a, 0xe4, 0x89, 0xa2, 0xb9, 0x26 }} + +#define EFI_SMBIOS_BOARD_PROTOCOL_GUID \ + {0x903dd14, 0x2ca0, 0x458a, 0xb5, 0xeb, 0xc, 0xc, 0xa3, 0xd, 0x78, 0x5c} + +#define EFI_MEMORY_SUBCLASS_DRIVER_GUID \ + { 0x1767CEED, 0xDB82, 0x47cd, 0xBF, 0x2B, 0x68, 0x45, 0x8A, 0x8C, 0xCF, 0xFF } + +#define EFI_MEMORY_SUBCLASS_GUID \ + {0x4E8F4EBB, 0x64B9, 0x4e05, 0x9B, 0x18, 0x4C, 0xFE, 0x49, 0x23, 0x50, 0x97} + +// {3D6CDB0A-5B1F-43a3-A43B-441267F9DAB5} +#define AMI_SMBIOS_CPU_INFO_PROTOCOL_GUID \ + {0x3d6cdb0a, 0x5b1f, 0x43a3, 0xa4, 0x3b, 0x44, 0x12, 0x67, 0xf9, 0xda, 0xb5} + +#define MAX_NUMBER_OF_MEM_MODULE A1_MEMORY_SOCKETS +#if NO_OF_PHYSICAL_MEMORY_ARRAY >= 2 + #if A2_MEMORY_SOCKETS > MAX_NUMBER_OF_MEM_MODULE + #undef MAX_NUMBER_OF_MEM_MODULE + #define MAX_NUMBER_OF_MEM_MODULE A2_MEMORY_SOCKETS + #endif +#endif +#if NO_OF_PHYSICAL_MEMORY_ARRAY >= 3 + #if A3_MEMORY_SOCKETS > MAX_NUMBER_OF_MEM_MODULE + #undef MAX_NUMBER_OF_MEM_MODULE + #define MAX_NUMBER_OF_MEM_MODULE A3_MEMORY_SOCKETS + #endif +#endif +#if NO_OF_PHYSICAL_MEMORY_ARRAY == 4 + #if A4_MEMORY_SOCKETS > MAX_NUMBER_OF_MEM_MODULE + #undef MAX_NUMBER_OF_MEM_MODULE + #define MAX_NUMBER_OF_MEM_MODULE A4_MEMORY_SOCKETS + #endif +#endif + +static CHAR16 *SmbiosBaseBoardVar = L"BASEBOARD DATA"; +static CHAR16 *SmbiosChassisVar = L"CHASSIS DATA"; +static CHAR16 *SmbiosCpuVar = L"CPU DATA"; +static CHAR16 *SmbiosSlotsVar = L"SLOTS DATA"; +static CHAR16 *SmbiosOnBoardVar = L"ONBOARD DEV DATA"; +static CHAR16 *SmbiosMemVar = L"MEMORY DATA"; +static CHAR16 *SmbiosBatteryVar = L"BATTERY DATA"; +static CHAR16 *SmbiosOnBoardExtVar = L"ONBOARD DEV EXTENDED DATA"; + +#pragma pack(1) + +//**********************************************************************// +// Base Board Structure +//**********************************************************************// +#if BASE_BOARD_INFO +typedef struct { // Type 2 + CHAR8 *BoardManufacturer; + CHAR8 *BoardName; +} BASE_BOARD_DATA; +#endif //BASE_BOARD_INFO + +//**********************************************************************// +// Chassis Structure +//**********************************************************************// +#if SYS_CHASSIS_INFO +typedef struct { // Type 3 + UINT8 Type; +} CHASSIS_DATA; +#endif //SYS_CHASSIS_INFO + +//**********************************************************************// +// CPU Structure +//**********************************************************************// + +typedef struct { // Type 4 + UINT8 Family; // 3.3.5.2 + UINT32 ProcessorID_1; // 3.3.5.3 - 1st DWORD + UINT32 ProcessorID_2; // 3.3.5.3 - 2nd DWORD + UINT8 Voltage; // 3.3.5.4 + UINT16 ExtClockFreq; // in MHz + UINT16 MaxSpeed; // in MHz + UINT16 CurrentSpeed; // in MHz + UINT8 Status; // pg 43 + UINT8 Upgrade; // 3.3.5.5 + UINT8 Manufacturer[18]; + UINT8 Version[48]; + UINT8 CoreCount; // 3.3.5.6 + UINT8 CoreEnabled; // 3.3.5.7 + UINT8 ThreadCount; // 3.3.5.8 + UINT16 Family2; // 3.3.5.2 +} CPU_DATA; + +typedef struct { // Type 7 + UINT16 CacheConfig; // pg 52 + UINT16 MaxCacheSize; // pg 52 + UINT16 InstalledSize; // pg 52 + UINT16 SupportSRAM; // 3.3.8.1 + UINT16 CurrentSRAM; // 3.3.8.1 + UINT8 CacheSpeed; // in nS + UINT8 ErrorCorrectionType; // 3.3.8.2 + UINT8 SystemCacheType; // 3.3.8.3 + UINT8 Associativity; // 3.3.8.4 +} CACHE_DATA; + +typedef struct { // One for each CPU + CPU_DATA CpuData; + CACHE_DATA L1Cache; + CACHE_DATA L2Cache; + CACHE_DATA L3Cache; +} SINGLE_CPU_DATA; + +typedef struct { // CPU data structure + UINT8 NumberCPU; + SINGLE_CPU_DATA CpuData[NO_OF_PROCESSOR_SOCKETS]; +} CPU_DYNAMIC_DATA; + +typedef CPU_DYNAMIC_DATA SMBIOS_CPU_INFO_PROTOCOL; + +//**********************************************************************// +// Slot Structure +//**********************************************************************// + +typedef struct { // Type 9 + UINT8 CurrentUsage[NUMBER_OF_SYSTEM_SLOTS]; // 3.3.10.3 + UINT8 BusNumber[NUMBER_OF_SYSTEM_SLOTS]; +} SYSTEM_SLOT_DYNAMIC_DATA; + +//**********************************************************************// +// On-Board Device Structure +//**********************************************************************// + +#if ONBOARD_DEVICE_INFO +typedef struct { // Type 10 + UINT8 OnBoardDev[NUMBER_OF_ONBOARD_DEVICES]; // 3.3.11.1 +} ONBOARD_DEV_DYNAMIC_DATA; +#endif + +//**********************************************************************// +// Memory Structure +//**********************************************************************// + +typedef struct { // Type 18 + UINT8 ErrorType; // 3.3.19.1 + UINT8 ErrorGranularity; // 3.3.19.2 + UINT8 ErrorOperation; // 3.3.19.3 + UINT32 MemArrayErrorAddress; // 32-bit physical address (8000 0000h if unknown) + UINT32 DeviceErrorAddress; // 32-bit physical address (8000 0000h if unknown) + UINT32 ErrorResolution; // in bytes +} MEM_ERROR; + +typedef struct { // Type 19 + UINT32 StartingAddress; // in KB + UINT32 EndingAddress; // in KB + UINT8 PartitionWidth; // + UINT64 ExtendedStartAddr; // in bytes + UINT64 ExtendedEndAddr; // in bytes +} MEM_ARRAY_MAP_ADDR; + +#if MEMORY_DEVICE_INFO +typedef struct { // Type 20 + UINT32 StartingAddress; // in KB + UINT32 EndingAddress; // in KB + UINT8 PartitionRowPosition; // + UINT8 InterleavePosition; // + UINT8 InterleaveDataDepth; // + UINT64 ExtendedStartAddr; // in bytes + UINT64 ExtendedEndAddr; // in bytes +} MEM_DEV_MAP_ADDR; +#endif + +typedef struct { // Type 17 + UINT16 MemErrInfoHandle; // Type 18 + UINT16 TotalWidth; // in bits (FFFFh if unknown) + UINT16 Size; // FFFFh if unknown, 7FFFh if size is >= 32GB - 1MB + UINT8 DeviceSet; // + UINT8 MemoryType; // + UINT16 Speed; // in MHz + UINT32 ExtendedSize; // in megabytes when Size field = 7FFFh, 0 otherwise + UINT16 ConfMemClkSpeed; // in MHz, 0 if unknown + UINT16 TypeDetail; // + UINT16 MinimumVoltage; // Minimum operating voltage in millivolts, 0 if unknown + UINT16 MaximumVoltage; // Maximum operating voltage in millivolts, 0 if unknown + UINT16 ConfiguredVoltage; // Configured voltage in millivolts, 0 if unknown +} MEMORY_DEVICE; + +typedef struct { + MEMORY_DEVICE Type17; // Type 17 + MEM_ERROR Type18; // Type 18 +#if MEMORY_DEVICE_INFO + MEM_DEV_MAP_ADDR Type20; // Type 20 +#endif +} MEMORY_DEVICE_GROUP; + +typedef struct { // Type 16 + UINT32 MaxCapacity; // in KB (8000 0000h if unknown) + UINT16 MemErrInfoHandle; // Type 18 + MEM_ERROR ArrayMemoryError; // Type 18 + MEM_ARRAY_MAP_ADDR MemArrayMapAddr; // Type 19 + MEMORY_DEVICE_GROUP MemoryDeviceData[MAX_NUMBER_OF_MEM_MODULE]; // Type 17 group + EFI_SMBUS_DEVICE_ADDRESS SpdSmBusAddr[MAX_NUMBER_OF_MEM_MODULE]; + UINT64 ExtMaxCapacity; // in Bytes when MaxCapacity = 8000 0000h, 0 otherwise +} PHYSICAL_MEM_ARRAY; + +typedef struct { + PHYSICAL_MEM_ARRAY PhysicalMemArray[NO_OF_PHYSICAL_MEMORY_ARRAY]; +} SYSTEM_MEM_ARRAY_DYNAMIC_DATA; + +#ifndef AMI_SMBIOS_MEMORY_INFO_HOB_GUID + #define AMI_SMBIOS_MEMORY_INFO_HOB_GUID \ + {0x7d6b8734, 0xb754, 0x443f, { 0xb5, 0x88, 0x77, 0x43, 0x84, 0x3a, 0xd3, 0xf1 }} +#endif + +typedef struct { + UINT8 Byte2; // Memory Type + UINT8 Byte5To8[9 - 5]; // Attribute, Total Width, Data Width (DDR2 & 3) + UINT8 Byte11To14[15 - 11]; // ECC Data Width, Data Width (DDR4) + UINT8 Byte64To71[72 - 64]; // Manufacturer (DDR2) + UINT8 Byte73To90[91 - 73]; // Part Number (DDR2) + UINT8 Byte95To98[99 - 95]; // Serial Number (DDR2) + UINT8 Byte117To118[119 - 117]; // Manufacturer (DDR3) + UINT8 Byte122To125[126 - 122]; // Serial Number (DDR3) + UINT8 Byte128To145[146 - 128]; // Part Number (DDR3) + UINT8 Byte320To321[322 - 320]; // Manufacturer (DDR4) + UINT8 Byte325To328[329 - 325]; // Serial Number (DDR4) + UINT8 Byte329To348[349 - 329]; // Part Number (DDR4) +} MEM_SPD_DATA; + +//**********************************************************************// +// SPD data needed from NB driver +//**********************************************************************// +//typedef struct { +// EFI_HOB_GUID_TYPE EfiHobGuidType; +// MEM_SPD_DATA SpdDataArray[NO_OF_PHYSICAL_MEMORY_ARRAY][MAX_NUMBER_OF_MEM_MODULE]; +//} AMI_SMBIOS_MEMORY_INFO_HOB; + +//**********************************************************************// +// Portable Battery Structure +//**********************************************************************// + +#if PORTABLE_BATTERY_INFO +typedef struct { // One for each Portable Battery + UINT8 DeviceName[65]; + UINT16 DesignCapacity; + UINT16 DesignVoltage; + UINT8 SbdsVersion[65]; + UINT16 SbdsSerialNumber; + UINT16 SbdsManufacturedDate; + UINT8 DesignCapacityMult; + BOOLEAN Valid; +} SMBIOS_PORTABLE_BATTERY_DYNAMIC_INFO; + +typedef struct { // Type 22 + SMBIOS_PORTABLE_BATTERY_DYNAMIC_INFO BatteryDynamicData[NO_OF_PORTABLE_BATTERY]; +} BATTERY_DYNAMIC_DATA; +#endif + +//**********************************************************************// +// On-Board Device Extended Information Structure +//**********************************************************************// + +#if ONBOARD_DEVICE_EXTENDED_INFO +typedef struct { // Type 41 + UINT8 OnBoardDev[ONBOARD_DEVICE_EXT_COUNT]; // 3.3.42 + UINT8 BusNumber[ONBOARD_DEVICE_EXT_COUNT]; +} ONBOARD_DEV_EXT_DYNAMIC_DATA; +#endif + +#pragma pack() + +typedef struct _EFI_SMBIOS_BOARD_PROTOCOL EFI_SMBIOS_BOARD_PROTOCOL; + +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_CREATE_BASE_BOARD_DATA_STRUCTURE) ( +); + +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_CREATE_CHASSIS_DATA_STRUCTURE) ( +); + +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_CREATE_CPU_DATA_STRUCTURE) ( +); + +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_CREATE_SYSTEM_SLOT_DATA_STRUCTURE) ( +); + +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_CREATE_ONBOARD_DEV_DATA_STRUCTURE) ( +); + +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_CREATE_BATTERY_DEV_DATA_STRUCTURE) ( +); + +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_CREATE_ONBOARD_DEV_EXT_STRUCTURE) ( +); +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_ENABLE_SMBUS_CONTROLLER) ( +); +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_RESTORE_SMBUS_CONTROLLER) ( +); +typedef EFI_STATUS (EFIAPI *EFI_SMBIOS_READ_SPD) ( +); +typedef VOID (EFIAPI *EFI_SMBIOS_OEM_UPDATE) ( +); + +typedef struct _EFI_SMBIOS_BOARD_PROTOCOL { + UINT8 BaseBoardInfoSupport; + UINT8 SysChassisInfoSupport; + UINT8 ProcessorDmiEditSupport; + UINT8 OemStringInfoSupport; + UINT8 SystemConfigOptionInfoSupport; + UINT8 MemoryErrorInfoSupport; + UINT8 OnboardDeviceInfoSupport; + UINT8 PortableBatteryInfoSupport; + UINT8 AdditionalInfoSupport; + UINT8 OnboardDeviceExtInfoSupport; + UINT8 SystemPowerSupplyInfoSupport; + UINT8 NumberOfCPU; + UINT8 NumberOfSystemSlots; + UINT8 NumberOfOnBoardDevices; + UINT8 NumberOfPhysicalMemoryArray; + UINT8 NumberOfBatteries; + UINT8 NumberOfOnboardDevExt; + EFI_SMBIOS_CREATE_BASE_BOARD_DATA_STRUCTURE SmbiosCreateBaseBoardData; // Create Base Board dynamic data + EFI_SMBIOS_CREATE_CHASSIS_DATA_STRUCTURE SmbiosCreateChassisData; // Create Chassis dynamic data + EFI_SMBIOS_CREATE_CPU_DATA_STRUCTURE SmbiosCreateCPUData; // Create CPU dynamic data + EFI_SMBIOS_CREATE_SYSTEM_SLOT_DATA_STRUCTURE SmbiosCreateSystemSlotData; // Create system slot dynamic data + EFI_SMBIOS_CREATE_ONBOARD_DEV_DATA_STRUCTURE SmbiosCreateOnBoardDevData; // Create on-board device dynamic data + EFI_SMBIOS_CREATE_BATTERY_DEV_DATA_STRUCTURE SmbiosCreateBatteryDevData; // Create Portable Battery device dynamic data + EFI_SMBIOS_CREATE_ONBOARD_DEV_EXT_STRUCTURE SmbiosCreateOnBoardDevExtInfo; + EFI_SMBIOS_ENABLE_SMBUS_CONTROLLER EnableSmbusController; + EFI_SMBIOS_RESTORE_SMBUS_CONTROLLER RestoreSmbusController; + EFI_SMBIOS_READ_SPD GetSpdByte; + EFI_SMBIOS_OEM_UPDATE OemUpdate; + UINT8 NumberOfMemorySlots[NO_OF_PHYSICAL_MEMORY_ARRAY]; +}; + +EFI_STATUS CreateBaseBoardDataForSMBios(); +EFI_STATUS CreateChassisDataForSMBios(); +EFI_STATUS CreateCPUDataForSMBios(); +EFI_STATUS CreateSlotDataForSMBios(); +EFI_STATUS CreateOnBoardDevDataForSMBios(); +EFI_STATUS CreateBatteryDataForSMBios(); +EFI_STATUS CreateOnBoardDevExtInfoForSMBios(); +EFI_STATUS EnableSmbusController(); +EFI_STATUS RestoreSmbusController(); +EFI_STATUS GetSpdByte(); +VOID OemUpdate(); + +#endif // if SMBIOS_SUPPORT + +#endif + +//**********************************************************************// +//**********************************************************************// +//** **// +//** (C)Copyright 1985-2016, American Megatrends, Inc. **// +//** **// +//** All Rights Reserved. **// +//** **// +//** 5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093 **// +//** **// +//** Phone: (770)-246-8600 **// +//** **// +//**********************************************************************// +//**********************************************************************// |