summaryrefslogtreecommitdiff
path: root/Board/EM/SMBIOS/SMBiosStaticData/Smbdesc.def
diff options
context:
space:
mode:
Diffstat (limited to 'Board/EM/SMBIOS/SMBiosStaticData/Smbdesc.def')
-rw-r--r--Board/EM/SMBIOS/SMBiosStaticData/Smbdesc.def2021
1 files changed, 2021 insertions, 0 deletions
diff --git a/Board/EM/SMBIOS/SMBiosStaticData/Smbdesc.def b/Board/EM/SMBIOS/SMBiosStaticData/Smbdesc.def
new file mode 100644
index 0000000..c82ffec
--- /dev/null
+++ b/Board/EM/SMBIOS/SMBiosStaticData/Smbdesc.def
@@ -0,0 +1,2021 @@
+ ECHO --Including: SMBDESC.DEF
+
+;****************************************************************************
+;****************************************************************************
+;** **
+;** (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/SmbiosStaticData/Smbdesc.def 24 4/07/16 5:55p Davidd $
+;
+; $Revision: 24 $
+;
+; $Date: 4/07/16 5:55p $
+;****************************************************************************
+; Revision History
+; ----------------
+; $Log: /Alaska/BIN/Modules/SMBIOS/SmbiosStaticData/Smbdesc.def $
+;
+; 24 4/07/16 5:55p 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
+;
+; 23 2/17/15 1:09p Davidd
+; [TAG] EIP205509
+; [Category] Improvement
+; [Description] Merge Aptio V Smbios EIP193807, 193858, 196901 changes
+; into Aptio 4 Smbios
+; [Files] SmbiosStaticData.asm
+; Smbdata.mac
+; Smbdesc.def
+;
+; 22 11/13/13 3:40p Davidd
+; [TAG] EIP143030
+; [Category] Improvement
+; [Description] Synchronize Aptio 4 Smbios with recent changes on Aptio
+; V Smbios for '4.6.5.1_SMBIOS_36' release
+; [Files] SmbiosStaticData.sdl
+; Smbdesc.def
+; SMBDATA.MAC
+;
+; 21 5/29/13 12:49p 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
+;
+; 20 11/12/12 10:22a Davidd
+;
+; 19 9/13/12 12:12p Davidd
+; [TAG] EIP99388
+; [Category] Improvement
+; [Description] can not modified SMBIOS type 38 by
+; smbiosstaticdata.sdl
+; [Files] Smbdata.mac
+; Smbdesc.def
+;
+; 18 3/12/12 3:06p Davidd
+; [TAG] EIP82983
+; [Category] Improvement
+; [Description] Need Creating Tokens for Type1:UUID/Type11/Typ12/Type22
+; [Files] SmbiosStaticData.sdl
+; Smbdata.mac
+; Smbdesc.def
+;
+; 17 1/17/12 4:51p Davidd
+; [TAG] EIP78264
+; [Category] Improvement
+; [Description] SMBOS Type 2 (Spec 2.7.1) - No multiple type 2 support
+; [Files] Smbios.c
+; Smbios.h
+; Smbdata.mac
+; Smbdesc.def
+; SmbiosStaticData.sdl
+;
+; 16 2/09/11 10:35a Davidd
+; [TAG] EIP53081
+; [Category] Bug Fix
+; [Severity] Minor
+; [Symptom] Smbios Management Device (type 34) must be enabled in
+; order to
+; see System Power Supply (type 39)
+; [RootCause] Macro to create System Power Supply structure (type 39)
+; was grouped inside macro to create Smbios Management
+; Device
+; (type 34)
+; [Solution] Seperated Type 39 macro from 34.
+; [Files] SmbiosStaticData.asm
+; Smbdata.mac
+; Smbmacro.aid
+; Smbdesc.def
+;
+; 15 10/08/10 8:16p 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
+;
+; 14 4/06/10 11:02a Davidd
+; Removed type 13 porting. Type 13 structure now is dynamically created
+; if enabled.
+;
+; 13 6/02/09 4:46p Davidd
+; Updated AMI headers (EIP 22180)
+;
+; 12 2/06/09 5:14p Davidd
+; Added some additional language entries for BIOS Language Information
+; structure type 13
+;
+; 11 2/03/09 2:52p Davidd
+; Moved Bios Language Information structure 13 porting info from
+; SmbiosStaticData.sdl to here.
+;
+; 10 10/27/08 2:48p Davidd
+; More changes for new type 40 and 41 support.
+;
+; 9 10/13/08 12:00p Davidd
+; Changes made to support SMBIOS specification v2.5 and v2.6
+;
+; 8 4/04/08 5:17p Davidd
+; Cleaned up and removed NUMBER_OF_MEM_MODULE_x definitions. Number of
+; memory sockets for each memory array are now defined in
+; Ax_MEMORY_SOCKETS SDL token.
+;
+; 7 2/22/08 10:30a Davidd
+; Simplified the way the number of memory slots for each physical memory
+; array are defined.
+;
+; 6 2/01/08 5:25p Davidd
+;
+; 6 2/01/08 12:06p Davidd
+; Added porting info for SMBIOS type 17 to support multi memory arrays.
+;
+; 5 12/19/07 12:09p Davidd
+;
+; 4 11/21/07 11:22a Davidd
+;
+; 4 11/21/07 11:18a Davidd
+; Static data porting for Memory Type 16, Pointing Device Type 21,
+; Portable Battery Type 22 have been moved from SmbiosStaticData.sdl to
+; here per customer request.
+;
+; 3 12/15/06 5:33p Davidd
+; Code cleanup and reformatted to coding standard.
+;
+; 1 5/24/06 11:59a Fasihm
+; Initial check-in for the Santa Rosa Project. (Matanzas CRB) with
+; Crestline + ICH8M + Merom Processor.
+;
+; 2 9/15/05 3:31p Mirk
+;
+; 1 8/16/05 11:21a Mirk
+;
+; 2 5/31/05 12:05p Davidd
+; Made changes for NAPA platform.
+;
+; 1 4/29/05 2:15p Davidd
+; Initial checkin.
+;
+;****************************************************************************
+
+;----------------------------------------------------------------------------
+; INCLUDE equates.equ
+;----------------------------------------------------------------------------
+
+;!!NOTE!!
+; This file is used to port the static information required in the SMBIOS
+; Structures.
+;
+; While porting this file, please refer SMB.EQU for Enumerated Values.
+;
+; To dynamically update any structure you can add link to 'SMBIOSPostInitTable'
+; Refer to any of the current links for implementation detail.
+
+;----------------------------------------------------------------------------
+; Structure Type 0 : BIOS INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 1 : SYSTEM INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 2 : BASEBOARD INFORMATION
+;----------------------------------------------------------------------------
+; NOTE: For single board system (NUMBER_OF_BASEBOARDS = 1), for backward
+; compatibility, porting is done with SDL tokens in SmbiosStaticData.sdl.
+;
+; For multiple boards system (NUMBER_OF_BASEBOARDS > 1), porting is done
+; here instead.
+;
+; Syntax:
+; BASEBOARD_MANUFACTURER_1 DEFINE <To be filled by O.E.M.>
+; BASEBOARD_PRODUCT_1 DEFINE <To be filled by O.E.M.>
+; BASEBOARD_VERSION_1 DEFINE <To be filled by O.E.M.>
+; BASEBOARD_SERIAL_NUMBER_1 DEFINE <To be filled by O.E.M.>
+; BASEBOARD_ASSET_TAG_1 DEFINE <To be filled by O.E.M.>
+; BASEBOARD_FEATURE_FLAG_1 DEFINE <01h>
+; * Baseboard Feature Flags -> Bit 0 = Hosting board (ex. motherboard)
+; Bit 1 = Board requires at least one daughter board
+; or auxiliary card to function properly
+; Bit 2 = Board is removable
+; Bit 3 = Board is replaceable
+; Bit 4 = Board is hot swappable
+; Bit 7-5 = Reserved
+; BASEBOARD_LOCATION_1 DEFINE <To be filled by O.E.M.>
+; BASEBOARD_TYPE_1 DEFINE <0Ah>
+; * Baseboard Board Type -> 01h = Unknown
+; 02h = Other
+; 03h = Server Blade
+; 04h = Connectivity Switch
+; 05h = System Management Module
+; 06h = Processor Module
+; 07h = I/O Module
+; 08h = Memory Module
+; 09h = Daughter Board
+; 0Ah = Motherboard (includes processor, memory, and I/O)
+; 0Bh = Processor/Memory Module
+; 0Ch = Processor/IO Module
+; 0Dh = Interconnect Board
+;----------------------------------------------------------------------------
+ BASEBOARD_MANUFACTURER_1 DEFINE <To be filled by O.E.M. 1>
+ BASEBOARD_MANUFACTURER_2 DEFINE <To be filled by O.E.M. 2>
+ BASEBOARD_MANUFACTURER_3 DEFINE <To be filled by O.E.M. 3>
+ BASEBOARD_MANUFACTURER_4 DEFINE <To be filled by O.E.M. 4>
+ BASEBOARD_MANUFACTURER_5 DEFINE <To be filled by O.E.M. 5>
+
+ BASEBOARD_PRODUCT_1 DEFINE <To be filled by O.E.M. 1>
+ BASEBOARD_PRODUCT_2 DEFINE <To be filled by O.E.M. 2>
+ BASEBOARD_PRODUCT_3 DEFINE <To be filled by O.E.M. 3>
+ BASEBOARD_PRODUCT_4 DEFINE <To be filled by O.E.M. 4>
+ BASEBOARD_PRODUCT_5 DEFINE <To be filled by O.E.M. 5>
+
+ BASEBOARD_VERSION_1 DEFINE <To be filled by O.E.M. 1>
+ BASEBOARD_VERSION_2 DEFINE <To be filled by O.E.M. 2>
+ BASEBOARD_VERSION_3 DEFINE <To be filled by O.E.M. 3>
+ BASEBOARD_VERSION_4 DEFINE <To be filled by O.E.M. 4>
+ BASEBOARD_VERSION_5 DEFINE <To be filled by O.E.M. 5>
+
+ BASEBOARD_SERIAL_NUMBER_1 DEFINE <To be filled by O.E.M. 1>
+ BASEBOARD_SERIAL_NUMBER_2 DEFINE <To be filled by O.E.M. 2>
+ BASEBOARD_SERIAL_NUMBER_3 DEFINE <To be filled by O.E.M. 3>
+ BASEBOARD_SERIAL_NUMBER_4 DEFINE <To be filled by O.E.M. 4>
+ BASEBOARD_SERIAL_NUMBER_5 DEFINE <To be filled by O.E.M. 5>
+
+ BASEBOARD_ASSET_TAG_1 DEFINE <To be filled by O.E.M. 1>
+ BASEBOARD_ASSET_TAG_2 DEFINE <To be filled by O.E.M. 2>
+ BASEBOARD_ASSET_TAG_3 DEFINE <To be filled by O.E.M. 3>
+ BASEBOARD_ASSET_TAG_4 DEFINE <To be filled by O.E.M. 4>
+ BASEBOARD_ASSET_TAG_5 DEFINE <To be filled by O.E.M. 5>
+
+ BASEBOARD_FEATURE_FLAG_1 DEFINE <01h>
+ BASEBOARD_FEATURE_FLAG_2 DEFINE <01h>
+ BASEBOARD_FEATURE_FLAG_3 DEFINE <01h>
+ BASEBOARD_FEATURE_FLAG_4 DEFINE <01h>
+ BASEBOARD_FEATURE_FLAG_5 DEFINE <01h>
+
+ BASEBOARD_LOCATION_1 DEFINE <To be filled by O.E.M. 1>
+ BASEBOARD_LOCATION_2 DEFINE <To be filled by O.E.M. 2>
+ BASEBOARD_LOCATION_3 DEFINE <To be filled by O.E.M. 3>
+ BASEBOARD_LOCATION_4 DEFINE <To be filled by O.E.M. 4>
+ BASEBOARD_LOCATION_5 DEFINE <To be filled by O.E.M. 5>
+
+ BASEBOARD_TYPE_1 DEFINE <0Ah>
+ BASEBOARD_TYPE_2 DEFINE <0Ah>
+ BASEBOARD_TYPE_3 DEFINE <0Ah>
+ BASEBOARD_TYPE_4 DEFINE <0Ah>
+ BASEBOARD_TYPE_5 DEFINE <0Ah>
+
+;----------------------------------------------------------------------------
+; Structure Type 3 : SYSTEM ENCLOSURE OR CHASSIS
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 4 : PROCESSOR INFORMATION
+;----------------------------------------------------------------------------
+;
+; The processor information is defined in the following two macros
+; 1. PROCESSOR_INFO_n
+; 2. PROCESSOR_VOLTAGE_n
+; where n is the processor number
+; (n = 1,2,3,4... for system having support for 1,2,3,4... processors)
+;
+; Syntax of PROCESSOR_INFO_n macro
+; PROCESSOR_INFO_n DEFINE <String defining Slot, Maxm speed, Upgrade information>
+; where String defining Slot is a string
+; Maxm Speed is a number specifying speed in MHz
+;
+; PROCESSOR UPGRADE INFORMATION
+; Refer SMB.EQU file for Processor Upgrade information
+;
+; Syntax of PROCESSOR_VOLTAGE_n macro
+; PROCESSOR_VOLTAGE_n DEFINE <Format, List of Voltage capabilities>
+; Format can be either STANDARD or USER_DEFINED
+; If it is STANDARD, then the List of Voltage capabilities can have
+; more than one values e.g. VOLT_29 (2.9V), VOLT_33 (3.3V), etc.
+; If it is USER_DEFINED, then the List of Voltage capabilities can have
+; only one value and the value needs to be calculated according to the
+; following formula: Processor voltage * 10 i.e. if the processor
+; voltage is 2.9V, then this value should be 29 decimal or 13h
+; Select the number of processors supported in the motherboard.
+; note that the PROCESSOR_INFO_n and PROCESSOR_VOLTAGE_n macros are defined
+; for upto 4 processor. If the number of processors exceeds 4, then the
+; corresponding PROCESSOR_INFO_n and PROCESSOR_VOLTAGE_n macros need to
+; be defined accordingly
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ PROC_SOC_DESIG_1 DEFINE <CPU 1>
+ PROC_TYPE_1 DEFINE <CPU_CENTRAL_PROCESSOR>
+ PROC_FAMILY_1 DEFINE <FA_OTHER>
+ PROC_VOLTAGE_1 DEFINE <STANDARD, VOLT_33>
+ PROC_MAX_SPEED_1 DEFINE <0>
+ PROC_UPGRADE_1 DEFINE <UPG_OTHER>
+ PROC_SERIAL_NO_1 DEFINE <To Be Filled By O.E.M.>
+ PROC_ASSET_TAG_1 DEFINE <To Be Filled By O.E.M.>
+ PROC_PART_NO_1 DEFINE <To Be Filled By O.E.M.>
+ PROC_FAMILY_2_1 DEFINE <FA_OTHER>
+
+ PROC_SOC_DESIG_2 DEFINE <CPU 2>
+ PROC_TYPE_2 DEFINE <CPU_CENTRAL_PROCESSOR>
+ PROC_FAMILY_2 DEFINE <FA_OTHER>
+ PROC_VOLTAGE_2 DEFINE <STANDARD, VOLT_33>
+ PROC_MAX_SPEED_2 DEFINE <0>
+ PROC_UPGRADE_2 DEFINE <UPG_OTHER>
+ PROC_SERIAL_NO_2 DEFINE <To Be Filled By O.E.M.>
+ PROC_ASSET_TAG_2 DEFINE <To Be Filled By O.E.M.>
+ PROC_PART_NO_2 DEFINE <To Be Filled By O.E.M.>
+ PROC_FAMILY_2_2 DEFINE <FA_OTHER>
+
+ PROC_SOC_DESIG_3 DEFINE <CPU 3>
+ PROC_TYPE_3 DEFINE <CPU_CENTRAL_PROCESSOR>
+ PROC_FAMILY_3 DEFINE <FA_OTHER>
+ PROC_VOLTAGE_3 DEFINE <STANDARD, VOLT_33>
+ PROC_MAX_SPEED_3 DEFINE <0>
+ PROC_UPGRADE_3 DEFINE <UPG_OTHER>
+ PROC_SERIAL_NO_3 DEFINE <To Be Filled By O.E.M.>
+ PROC_ASSET_TAG_3 DEFINE <To Be Filled By O.E.M.>
+ PROC_PART_NO_3 DEFINE <To Be Filled By O.E.M.>
+ PROC_FAMILY_2_3 DEFINE <FA_OTHER>
+
+ PROC_SOC_DESIG_4 DEFINE <CPU 4>
+ PROC_TYPE_4 DEFINE <CPU_CENTRAL_PROCESSOR>
+ PROC_FAMILY_4 DEFINE <FA_OTHER>
+ PROC_VOLTAGE_4 DEFINE <STANDARD, VOLT_33>
+ PROC_MAX_SPEED_4 DEFINE <0>
+ PROC_UPGRADE_4 DEFINE <UPG_OTHER>
+ PROC_SERIAL_NO_4 DEFINE <To Be Filled By O.E.M.>
+ PROC_ASSET_TAG_4 DEFINE <To Be Filled By O.E.M.>
+ PROC_PART_NO_4 DEFINE <To Be Filled By O.E.M.>
+ PROC_FAMILY_2_4 DEFINE <FA_OTHER>
+
+;----------------------------------------------------------------------------
+; Structure Type 7: CACHE INFORMATION
+;----------------------------------------------------------------------------
+; Select the number of Caches present in the System. A value of 1 indicates
+; only L1 cache is present, a value of 2 indicates both L1 and L2 caches
+; are present, Note that these caches are internal or external to the processor.
+; The external cache (if present) is defined by EXTERNAL_CACHE_INFORMATION.
+;
+; Syntax:
+; PROCESSOR_CACHE_INFO_L1 <Maximum Cache Size, Installed Cache Size, Supported SRAM Type, Current SRAM Type>
+;
+; EXTERNAL_CACHE_INFO <Maximum Cache Size, Installed Cache Size, Supported SRAM Type, Current SRAM Type>
+;
+; * Maximum cache size and Installed cache size are WORD values.
+; Bit-15 = Granularity
+; 0/1 = granularity ios 1K/64K
+; Bit14-0 = Size
+; For example, 256k cahe can be represented as 256*1024 with granularity of 1K
+; OR as 8004h with granularity of 64k
+; * For Supported/Current SRAM Type refer to SMB.EQU File. It is described
+; in cache type equates
+;
+; Syntax:
+; PROCESSOR_CACHE_CONFIG_L1 <String, Operational Mode, Enable or Disabled at BOOT time,
+; Location relative to CPU, Socketed or Not Socketed, Cache Level Inoformation>
+;
+; EXTERNAL_CACHE_CFG <String, Operational Mode, Enable or Disabled at BOOT time, Location relative to CPU,
+; Socketed or Not Socketed, Cache Level Inoformation>
+;
+; * String -> This is a string describing the cache.
+; e.g. "L-1 Cache"
+; * Operational Mode -> Cache is Write back or write thru, etc...
+; For more detail search for cache operational mode
+; in Structure Type 7 details in SMB.EQU
+; * Cache Enbled/Disable -> (at Boot time)
+; For more detail search for Cache Enable or disable
+; in structure Type 7 details in SMB.EQU
+; * Location Relative to CPU -> Cache location is internal or external relative to CPU
+; For more detail search for Cache Location in
+; structure Type 7 details in SMB.EQU
+; * Cache Socketed/Not Socketed -> Cache is socketed or Not socketed
+; For more detail search for Cache socketed in structure
+; Type 7 details in SMB.EQU
+; * Cache Level Information -> L1, L2 etc...
+; For more detail search for level inofrmation in structure
+; Type 7 details in SMB.EQU
+; Syntax:
+; PROCESSOR_CACHE_CHAR_L1 <Cache speed, Error Correction Type, System Cache Type, Cache Associativity>
+;
+; EXTERNAL_CACHE_CHAR <Cache speed, Error Correction Type, System Cache Type, Cache Associativity>
+;
+; * Cache Speed -> Cache Module speed in ns(nano second)
+; the value is 0 if it is unknown
+; * Error Correction Type -> Single-bit, Multi-bit, etc...
+; For more detail search for Cache Error Correction in
+; structure Type-7 details in SMB.EQU
+; * System Cache Type -> Unified and etc...
+; For more detail search for System Cache Type in structure
+; Type-7 details in SMB.EQU
+; * Cache Associativity -> One-way, Two-way Associativity and etc..
+; For more detail search for Cache Associativity in structure
+; Type-7 details in SMB.EQU
+;----------------------------------------------------------------------------
+; Use MKF_NUMBER_OF_PROC_CACHE to get the No. of Processor Cache in the system.
+
+;!!PORT!!
+
+ PROC_CACHE_INFO_L1 DEFINE <0, 0, CH_UNKNOWN, CH_UNKNOWN>
+ PROC_CACHE_CFG_L1 DEFINE <L1-Cache, CACHE_DISABLED, COM_UNKNOWN, CCL_INTERNAL, CS_NOT_SOCKETED, CL_L1>
+ PROC_CACHE_CHAR_L1 DEFINE <0, SR_UNKNOWN, SCT_UNKNOWN, CA_UNKNOWN>
+
+ PROC_CACHE_INFO_L2 DEFINE <0, 0, CH_UNKNOWN, CH_UNKNOWN>
+ PROC_CACHE_CFG_L2 DEFINE <L2-Cache, CACHE_DISABLED, COM_UNKNOWN, CCL_INTERNAL, CS_NOT_SOCKETED, CL_L2>
+ PROC_CACHE_CHAR_L2 DEFINE <0, SR_UNKNOWN, SCT_UNKNOWN, CA_UNKNOWN>
+
+ PROC_CACHE_INFO_L3 DEFINE <0, 0, CH_UNKNOWN, CH_UNKNOWN>
+ PROC_CACHE_CFG_L3 DEFINE <L3-Cache, CACHE_DISABLED, COM_UNKNOWN, CCL_INTERNAL, CS_NOT_SOCKETED, CL_L3>
+ PROC_CACHE_CHAR_L3 DEFINE <0, SR_UNKNOWN, SCT_UNKNOWN, CA_UNKNOWN>
+
+ EXTERNAL_CACHE_INFO DEFINE <32*1024, 32*1024, 00, 00>
+ EXTERNAL_CACHE_CFG DEFINE <L2-Cache, 00, 00, 00, 00, CL_L2>
+ EXTERNAL_CACHE_CHAR DEFINE <40, 00, 00, 00>
+
+
+;----------------------------------------------------------------------------
+; Structure Type 8 : PORT CONNECTOR INFORMATION
+;----------------------------------------------------------------------------
+
+;<Internal_ref_designator, Internal_connector_type, External_ref_designator,
+; External_connector_type, Port_type>
+
+;!!PORT!!
+ EXT_CONNECTOR_1 DEFINE <J1A1,00H,PS2Mouse,0FH,0EH>
+ EXT_CONNECTOR_2 DEFINE <J1A1,00H,Keyboard,0FH,0DH>
+ EXT_CONNECTOR_3 DEFINE <J2A1,00H,TV Out,1DH,0FFH>
+ EXT_CONNECTOR_4 DEFINE <J2A2A,00H,COM A,08H,09H>
+ EXT_CONNECTOR_5 DEFINE <J2A2B,00H,Video,07H,1CH>
+ EXT_CONNECTOR_6 DEFINE <J3A1,00H,USB1,12H,10H>
+ EXT_CONNECTOR_7 DEFINE <J3A1,00H,USB2,12H,10H>
+ EXT_CONNECTOR_8 DEFINE <J3A1,00H,USB3,12H,10H>
+ EXT_CONNECTOR_9 DEFINE <J5A1,00H,LAN,0BH,1FH>
+ EXT_CONNECTOR_10 DEFINE <J5A1,00H,USB4,12H,10H>
+ EXT_CONNECTOR_11 DEFINE <J5A1,00H,USB5,12H,10H>
+
+;<Internal_ref_designator, Internal_connector_type, Internal_port_type>
+
+;!!PORT!!
+ INT_CONNECTOR_1 DEFINE <J9A1 - TPM HDR,0FFH,0FFH>
+ INT_CONNECTOR_2 DEFINE <J9C1 - PCIE DOCKING CONN,0FFH,0FFH>
+ INT_CONNECTOR_3 DEFINE <J2B3 - CPU FAN,0FFH,0FFH>
+ INT_CONNECTOR_4 DEFINE <J6C2 - EXT HDMI,0FFH,0FFH>
+ INT_CONNECTOR_5 DEFINE <J3C1 - GMCH FAN,0FFH,0FFH>
+ INT_CONNECTOR_6 DEFINE <J1D1 - ITP,0FFH,0FFH>
+ INT_CONNECTOR_7 DEFINE <J9E2 - MDC INTPSR,0FFH,0FFH>
+ INT_CONNECTOR_8 DEFINE <J9E4 - MDC INTPSR,0FFH,0FFH>
+ INT_CONNECTOR_9 DEFINE <J9E3 - LPC HOT DOCKING,0FFH,0FFH>
+ INT_CONNECTOR_10 DEFINE <J9E1 - SCAN MATRIX,0FFH,0FFH>
+ INT_CONNECTOR_11 DEFINE <J9G1 - LPC SIDE BAND,0FFH,0FFH>
+ INT_CONNECTOR_12 DEFINE <J8F1 - UNIFIED,0FFH,0FFH>
+ INT_CONNECTOR_13 DEFINE <J6F1 - LVDS,0FFH,0FFH>
+ INT_CONNECTOR_14 DEFINE <J2F1 - LAI FAN,0FFH,0FFH>
+ INT_CONNECTOR_15 DEFINE <J2G1 - GFX VID,0FFH,0FFH>
+ INT_CONNECTOR_16 DEFINE <J1G6 - AC JACK,0FFH,0FFH>
+ INT_CONNECTOR_17 DEFINE <J1G7 - BATT B,0FFH,0FFH>
+ INT_CONNECTOR_18 DEFINE <J1H1 - BATT A,0FFH,0FFH>
+ INT_CONNECTOR_19 DEFINE <J7H2 - SATA PWR,0FFH,0FFH>
+ INT_CONNECTOR_20 DEFINE <J7H1 - SATA PORT2,0FFH,0FFH>
+ INT_CONNECTOR_21 DEFINE <J7J3 - SATA PORT1,0FFH,0FFH>
+ INT_CONNECTOR_22 DEFINE <J8J1 - SATA PORT0,0FFH,0FFH>
+ INT_CONNECTOR_23 DEFINE <J7J4 - PATA,016H,0FFH>
+ INT_CONNECTOR_24 DEFINE <J7J5 - EMA,0FFH,0FFH>
+ INT_CONNECTOR_25 DEFINE <J4J1 - ATX PWR,0FFH,0FFH>
+ INT_CONNECTOR_26 DEFINE <J4J2 - PATA PWR,0FFH,0FFH>
+
+;----------------------------------------------------------------------------
+; Structure Type 9 : SYSTEM SLOT INFORMATION
+;----------------------------------------------------------------------------
+; The following information is needed only if SYS_SLOT_INFO = Present
+; Syntax:
+; SYSTEM_SLOT_INFO_1 DEFINE <String, Slot Type, Slot Data bus Width,
+; Slot usage, Slot length, Slot ID>
+; * String -> System Slot designator string.
+; e.g. "PCI1", "ISA1" etc..
+; * System Slot Type -> PCI, ISA, VESA, AGP, etc...
+; For more detail search for System Slot
+; Type equates in structure Type 9, refer SMB.EQU
+; * Slot Data Bus Width -> 8bit, 16bit etc..
+; For more detail search for System Slot Data Bus width
+; equates in structure Type 9, refer SMB.EQU
+; * Slot Usage -> Available, in use etc..
+; For more detail search for System Slot Usage
+; equates in structure TYPE 9 , refer SMB.EQU
+; This is a Bit-field value.
+; * Slot Length -> Half length, full length etc...
+; For more detail search for System Slot Length
+; equates in structure Type 9, refer SMB.EQU
+; * Slot ID -> The slot ID field provides a mechanism to
+; Correlate the physical attributes of the slot to
+; its logical access method
+;
+; * SYSTEM_SLOT_CHAR_1 DEFINE <Slot Characteristic 1, SlotCharacteristic 2>
+; Slot Characteristc 1 -> For more detail search for system slot
+; characteristic-1 in structure type 9, SMB.EQU
+; Slot Characteristc 2 -> For more detail search for system slot
+; characteristic-2 in structure type 9, SMB.EQU
+; * SEGGRP_BUS_DEV_FUNC_1 DEFINE <Segment Group Number, Bus Number, Device Function Number>
+; Segment Group Number -> Segment Group Number defined in the PCI Firmware Spec.
+; Bus Number -> Bus Number
+; Device Function Number -> Device / Function Number
+;----------------------------------------------------------------------------
+
+;!!NOTE!!
+; If AGP slot exists in the system then enter the AGP_BRIDGE_BUS_DEV_FUNC_NO in SMBIOS.SDL
+
+;!!PORT!!
+ SYSTEM_SLOT_INFO_1 DEFINE <J6B2, SYS_SLOT_PCIE, DBW_16X, SCU_IN_USE, SL_LONG_LENGTH, 0>
+ SYSTEM_SLOT_CHAR_1 DEFINE <SCH_33V, SCH_SHARED, SCH_PME>
+ SEGGRP_BUS_DEV_FUNC_1 DEFINE <0, 0, 8>
+
+ SYSTEM_SLOT_INFO_2 DEFINE <J6B1, SYS_SLOT_PCIE, DBW_1X, SCU_IN_USE, SL_SHORT_LENGTH, 1>
+ SYSTEM_SLOT_CHAR_2 DEFINE <SCH_33V, SCH_PME, SCH_SHARED>
+ SEGGRP_BUS_DEV_FUNC_2 DEFINE <0, 0, 0E3h>
+
+ SYSTEM_SLOT_INFO_3 DEFINE <J6D1, SYS_SLOT_PCIE, DBW_1X, SCU_IN_USE, SL_SHORT_LENGTH, 2>
+ SYSTEM_SLOT_CHAR_3 DEFINE <SCH_33V, SCH_PME, SCH_SHARED>
+ SEGGRP_BUS_DEV_FUNC_3 DEFINE <0, 0, 0E4h>
+
+ SYSTEM_SLOT_INFO_4 DEFINE <J7B1, SYS_SLOT_PCIE, DBW_1X, SCU_IN_USE, SL_SHORT_LENGTH, 3>
+ SYSTEM_SLOT_CHAR_4 DEFINE <SCH_33V, SCH_PME, SCH_SHARED>
+ SEGGRP_BUS_DEV_FUNC_4 DEFINE <0, 0, 0E5h>
+
+ SYSTEM_SLOT_INFO_5 DEFINE <J8B4, SYS_SLOT_PCIE, DBW_1X, SCU_IN_USE, SL_SHORT_LENGTH, 4>
+ SYSTEM_SLOT_CHAR_5 DEFINE <SCH_33V, SCH_PME, SCH_SHARED>
+ SEGGRP_BUS_DEV_FUNC_5 DEFINE <0, 0, 0E6h>
+
+ SYSTEM_SLOT_INFO_6 DEFINE <J8D1, SYS_SLOT_PCIE, DBW_1X, SCU_IN_USE, SL_SHORT_LENGTH, 5>
+ SYSTEM_SLOT_CHAR_6 DEFINE <SCH_33V, SCH_PME, SCH_SHARED>
+ SEGGRP_BUS_DEV_FUNC_6 DEFINE <0, 0, 0E7h>
+
+ SYSTEM_SLOT_INFO_7 DEFINE <J8B3, SYS_SLOT_PCI, DBW_32BIT, SCU_IN_USE, SL_SHORT_LENGTH, 6>
+ SYSTEM_SLOT_CHAR_7 DEFINE <SCH_33V, SCH_PME, SCH_SHARED>
+ SEGGRP_BUS_DEV_FUNC_7 DEFINE <0, 0, 0F0h>
+
+;----------------------------------------------------------------------------
+; Structure Type 10 : ON BOARD DEVICES INFORMATION
+;----------------------------------------------------------------------------
+; The following information is needed only if ONBOARD_DEVICE_INFO = Present
+; Syntax:
+; ONBOARD_DEVICE_1 DEFINE <Enabled or Disabled, Onboard Device Type, Descrition String>
+; * Onboard device status -> Describes the status(enabled/disabled) of on board device
+; * On board device Type -> Video, Audio, SCSI etc...
+; For more detail search for On-board device
+; Type equates in structure Type 10, refer SMB.EQU
+; * Description String -> Describes the on board device.
+; e.g."Video", "Audio" etc..
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ ONBOARD_DEVICE_1 DEFINE <ENABLED, OBD_VIDEO, To Be Filled By O.E.M.>
+ ONBOARD_DEVICE_2 DEFINE <ENABLED, OBD_ETHERNET,To Be Filled By O.E.M.>
+ ONBOARD_DEVICE_3 DEFINE <ENABLED, OBD_OTHER, Onboard 1394>
+
+;----------------------------------------------------------------------------
+; Structure Type 11 : OEM STRINGS INFORMATION
+;----------------------------------------------------------------------------
+; The following information is needed only if OEM_STRING_INFO = Present
+; Syntax:
+; OEM_STRING_1 DEFINE <String>
+; * String -> Identifies the OEM specific string.
+; e.g. "SMBIOS2.3 support with HP extension"
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+IFDEF MKF_OEM_STRING_INFO
+IF (MKF_OEM_STRING_INFO NE 0)
+ OEM_STRING_1 DEFINE MKF_OEM_STRING_1
+ OEM_STRING_2 DEFINE MKF_OEM_STRING_2
+ OEM_STRING_3 DEFINE MKF_OEM_STRING_3
+ OEM_STRING_4 DEFINE MKF_OEM_STRING_4
+ OEM_STRING_5 DEFINE MKF_OEM_STRING_5
+ OEM_STRING_6 DEFINE MKF_OEM_STRING_6
+ENDIF
+ENDIF
+
+;----------------------------------------------------------------------------
+; Structure Type 12 : SYSTEM CONFIGURATION STRINGS INFORMATION
+;----------------------------------------------------------------------------
+; The following information is needed only if SYSTEM_CONFIG_OPTION_INFO = Present
+; Syntax:
+; SYSTEM_CONFIG_STRING_1 DEFINE <String>
+; * String -> Identifies the System Configuration Information string
+; e.g. Jumper setting information on platform and etc...
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+;!!!!!!!!!!!!!!!! MAKE SURE THE DESCRIPTION DOES NOT EXCEED 64 CHARACTERS !!!!!!!!!!!!!!!!!!!!!!!!!!!
+;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+;; < 1 2 3 4 5 6 >
+;; <0123456789012345678901234567890123456789012345678901234567890123>
+IFDEF MKF_SYSTEM_CONFIG_OPTION_INFO
+IF (MKF_SYSTEM_CONFIG_OPTION_INFO NE 0)
+ SYSTEM_CONFIG_STRING_1 DEFINE MKF_SYSTEM_CONFIG_STRING_1
+ SYSTEM_CONFIG_STRING_2 DEFINE MKF_SYSTEM_CONFIG_STRING_2
+ SYSTEM_CONFIG_STRING_3 DEFINE MKF_SYSTEM_CONFIG_STRING_3
+ SYSTEM_CONFIG_STRING_4 DEFINE MKF_SYSTEM_CONFIG_STRING_4
+ SYSTEM_CONFIG_STRING_5 DEFINE MKF_SYSTEM_CONFIG_STRING_5
+ENDIF
+ENDIF
+
+;----------------------------------------------------------------------------
+; Structure Type 14: GROUP ASSOCIATION INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 15: EVENT LOG INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 16: PHYSICAL MEMORY ARRAY INFORMATION
+;----------------------------------------------------------------------------
+; Syntax:
+; ARRAY_LOC_1 DEFINE <Memory Array Location>
+; * Memory Array Location -> 01h = Other
+; 02h = Unknown
+; 03h = System Board or Motherboard
+; 04h = ISA add-on card
+; 05h = EISA add-on card
+; 06h = PCI add-on card
+; 07h = MCA add-on card
+; 08h = PCMCIA add-on card
+; 09h = Proprietary add-on card
+; 0Ah = NuBus
+; A0h = PC-98/C20 add-on card
+; A1h = PC-98/C24 add-on card
+; A2h = PC-98/E add-on card
+; A3h = PC-98/Local Bus add-on card
+; ARRAY_USE_1 DEFINE <Memory Array Use>
+; * Memory Array Use -> 01h = Other
+; 02h = Unknown
+; 03h = System memory
+; 04h = Video memory
+; 05h = Flash memory
+; 06h = Non-volatile RAM
+; 07h = Cache memory
+; ARRAY_ERROR_COR_1 DEFINE <Memory Array Error Corection Types>
+; * Memory Array Error Corection Types -> 01h = Other
+; 02h = Unknown
+; 03h = None
+; 04h = Parity
+; 05h = Single-bit ECC
+; 06h = Multi-bit ECC
+; 07h = CRC
+; MAX_MEM_CAP_1 DEFINE <Maximum Capacity>
+; * Maximum Capacity -> XXXXXXXXh = Maximum memory capacity in kilobytes
+; 80000000h = unknown
+; EXT_MAX_MEM_CAP_1 DEFINE <Extended Maximum Capacity> - Valid only when MAX_MEM_CAP_X = 80000000h
+; * Extended Maximum Capacity -> XXXXXXXXXXXXXXXXh = Maximum memory capacity in bytes
+; (when MAX_MEM_CAP_X = 80000000h)
+; 0h = When MAX_MEM_CAP_X <> 80000000h
+;----------------------------------------------------------------------------
+ ARRAY_LOC_1 DEFINE <03h>
+ ARRAY_LOC_2 DEFINE <03h>
+ ARRAY_LOC_3 DEFINE <03h>
+ ARRAY_LOC_4 DEFINE <03h>
+ ARRAY_LOC_5 DEFINE <03h>
+
+ ARRAY_USE_1 DEFINE <03h>
+ ARRAY_USE_2 DEFINE <03h>
+ ARRAY_USE_3 DEFINE <03h>
+ ARRAY_USE_4 DEFINE <03h>
+ ARRAY_USE_5 DEFINE <03h>
+
+ ARRAY_ERROR_COR_1 DEFINE <03h>
+ ARRAY_ERROR_COR_2 DEFINE <03h>
+ ARRAY_ERROR_COR_3 DEFINE <03h>
+ ARRAY_ERROR_COR_4 DEFINE <03h>
+ ARRAY_ERROR_COR_5 DEFINE <03h>
+
+ MAX_MEM_CAP_1 DEFINE <00800000h>
+ MAX_MEM_CAP_2 DEFINE <00800000h>
+ MAX_MEM_CAP_3 DEFINE <00800000h>
+ MAX_MEM_CAP_4 DEFINE <00800000h>
+ MAX_MEM_CAP_5 DEFINE <00800000h>
+
+ EXT_MAX_MEM_CAP_1 DEFINE <0>
+ EXT_MAX_MEM_CAP_2 DEFINE <0>
+ EXT_MAX_MEM_CAP_3 DEFINE <0>
+ EXT_MAX_MEM_CAP_4 DEFINE <0>
+ EXT_MAX_MEM_CAP_5 DEFINE <0>
+
+;----------------------------------------------------------------------------
+; Structure Type 17: MEMORY DEVICE INFORMATION
+;----------------------------------------------------------------------------
+; Syntax:
+; A1_DATAWIDTH -> Identifies the data width, in bits, of this
+; momory device
+;
+; A1_FORMFACTOR -> Byte value - identifies the form factor of this
+; memory device
+; 01h = Other
+; 02h = Unknown
+; 03h = SIMM
+; 04h = SIP
+; 05h = Chip
+; 06h = DIP
+; 07h = ZIP
+; 08h = Proprietary Card
+; 09h = DIMM
+; 0Ah = TSOP
+; 0Bh = Rows of chips
+; 0Ch = RIMM
+; 0Dh = SODIMM
+; 0Eh = SRIMM
+; 0Fh = FB-DIMM
+;
+; A1_MEMORYTYPE -> Identifies the type of memory used in this device
+; 01h = Other
+; 02h = Unknown
+; 03h = DRAM
+; 04h = EDRAM
+; 05h = VRAM
+; 06h = SRAM
+; 07h = RAM
+; 08h = ROM
+; 09h = FLASH
+; 0Ah = EEPROM
+; 0Bh = FEPROM
+; 0Ch = EPROM
+; 0Dh = CDRAM
+; 0Eh = 3DRAM
+; 0Fh = SDRAM
+; 10h = SGRAM
+; 11h = RDRAM
+; 12h = DDR
+; 13h = DDR2
+; 14h = DDR2 FB-DIMM
+; 18h = DDR3
+; 19h = FBD2
+;
+; A1_TYPEDETAIL -> Additional detail on the memory device type.
+; Multiple bits are set if more than one attributes applies
+; Bit 0 - Reserved, set to 0
+; Bit 1 - Other
+; Bit 2 - Unknown
+; Bit 3 - Fast-paged
+; Bit 4 - Static Column
+; Bit 5 - Pseudo-static
+; Bit 6 - RAMBUS
+; Bit 7 - Synchronous
+; Bit 8 - CMOS
+; Bit 9 - EDO
+; Bit 10 - Window DRAM
+; Bit 11 - Cache DRAM
+; Bit 12 - Non-volatile
+; Bit 13 - Registered (Buffered)
+; Bit 14 - Unbuffered (Unregistered)
+; Bit 15 - LRDIMM
+;
+; A1_ATTRIBUTES -> Attributes.
+; Bits 3-0: Rank (value = 0 for unknown)
+; Bits 7-4: Reserved
+;
+; A1_DEVICE_1 DEFINE <Device Locator String, Bank Locator String, Manufacturer String,
+; Serial Number String, Asset Tag String, Part Number String>
+;
+; * A1_DEVICE_1 Memory array #1, Device #1
+; * Device Locator String -> Identifies the physically-labeled socket or board position where
+; the memory device is located.
+; e.g."DIMM0"
+; * Bank Locator String -> Identifies the physically-labeled bank where the memory device is located.
+; e.g."BANK0"
+; * Manufacturer String -> Identifies the manufacturer of this memory device
+; * Serial Number String -> Identifies the serial number of this memory device
+; * Asset Tag String -> Identifies the Asset Tag String of this memory device
+; * Part Number String -> Identifies the part number of this memory device
+;----------------------------------------------------------------------------
+
+;Number of device info structurs are equal to the no of memory modules specified.
+;!!PORT!!
+
+; Memory Array #1
+ A1_DATAWIDTH EQU 0040h
+ A1_FORMFACTOR EQU 09h
+ A1_MEMORYTYPE EQU 13h
+ A1_TYPEDETAIL EQU 0080h
+ A1_ATTRIBUTES EQU 0
+
+ A1_DEVICE_1 DEFINE <A1_DIMM0,A1_BANK0,A1_Manufacturer0,A1_SerNum0,A1_AssetTagNum0,Array1_PartNumber0>
+ A1_DEVICE_2 DEFINE <A1_DIMM1,A1_BANK1,A1_Manufacturer1,A1_SerNum1,A1_AssetTagNum1,Array1_PartNumber1>
+ A1_DEVICE_3 DEFINE <A1_DIMM2,A1_BANK2,A1_Manufacturer2,A1_SerNum2,A1_AssetTagNum2,Array1_PartNumber2>
+ A1_DEVICE_4 DEFINE <A1_DIMM3,A1_BANK3,A1_Manufacturer3,A1_SerNum3,A1_AssetTagNum3,Array1_PartNumber3>
+ A1_DEVICE_5 DEFINE <A1_DIMM4,A1_BANK4,A1_Manufacturer4,A1_SerNum4,A1_AssetTagNum4,Array1_PartNumber4>
+ A1_DEVICE_6 DEFINE <A1_DIMM5,A1_BANK5,A1_Manufacturer5,A1_SerNum5,A1_AssetTagNum5,Array1_PartNumber5>
+ A1_DEVICE_7 DEFINE <A1_DIMM6,A1_BANK6,A1_Manufacturer6,A1_SerNum6,A1_AssetTagNum6,Array1_PartNumber6>
+ A1_DEVICE_8 DEFINE <A1_DIMM7,A1_BANK7,A1_Manufacturer7,A1_SerNum7,A1_AssetTagNum7,Array1_PartNumber7>
+ A1_DEVICE_9 DEFINE <A1_DIMM8,A1_BANK8,A1_Manufacturer8,A1_SerNum8,A1_AssetTagNum8,Array1_PartNumber8>
+ A1_DEVICE_10 DEFINE <A1_DIMM9,A1_BANK9,A1_Manufacturer9,A1_SerNum9,A1_AssetTagNum9,Array1_PartNumber9>
+ A1_DEVICE_11 DEFINE <A1_DIMM10,A1_BANK10,A1_Manufacturer10,A1_SerNum10,A1_AssetTagNum10,Array1_PartNumber10>
+ A1_DEVICE_12 DEFINE <A1_DIMM11,A1_BANK11,A1_Manufacturer11,A1_SerNum11,A1_AssetTagNum11,Array1_PartNumber11>
+ A1_DEVICE_13 DEFINE <A1_DIMM12,A1_BANK12,A1_Manufacturer12,A1_SerNum12,A1_AssetTagNum12,Array1_PartNumber12>
+ A1_DEVICE_14 DEFINE <A1_DIMM13,A1_BANK13,A1_Manufacturer13,A1_SerNum13,A1_AssetTagNum13,Array1_PartNumber13>
+ A1_DEVICE_15 DEFINE <A1_DIMM14,A1_BANK14,A1_Manufacturer14,A1_SerNum14,A1_AssetTagNum14,Array1_PartNumber14>
+ A1_DEVICE_16 DEFINE <A1_DIMM15,A1_BANK15,A1_Manufacturer15,A1_SerNum15,A1_AssetTagNum15,Array1_PartNumber15>
+ A1_DEVICE_17 DEFINE <A1_DIMM16,A1_BANK16,A1_Manufacturer16,A1_SerNum16,A1_AssetTagNum16,Array1_PartNumber16>
+ A1_DEVICE_18 DEFINE <A1_DIMM17,A1_BANK17,A1_Manufacturer17,A1_SerNum17,A1_AssetTagNum17,Array1_PartNumber17>
+ A1_DEVICE_19 DEFINE <A1_DIMM18,A1_BANK18,A1_Manufacturer18,A1_SerNum18,A1_AssetTagNum18,Array1_PartNumber18>
+ A1_DEVICE_20 DEFINE <A1_DIMM19,A1_BANK19,A1_Manufacturer19,A1_SerNum19,A1_AssetTagNum19,Array1_PartNumber19>
+ A1_DEVICE_21 DEFINE <A1_DIMM20,A1_BANK20,A1_Manufacturer20,A1_SerNum20,A1_AssetTagNum20,Array1_PartNumber20>
+ A1_DEVICE_22 DEFINE <A1_DIMM21,A1_BANK21,A1_Manufacturer21,A1_SerNum21,A1_AssetTagNum21,Array1_PartNumber21>
+ A1_DEVICE_23 DEFINE <A1_DIMM22,A1_BANK22,A1_Manufacturer22,A1_SerNum22,A1_AssetTagNum22,Array1_PartNumber22>
+ A1_DEVICE_24 DEFINE <A1_DIMM23,A1_BANK23,A1_Manufacturer23,A1_SerNum23,A1_AssetTagNum23,Array1_PartNumber23>
+ A1_DEVICE_25 DEFINE <A1_DIMM24,A1_BANK24,A1_Manufacturer24,A1_SerNum24,A1_AssetTagNum24,Array1_PartNumber24>
+ A1_DEVICE_26 DEFINE <A1_DIMM25,A1_BANK25,A1_Manufacturer25,A1_SerNum25,A1_AssetTagNum25,Array1_PartNumber25>
+ A1_DEVICE_27 DEFINE <A1_DIMM26,A1_BANK26,A1_Manufacturer26,A1_SerNum26,A1_AssetTagNum26,Array1_PartNumber26>
+ A1_DEVICE_28 DEFINE <A1_DIMM27,A1_BANK27,A1_Manufacturer27,A1_SerNum27,A1_AssetTagNum27,Array1_PartNumber27>
+ A1_DEVICE_29 DEFINE <A1_DIMM28,A1_BANK28,A1_Manufacturer28,A1_SerNum28,A1_AssetTagNum28,Array1_PartNumber28>
+ A1_DEVICE_30 DEFINE <A1_DIMM29,A1_BANK29,A1_Manufacturer29,A1_SerNum29,A1_AssetTagNum29,Array1_PartNumber29>
+ A1_DEVICE_31 DEFINE <A1_DIMM30,A1_BANK30,A1_Manufacturer30,A1_SerNum30,A1_AssetTagNum30,Array1_PartNumber30>
+ A1_DEVICE_32 DEFINE <A1_DIMM31,A1_BANK31,A1_Manufacturer31,A1_SerNum31,A1_AssetTagNum31,Array1_PartNumber31>
+
+; Memory Array #2
+ A2_DATAWIDTH EQU 0040h
+ A2_FORMFACTOR EQU 09h
+ A2_MEMORYTYPE EQU 13h
+ A2_TYPEDETAIL EQU 0080h
+ A2_ATTRIBUTES EQU 0
+
+ A2_DEVICE_1 DEFINE <A2_DIMM0,A2_BANK0,A2_Manufacturer0,A2_SerNum0,A2_AssetTagNum0,Array2_PartNumber0>
+ A2_DEVICE_2 DEFINE <A2_DIMM1,A2_BANK1,A2_Manufacturer1,A2_SerNum1,A2_AssetTagNum1,Array2_PartNumber1>
+ A2_DEVICE_3 DEFINE <A2_DIMM2,A2_BANK2,A2_Manufacturer2,A2_SerNum2,A2_AssetTagNum2,Array2_PartNumber2>
+ A2_DEVICE_4 DEFINE <A2_DIMM3,A2_BANK3,A2_Manufacturer3,A2_SerNum3,A2_AssetTagNum3,Array2_PartNumber3>
+ A2_DEVICE_5 DEFINE <A2_DIMM4,A2_BANK4,A2_Manufacturer4,A2_SerNum4,A2_AssetTagNum4,Array2_PartNumber4>
+ A2_DEVICE_6 DEFINE <A2_DIMM5,A2_BANK5,A2_Manufacturer5,A2_SerNum5,A2_AssetTagNum5,Array2_PartNumber5>
+ A2_DEVICE_7 DEFINE <A2_DIMM6,A2_BANK6,A2_Manufacturer6,A2_SerNum6,A2_AssetTagNum6,Array2_PartNumber6>
+ A2_DEVICE_8 DEFINE <A2_DIMM7,A2_BANK7,A2_Manufacturer7,A2_SerNum7,A2_AssetTagNum7,Array2_PartNumber7>
+ A2_DEVICE_9 DEFINE <A2_DIMM8,A2_BANK8,A2_Manufacturer8,A2_SerNum8,A2_AssetTagNum8,Array2_PartNumber8>
+ A2_DEVICE_10 DEFINE <A2_DIMM9,A2_BANK9,A2_Manufacturer9,A2_SerNum9,A2_AssetTagNum9,Array2_PartNumber9>
+ A2_DEVICE_11 DEFINE <A2_DIMM10,A2_BANK10,A2_Manufacturer10,A2_SerNum10,A2_AssetTagNum10,Array2_PartNumber10>
+ A2_DEVICE_12 DEFINE <A2_DIMM11,A2_BANK11,A2_Manufacturer11,A2_SerNum11,A2_AssetTagNum11,Array2_PartNumber11>
+ A2_DEVICE_13 DEFINE <A2_DIMM12,A2_BANK12,A2_Manufacturer12,A2_SerNum12,A2_AssetTagNum12,Array2_PartNumber12>
+ A2_DEVICE_14 DEFINE <A2_DIMM13,A2_BANK13,A2_Manufacturer13,A2_SerNum13,A2_AssetTagNum13,Array2_PartNumber13>
+ A2_DEVICE_15 DEFINE <A2_DIMM14,A2_BANK14,A2_Manufacturer14,A2_SerNum14,A2_AssetTagNum14,Array2_PartNumber14>
+ A2_DEVICE_16 DEFINE <A2_DIMM15,A2_BANK15,A2_Manufacturer15,A2_SerNum15,A2_AssetTagNum15,Array2_PartNumber15>
+ A2_DEVICE_17 DEFINE <A2_DIMM16,A2_BANK16,A2_Manufacturer16,A2_SerNum16,A2_AssetTagNum16,Array2_PartNumber16>
+ A2_DEVICE_18 DEFINE <A2_DIMM17,A2_BANK17,A2_Manufacturer17,A2_SerNum17,A2_AssetTagNum17,Array2_PartNumber17>
+ A2_DEVICE_19 DEFINE <A2_DIMM18,A2_BANK18,A2_Manufacturer18,A2_SerNum18,A2_AssetTagNum18,Array2_PartNumber18>
+ A2_DEVICE_20 DEFINE <A2_DIMM19,A2_BANK19,A2_Manufacturer19,A2_SerNum19,A2_AssetTagNum19,Array2_PartNumber19>
+ A2_DEVICE_21 DEFINE <A2_DIMM20,A2_BANK20,A2_Manufacturer20,A2_SerNum20,A2_AssetTagNum20,Array2_PartNumber20>
+ A2_DEVICE_22 DEFINE <A2_DIMM21,A2_BANK21,A2_Manufacturer21,A2_SerNum21,A2_AssetTagNum21,Array2_PartNumber21>
+ A2_DEVICE_23 DEFINE <A2_DIMM22,A2_BANK22,A2_Manufacturer22,A2_SerNum22,A2_AssetTagNum22,Array2_PartNumber22>
+ A2_DEVICE_24 DEFINE <A2_DIMM23,A2_BANK23,A2_Manufacturer23,A2_SerNum23,A2_AssetTagNum23,Array2_PartNumber23>
+ A2_DEVICE_25 DEFINE <A2_DIMM24,A2_BANK24,A2_Manufacturer24,A2_SerNum24,A2_AssetTagNum24,Array2_PartNumber24>
+ A2_DEVICE_26 DEFINE <A2_DIMM25,A2_BANK25,A2_Manufacturer25,A2_SerNum25,A2_AssetTagNum25,Array2_PartNumber25>
+ A2_DEVICE_27 DEFINE <A2_DIMM26,A2_BANK26,A2_Manufacturer26,A2_SerNum26,A2_AssetTagNum26,Array2_PartNumber26>
+ A2_DEVICE_28 DEFINE <A2_DIMM27,A2_BANK27,A2_Manufacturer27,A2_SerNum27,A2_AssetTagNum27,Array2_PartNumber27>
+ A2_DEVICE_29 DEFINE <A2_DIMM28,A2_BANK28,A2_Manufacturer28,A2_SerNum28,A2_AssetTagNum28,Array2_PartNumber28>
+ A2_DEVICE_30 DEFINE <A2_DIMM29,A2_BANK29,A2_Manufacturer29,A2_SerNum29,A2_AssetTagNum29,Array2_PartNumber29>
+ A2_DEVICE_31 DEFINE <A2_DIMM30,A2_BANK30,A2_Manufacturer30,A2_SerNum30,A2_AssetTagNum30,Array2_PartNumber30>
+ A2_DEVICE_32 DEFINE <A2_DIMM31,A2_BANK31,A2_Manufacturer31,A2_SerNum31,A2_AssetTagNum31,Array2_PartNumber31>
+
+; Memory Array #3
+ A3_DATAWIDTH EQU 0040h
+ A3_FORMFACTOR EQU 09h
+ A3_MEMORYTYPE EQU 13h
+ A3_TYPEDETAIL EQU 0080h
+ A3_ATTRIBUTES EQU 0
+
+ A3_DEVICE_1 DEFINE <A3_DIMM0,A3_BANK0,A3_Manufacturer0,A3_SerNum0,A3_AssetTagNum0,Array3_PartNumber0>
+ A3_DEVICE_2 DEFINE <A3_DIMM1,A3_BANK1,A3_Manufacturer1,A3_SerNum1,A3_AssetTagNum1,Array3_PartNumber1>
+ A3_DEVICE_3 DEFINE <A3_DIMM2,A3_BANK2,A3_Manufacturer2,A3_SerNum2,A3_AssetTagNum2,Array3_PartNumber2>
+ A3_DEVICE_4 DEFINE <A3_DIMM3,A3_BANK3,A3_Manufacturer3,A3_SerNum3,A3_AssetTagNum3,Array3_PartNumber3>
+ A3_DEVICE_5 DEFINE <A3_DIMM4,A3_BANK4,A3_Manufacturer4,A3_SerNum4,A3_AssetTagNum4,Array3_PartNumber4>
+ A3_DEVICE_6 DEFINE <A3_DIMM5,A3_BANK5,A3_Manufacturer5,A3_SerNum5,A3_AssetTagNum5,Array3_PartNumber5>
+ A3_DEVICE_7 DEFINE <A3_DIMM6,A3_BANK6,A3_Manufacturer6,A3_SerNum6,A3_AssetTagNum6,Array3_PartNumber6>
+ A3_DEVICE_8 DEFINE <A3_DIMM7,A3_BANK7,A3_Manufacturer7,A3_SerNum7,A3_AssetTagNum7,Array3_PartNumber7>
+ A3_DEVICE_9 DEFINE <A3_DIMM8,A3_BANK8,A3_Manufacturer8,A3_SerNum8,A3_AssetTagNum8,Array3_PartNumber8>
+ A3_DEVICE_10 DEFINE <A3_DIMM9,A3_BANK9,A3_Manufacturer9,A3_SerNum9,A3_AssetTagNum9,Array3_PartNumber9>
+ A3_DEVICE_11 DEFINE <A3_DIMM10,A3_BANK10,A3_Manufacturer10,A3_SerNum10,A3_AssetTagNum10,Array3_PartNumber10>
+ A3_DEVICE_12 DEFINE <A3_DIMM11,A3_BANK11,A3_Manufacturer11,A3_SerNum11,A3_AssetTagNum11,Array3_PartNumber11>
+ A3_DEVICE_13 DEFINE <A3_DIMM12,A3_BANK12,A3_Manufacturer12,A3_SerNum12,A3_AssetTagNum12,Array3_PartNumber12>
+ A3_DEVICE_14 DEFINE <A3_DIMM13,A3_BANK13,A3_Manufacturer13,A3_SerNum13,A3_AssetTagNum13,Array3_PartNumber13>
+ A3_DEVICE_15 DEFINE <A3_DIMM14,A3_BANK14,A3_Manufacturer14,A3_SerNum14,A3_AssetTagNum14,Array3_PartNumber14>
+ A3_DEVICE_16 DEFINE <A3_DIMM15,A3_BANK15,A3_Manufacturer15,A3_SerNum15,A3_AssetTagNum15,Array3_PartNumber15>
+ A3_DEVICE_17 DEFINE <A3_DIMM16,A3_BANK16,A3_Manufacturer16,A3_SerNum16,A3_AssetTagNum16,Array3_PartNumber16>
+ A3_DEVICE_18 DEFINE <A3_DIMM17,A3_BANK17,A3_Manufacturer17,A3_SerNum17,A3_AssetTagNum17,Array3_PartNumber17>
+ A3_DEVICE_19 DEFINE <A3_DIMM18,A3_BANK18,A3_Manufacturer18,A3_SerNum18,A3_AssetTagNum18,Array3_PartNumber18>
+ A3_DEVICE_20 DEFINE <A3_DIMM19,A3_BANK19,A3_Manufacturer19,A3_SerNum19,A3_AssetTagNum19,Array3_PartNumber19>
+ A3_DEVICE_21 DEFINE <A3_DIMM20,A3_BANK20,A3_Manufacturer20,A3_SerNum20,A3_AssetTagNum20,Array3_PartNumber20>
+ A3_DEVICE_22 DEFINE <A3_DIMM21,A3_BANK21,A3_Manufacturer21,A3_SerNum21,A3_AssetTagNum21,Array3_PartNumber21>
+ A3_DEVICE_23 DEFINE <A3_DIMM22,A3_BANK22,A3_Manufacturer22,A3_SerNum22,A3_AssetTagNum22,Array3_PartNumber22>
+ A3_DEVICE_24 DEFINE <A3_DIMM23,A3_BANK23,A3_Manufacturer23,A3_SerNum23,A3_AssetTagNum23,Array3_PartNumber23>
+ A3_DEVICE_25 DEFINE <A3_DIMM24,A3_BANK24,A3_Manufacturer24,A3_SerNum24,A3_AssetTagNum24,Array3_PartNumber24>
+ A3_DEVICE_26 DEFINE <A3_DIMM25,A3_BANK25,A3_Manufacturer25,A3_SerNum25,A3_AssetTagNum25,Array3_PartNumber25>
+ A3_DEVICE_27 DEFINE <A3_DIMM26,A3_BANK26,A3_Manufacturer26,A3_SerNum26,A3_AssetTagNum26,Array3_PartNumber26>
+ A3_DEVICE_28 DEFINE <A3_DIMM27,A3_BANK27,A3_Manufacturer27,A3_SerNum27,A3_AssetTagNum27,Array3_PartNumber27>
+ A3_DEVICE_29 DEFINE <A3_DIMM28,A3_BANK28,A3_Manufacturer28,A3_SerNum28,A3_AssetTagNum28,Array3_PartNumber28>
+ A3_DEVICE_30 DEFINE <A3_DIMM29,A3_BANK29,A3_Manufacturer29,A3_SerNum29,A3_AssetTagNum29,Array3_PartNumber29>
+ A3_DEVICE_31 DEFINE <A3_DIMM30,A3_BANK30,A3_Manufacturer30,A3_SerNum30,A3_AssetTagNum30,Array3_PartNumber30>
+ A3_DEVICE_32 DEFINE <A3_DIMM31,A3_BANK31,A3_Manufacturer31,A3_SerNum31,A3_AssetTagNum31,Array3_PartNumber31>
+
+; Memory Array #4
+ A4_DATAWIDTH EQU 0040h
+ A4_FORMFACTOR EQU 09h
+ A4_MEMORYTYPE EQU 13h
+ A4_TYPEDETAIL EQU 0080h
+ A4_ATTRIBUTES EQU 0
+
+ A4_DEVICE_1 DEFINE <A4_DIMM0,A4_BANK0,A4_Manufacturer0,A4_SerNum0,A4_AssetTagNum0,Array4_PartNumber0>
+ A4_DEVICE_2 DEFINE <A4_DIMM1,A4_BANK1,A4_Manufacturer1,A4_SerNum1,A4_AssetTagNum1,Array4_PartNumber1>
+ A4_DEVICE_3 DEFINE <A4_DIMM2,A4_BANK2,A4_Manufacturer2,A4_SerNum2,A4_AssetTagNum2,Array4_PartNumber2>
+ A4_DEVICE_4 DEFINE <A4_DIMM3,A4_BANK3,A4_Manufacturer3,A4_SerNum3,A4_AssetTagNum3,Array4_PartNumber3>
+ A4_DEVICE_5 DEFINE <A4_DIMM4,A4_BANK4,A4_Manufacturer4,A4_SerNum4,A4_AssetTagNum4,Array4_PartNumber4>
+ A4_DEVICE_6 DEFINE <A4_DIMM5,A4_BANK5,A4_Manufacturer5,A4_SerNum5,A4_AssetTagNum5,Array4_PartNumber5>
+ A4_DEVICE_7 DEFINE <A4_DIMM6,A4_BANK6,A4_Manufacturer6,A4_SerNum6,A4_AssetTagNum6,Array4_PartNumber6>
+ A4_DEVICE_8 DEFINE <A4_DIMM7,A4_BANK7,A4_Manufacturer7,A4_SerNum7,A4_AssetTagNum7,Array4_PartNumber7>
+ A4_DEVICE_9 DEFINE <A4_DIMM8,A4_BANK8,A4_Manufacturer8,A4_SerNum8,A4_AssetTagNum8,Array4_PartNumber8>
+ A4_DEVICE_10 DEFINE <A4_DIMM9,A4_BANK9,A4_Manufacturer9,A4_SerNum9,A4_AssetTagNum9,Array4_PartNumber9>
+ A4_DEVICE_11 DEFINE <A4_DIMM10,A4_BANK10,A4_Manufacturer10,A4_SerNum10,A4_AssetTagNum10,Array4_PartNumber10>
+ A4_DEVICE_12 DEFINE <A4_DIMM11,A4_BANK11,A4_Manufacturer11,A4_SerNum11,A4_AssetTagNum11,Array4_PartNumber11>
+ A4_DEVICE_13 DEFINE <A4_DIMM12,A4_BANK12,A4_Manufacturer12,A4_SerNum12,A4_AssetTagNum12,Array4_PartNumber12>
+ A4_DEVICE_14 DEFINE <A4_DIMM13,A4_BANK13,A4_Manufacturer13,A4_SerNum13,A4_AssetTagNum13,Array4_PartNumber13>
+ A4_DEVICE_15 DEFINE <A4_DIMM14,A4_BANK14,A4_Manufacturer14,A4_SerNum14,A4_AssetTagNum14,Array4_PartNumber14>
+ A4_DEVICE_16 DEFINE <A4_DIMM15,A4_BANK15,A4_Manufacturer15,A4_SerNum15,A4_AssetTagNum15,Array4_PartNumber15>
+ A4_DEVICE_17 DEFINE <A4_DIMM16,A4_BANK16,A4_Manufacturer16,A4_SerNum16,A4_AssetTagNum16,Array4_PartNumber16>
+ A4_DEVICE_18 DEFINE <A4_DIMM17,A4_BANK17,A4_Manufacturer17,A4_SerNum17,A4_AssetTagNum17,Array4_PartNumber17>
+ A4_DEVICE_19 DEFINE <A4_DIMM18,A4_BANK18,A4_Manufacturer18,A4_SerNum18,A4_AssetTagNum18,Array4_PartNumber18>
+ A4_DEVICE_20 DEFINE <A4_DIMM19,A4_BANK19,A4_Manufacturer19,A4_SerNum19,A4_AssetTagNum19,Array4_PartNumber19>
+ A4_DEVICE_21 DEFINE <A4_DIMM20,A4_BANK20,A4_Manufacturer20,A4_SerNum20,A4_AssetTagNum20,Array4_PartNumber20>
+ A4_DEVICE_22 DEFINE <A4_DIMM21,A4_BANK21,A4_Manufacturer21,A4_SerNum21,A4_AssetTagNum21,Array4_PartNumber21>
+ A4_DEVICE_23 DEFINE <A4_DIMM22,A4_BANK22,A4_Manufacturer22,A4_SerNum22,A4_AssetTagNum22,Array4_PartNumber22>
+ A4_DEVICE_24 DEFINE <A4_DIMM23,A4_BANK23,A4_Manufacturer23,A4_SerNum23,A4_AssetTagNum23,Array4_PartNumber23>
+ A4_DEVICE_25 DEFINE <A4_DIMM24,A4_BANK24,A4_Manufacturer24,A4_SerNum24,A4_AssetTagNum24,Array4_PartNumber24>
+ A4_DEVICE_26 DEFINE <A4_DIMM25,A4_BANK25,A4_Manufacturer25,A4_SerNum25,A4_AssetTagNum25,Array4_PartNumber25>
+ A4_DEVICE_27 DEFINE <A4_DIMM26,A4_BANK26,A4_Manufacturer26,A4_SerNum26,A4_AssetTagNum26,Array4_PartNumber26>
+ A4_DEVICE_28 DEFINE <A4_DIMM27,A4_BANK27,A4_Manufacturer27,A4_SerNum27,A4_AssetTagNum27,Array4_PartNumber27>
+ A4_DEVICE_29 DEFINE <A4_DIMM28,A4_BANK28,A4_Manufacturer28,A4_SerNum28,A4_AssetTagNum28,Array4_PartNumber28>
+ A4_DEVICE_30 DEFINE <A4_DIMM29,A4_BANK29,A4_Manufacturer29,A4_SerNum29,A4_AssetTagNum29,Array4_PartNumber29>
+ A4_DEVICE_31 DEFINE <A4_DIMM30,A4_BANK30,A4_Manufacturer30,A4_SerNum30,A4_AssetTagNum30,Array4_PartNumber30>
+ A4_DEVICE_32 DEFINE <A4_DIMM31,A4_BANK31,A4_Manufacturer31,A4_SerNum31,A4_AssetTagNum31,Array4_PartNumber31>
+
+;----------------------------------------------------------------------------
+; Structure Type 18: MEMORY ERROR INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 19: MEMORY ARRAY MAPPED ADDRESS INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 20: MEMORY DEVICE MAPPED ADDRESS INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 21: BUILT-IN POINTING DEVICE INFORMATION
+;----------------------------------------------------------------------------
+; Syntax:
+; POINTING_DEVICE_TYPE_1 DEFINE <Pointing Device Type>
+; * Pointing Device Type -> 01h = Other
+; 02h = Unknown
+; 03h = Mouse
+; 04h = Track Ball
+; 05h = Track Point
+; 06h = Glide Point
+; 07h = Touch Pad
+; 08h = Touch Screen
+; 09h = Optical Sensor
+; POINTING_DEVICE_INTERFACE_1 DEFINE <Pointing Device Interface>
+; * Pointing Device Interface -> 01h = Other
+; 02h = Unknown
+; 03h = Serial
+; 04h = PS/2
+; 05h = Infrared
+; 06h = HP-HIL
+; 07h = Bus Mouse
+; 08h = ADB (Apple Desktop Bus)
+; A0h = Bus Mouse DB-9
+; A1h = Bus Mouse Micro-DIN
+; A2h = USB
+; POINTING_DEVICE_NUM_BUTTONS_1 DEFINE <Number of Buttons>
+;----------------------------------------------------------------------------
+ POINTING_DEVICE_TYPE_1 DEFINE <03h>
+ POINTING_DEVICE_TYPE_2 DEFINE <07h>
+ POINTING_DEVICE_TYPE_3 DEFINE <08h>
+ POINTING_DEVICE_TYPE_4 DEFINE <04h>
+ POINTING_DEVICE_TYPE_5 DEFINE <05h>
+
+ POINTING_DEVICE_INTERFACE_1 DEFINE <04h>
+ POINTING_DEVICE_INTERFACE_2 DEFINE <03h>
+ POINTING_DEVICE_INTERFACE_3 DEFINE <07h>
+ POINTING_DEVICE_INTERFACE_4 DEFINE <0A2h>
+ POINTING_DEVICE_INTERFACE_5 DEFINE <01h>
+
+ POINTING_DEVICE_NUM_BUTTONS_1 DEFINE <03h>
+ POINTING_DEVICE_NUM_BUTTONS_2 DEFINE <03h>
+ POINTING_DEVICE_NUM_BUTTONS_3 DEFINE <03h>
+ POINTING_DEVICE_NUM_BUTTONS_4 DEFINE <03h>
+ POINTING_DEVICE_NUM_BUTTONS_5 DEFINE <03h>
+
+;----------------------------------------------------------------------------
+; Structure Type 22: PORTABLE BATTERY INFORMATION
+;----------------------------------------------------------------------------
+; Syntax:
+; PORT_BAT_LOCATION_1 DEFINE <Location of the battery>
+; PORT_BAT_MANUFACTURER_1 DEFINE <Battery Manufacturer>
+; PORT_BAT_MANUFACTURE_DATE_1 DEFINE <Battery Manufacturer Date>
+; PORT_BAT_SERIAL_NUMBER_1 DEFINE <Battery Serial Number>
+; PORT_BAT_DEVICE_NAME_1 DEFINE <Battery Device Name>
+; DEVICE_CHEMISTRY_1 DEFINE <Battery Device Chemistry>
+; * Battery Device Chemistry -> 01h = Other
+; 02h = Unknown
+; 03h = Lead Acid
+; 04h = Nickel Cadmium
+; 05h = Nickel Metal Hydride
+; 06h = Lithium-ion
+; 07h = Zinc Air
+; 08h = Lithium Polymer
+; DESIGN_CAPACITY_1 DEFINE <Design Capacity of the Battery in mWatt-hours>
+; DESIGN_VOLTAGE_1 DEFINE <Design Voltage of the Battery in mVolts>
+; PORT_BAT_SBDS_VER_NO_1 DEFINE <Smart Battery Data Specification Version Number>
+; MAX_ERROR_IN_BAT_DATA_1 DEFINE <Maximum Error (as percentage in the range 0-100)>
+; PORT_BAT_SBDS_SERIAL_NO_1 DEFINE <16-bit value - Identifies battery's serial number>
+; PORT_BAT_SBDS_MAN_DATE_1 DEFINE <Cell Pack Manufacture Date>
+; * Cell Pack Manufacture Date -> Bits 15:9 Year, biased by 1980, in the range 0 to 127
+; Bits 8:5 Month, in the range 1 to 12
+; Bits 4:0 Date, in the range 1 to 31
+; PORT_BAT_SBDS_DEV_CHEM_1 DEFINE <Battery Chemistry>
+; DESIGN_CAPACITY_MULTIPLIER_1 DEFINE <Multiplication Factor of the Design Capacity>
+; OEM_SPECIFIC_1 DEFINE <OEM or BIOS Vendor-specific Information>
+;----------------------------------------------------------------------------
+IFDEF MKF_PORTABLE_BATTERY_INFO
+IF (MKF_PORTABLE_BATTERY_INFO NE 0)
+ PORT_BAT_LOCATION_1 DEFINE MKF_PORT_BAT_LOCATION_1
+ PORT_BAT_LOCATION_2 DEFINE MKF_PORT_BAT_LOCATION_2
+ PORT_BAT_LOCATION_3 DEFINE MKF_PORT_BAT_LOCATION_3
+ PORT_BAT_LOCATION_4 DEFINE MKF_PORT_BAT_LOCATION_4
+ PORT_BAT_LOCATION_5 DEFINE MKF_PORT_BAT_LOCATION_5
+
+ PORT_BAT_MANUFACTURER_1 DEFINE MKF_PORT_BAT_MANUFACTURER_1
+ PORT_BAT_MANUFACTURER_2 DEFINE MKF_PORT_BAT_MANUFACTURER_2
+ PORT_BAT_MANUFACTURER_3 DEFINE MKF_PORT_BAT_MANUFACTURER_3
+ PORT_BAT_MANUFACTURER_4 DEFINE MKF_PORT_BAT_MANUFACTURER_4
+ PORT_BAT_MANUFACTURER_5 DEFINE MKF_PORT_BAT_MANUFACTURER_5
+
+ PORT_BAT_MANUFACTURE_DATE_1 DEFINE MKF_PORT_BAT_MANUFACTURE_DATE_1
+ PORT_BAT_MANUFACTURE_DATE_2 DEFINE MKF_PORT_BAT_MANUFACTURE_DATE_2
+ PORT_BAT_MANUFACTURE_DATE_3 DEFINE MKF_PORT_BAT_MANUFACTURE_DATE_3
+ PORT_BAT_MANUFACTURE_DATE_4 DEFINE MKF_PORT_BAT_MANUFACTURE_DATE_4
+ PORT_BAT_MANUFACTURE_DATE_5 DEFINE MKF_PORT_BAT_MANUFACTURE_DATE_5
+
+ PORT_BAT_SERIAL_NUMBER_1 DEFINE MKF_PORT_BAT_SERIAL_NUMBER_1
+ PORT_BAT_SERIAL_NUMBER_2 DEFINE MKF_PORT_BAT_SERIAL_NUMBER_2
+ PORT_BAT_SERIAL_NUMBER_3 DEFINE MKF_PORT_BAT_SERIAL_NUMBER_3
+ PORT_BAT_SERIAL_NUMBER_4 DEFINE MKF_PORT_BAT_SERIAL_NUMBER_4
+ PORT_BAT_SERIAL_NUMBER_5 DEFINE MKF_PORT_BAT_SERIAL_NUMBER_5
+
+ PORT_BAT_DEVICE_NAME_1 DEFINE MKF_PORT_BAT_DEVICE_NAME_1
+ PORT_BAT_DEVICE_NAME_2 DEFINE MKF_PORT_BAT_DEVICE_NAME_2
+ PORT_BAT_DEVICE_NAME_3 DEFINE MKF_PORT_BAT_DEVICE_NAME_3
+ PORT_BAT_DEVICE_NAME_4 DEFINE MKF_PORT_BAT_DEVICE_NAME_4
+ PORT_BAT_DEVICE_NAME_5 DEFINE MKF_PORT_BAT_DEVICE_NAME_5
+
+ DEVICE_CHEMISTRY_1 DEFINE MKF_DEVICE_CHEMISTRY_1
+ DEVICE_CHEMISTRY_2 DEFINE MKF_DEVICE_CHEMISTRY_2
+ DEVICE_CHEMISTRY_3 DEFINE MKF_DEVICE_CHEMISTRY_3
+ DEVICE_CHEMISTRY_4 DEFINE MKF_DEVICE_CHEMISTRY_4
+ DEVICE_CHEMISTRY_5 DEFINE MKF_DEVICE_CHEMISTRY_5
+
+ DESIGN_CAPACITY_1 DEFINE MKF_DESIGN_CAPACITY_1
+ DESIGN_CAPACITY_2 DEFINE MKF_DESIGN_CAPACITY_2
+ DESIGN_CAPACITY_3 DEFINE MKF_DESIGN_CAPACITY_3
+ DESIGN_CAPACITY_4 DEFINE MKF_DESIGN_CAPACITY_4
+ DESIGN_CAPACITY_5 DEFINE MKF_DESIGN_CAPACITY_5
+
+ DESIGN_VOLTAGE_1 DEFINE MKF_DESIGN_VOLTAGE_1
+ DESIGN_VOLTAGE_2 DEFINE MKF_DESIGN_VOLTAGE_2
+ DESIGN_VOLTAGE_3 DEFINE MKF_DESIGN_VOLTAGE_3
+ DESIGN_VOLTAGE_4 DEFINE MKF_DESIGN_VOLTAGE_4
+ DESIGN_VOLTAGE_5 DEFINE MKF_DESIGN_VOLTAGE_5
+
+ PORT_BAT_SBDS_VER_NO_1 DEFINE MKF_PORT_BAT_SBDS_VER_NO_1
+ PORT_BAT_SBDS_VER_NO_2 DEFINE MKF_PORT_BAT_SBDS_VER_NO_2
+ PORT_BAT_SBDS_VER_NO_3 DEFINE MKF_PORT_BAT_SBDS_VER_NO_3
+ PORT_BAT_SBDS_VER_NO_4 DEFINE MKF_PORT_BAT_SBDS_VER_NO_4
+ PORT_BAT_SBDS_VER_NO_5 DEFINE MKF_PORT_BAT_SBDS_VER_NO_5
+
+ MAX_ERROR_IN_BAT_DATA_1 DEFINE MKF_MAX_ERROR_IN_BAT_DATA_1
+ MAX_ERROR_IN_BAT_DATA_2 DEFINE MKF_MAX_ERROR_IN_BAT_DATA_2
+ MAX_ERROR_IN_BAT_DATA_3 DEFINE MKF_MAX_ERROR_IN_BAT_DATA_3
+ MAX_ERROR_IN_BAT_DATA_4 DEFINE MKF_MAX_ERROR_IN_BAT_DATA_4
+ MAX_ERROR_IN_BAT_DATA_5 DEFINE MKF_MAX_ERROR_IN_BAT_DATA_5
+
+ PORT_BAT_SBDS_SERIAL_NO_1 DEFINE MKF_PORT_BAT_SBDS_SERIAL_NO_1
+ PORT_BAT_SBDS_SERIAL_NO_2 DEFINE MKF_PORT_BAT_SBDS_SERIAL_NO_2
+ PORT_BAT_SBDS_SERIAL_NO_3 DEFINE MKF_PORT_BAT_SBDS_SERIAL_NO_3
+ PORT_BAT_SBDS_SERIAL_NO_4 DEFINE MKF_PORT_BAT_SBDS_SERIAL_NO_4
+ PORT_BAT_SBDS_SERIAL_NO_5 DEFINE MKF_PORT_BAT_SBDS_SERIAL_NO_5
+
+ PORT_BAT_SBDS_MAN_DATE_1 DEFINE MKF_PORT_BAT_SBDS_MAN_DATE_1
+ PORT_BAT_SBDS_MAN_DATE_2 DEFINE MKF_PORT_BAT_SBDS_MAN_DATE_2
+ PORT_BAT_SBDS_MAN_DATE_3 DEFINE MKF_PORT_BAT_SBDS_MAN_DATE_3
+ PORT_BAT_SBDS_MAN_DATE_4 DEFINE MKF_PORT_BAT_SBDS_MAN_DATE_4
+ PORT_BAT_SBDS_MAN_DATE_5 DEFINE MKF_PORT_BAT_SBDS_MAN_DATE_5
+
+ PORT_BAT_SBDS_DEV_CHEM_1 DEFINE MKF_PORT_BAT_SBDS_DEV_CHEM_1
+ PORT_BAT_SBDS_DEV_CHEM_2 DEFINE MKF_PORT_BAT_SBDS_DEV_CHEM_2
+ PORT_BAT_SBDS_DEV_CHEM_3 DEFINE MKF_PORT_BAT_SBDS_DEV_CHEM_3
+ PORT_BAT_SBDS_DEV_CHEM_4 DEFINE MKF_PORT_BAT_SBDS_DEV_CHEM_4
+ PORT_BAT_SBDS_DEV_CHEM_5 DEFINE MKF_PORT_BAT_SBDS_DEV_CHEM_5
+
+ DESIGN_CAPACITY_MULTIPLIER_1 DEFINE MKF_DESIGN_CAPACITY_MULTIPLIER_1
+ DESIGN_CAPACITY_MULTIPLIER_2 DEFINE MKF_DESIGN_CAPACITY_MULTIPLIER_2
+ DESIGN_CAPACITY_MULTIPLIER_3 DEFINE MKF_DESIGN_CAPACITY_MULTIPLIER_3
+ DESIGN_CAPACITY_MULTIPLIER_4 DEFINE MKF_DESIGN_CAPACITY_MULTIPLIER_4
+ DESIGN_CAPACITY_MULTIPLIER_5 DEFINE MKF_DESIGN_CAPACITY_MULTIPLIER_5
+
+ OEM_SPECIFIC_1 DEFINE MKF_OEM_SPECIFIC_1
+ OEM_SPECIFIC_2 DEFINE MKF_OEM_SPECIFIC_2
+ OEM_SPECIFIC_3 DEFINE MKF_OEM_SPECIFIC_3
+ OEM_SPECIFIC_4 DEFINE MKF_OEM_SPECIFIC_4
+ OEM_SPECIFIC_5 DEFINE MKF_OEM_SPECIFIC_5
+ENDIF
+ENDIF
+
+;----------------------------------------------------------------------------
+; Structure Type 23: SYSTEM RESET INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; RESET_CAPABILITIES : Identifies the system reset capabilities for the system
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ RESET_CAPABILITIES = 00h
+
+;----------------------------------------------------------------------------
+; RESET_COUNT : Identifies the number of automatic system resets since
+; the last intentional reset
+; FFFFh -> Unknown
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ RESET_COUNT = 0FFFFh
+
+;----------------------------------------------------------------------------
+; RESET_LIMIT : Identifies the number of consecutive times the system
+; reset will be attempted
+; FFFFh -> Unknown
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ RESET_LIMIT = 0FFFFh
+
+;----------------------------------------------------------------------------
+; RESET_TIMER_INTERVAL : Identifies the number of minutes to use for the
+; watchdog timer. If the timer is not reset within this
+; interval, the system reset timeout will begin.
+; FFFFh -> Unknown
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ RESET_TIMER_INTERVAL = 0FFFFh
+
+;----------------------------------------------------------------------------
+; RESET_TIMEOUT : identifies the number of minutes before the reboot is
+; initiated. It is used after a system power cycle,
+; system reset(local or remote), and automatic system reset.
+; FFFFh -> Unknown
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ RESET_TIMEOUT = 0FFFFh
+
+;----------------------------------------------------------------------------
+; Structure Type 24: HARDWARE SECURITY INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 25: SYSTEM POWER CONTROLS INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; NEXT_SCHEDULED_POWERON_MONTH : Contains the BCD value of the month on
+; which the next scheduled power-on is to occur
+; in the range of 01h to 12h.
+; Note: Any date or time field in the structure whose value is outside of
+; the field's specified range does not contribute to the total-seconds count.
+; e.g. if the month field contains the value 0xFF the next power-on is
+; scheduled to fall within the next month, perhaps on a specific
+; day-of-month and time.
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ NEXT_SCHEDULED_POWERON_MONTH = 0FFh
+
+;----------------------------------------------------------------------------
+; NEXT_SCHEDULED_POWERON_DAY_OF_MONTH : Contains the BCD value of the day_of_month on
+; which the next scheduled power-on is to occur
+; in the range of 01h to 31h.
+; Note: Any date or time field in the structure whose value is outside of
+; the field's specified range does not contribute to the total-seconds count.
+; e.g. if the month field contains the value 0xFF the next power-on is
+; scheduled to fall within the next month, perhaps on a specific
+; day-of-month and time.
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ NEXT_SCHEDULED_POWERON_DAY_OF_MONTH = 0FFh
+
+;----------------------------------------------------------------------------
+; NEXT_SCHEDULED_POWERON_HOUR : Contains the BCD value of the hour on
+; which the next scheduled power-on is to occur
+; in the range of 00h to 23h.
+; Note: Any date or time field in the structure whose value is outside of
+; the field's specified range does not contribute to the total-seconds count.
+; e.g. if the month field contains the value 0xFF the next power-on is
+; scheduled to fall within the next month, perhaps on a specific
+; day-of-month and time.
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ NEXT_SCHEDULED_POWERON_HOUR = 0FFh
+
+;----------------------------------------------------------------------------
+; NEXT_SCHEDULED_POWERON_MINUTE : Contains the BCD value of the minute on
+; which the next scheduled power-on is to occur
+; in the range of 00h to 59h.
+; Note: Any date or time field in the structure whose value is outside of
+; the field's specified range does not contribute to the total-seconds count.
+; e.g. if the month field contains the value 0xFF the next power-on is
+; scheduled to fall within the next month, perhaps on a specific
+; day-of-month and time.
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ NEXT_SCHEDULED_POWERON_MINUTE = 0FFh
+
+;----------------------------------------------------------------------------
+; NEXT_SCHEDULED_POWERON_SECOND : Contains the BCD value of the second on
+; which the next scheduled power-on is to occur
+; in the range of 00h to 59h.
+; Note: Any date or time field in the structure whose value is outside of
+; the field's specified range does not contribute to the total-seconds count.
+; e.g. if the month field contains the value 0xFF the next power-on is
+; scheduled to fall within the next month, perhaps on a specific
+; day-of-month and time.
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ NEXT_SCHEDULED_POWERON_SECOND = 0FFh
+
+;----------------------------------------------------------------------------
+; Structure Type 26: VOLTAGE PROBE INFORMATION
+;----------------------------------------------------------------------------
+
+; Syntax:
+; VOLTAGE_PROBE_INFO_1 DEFINE <Voltage Probe String, Location
+; and status, Maximum Value,
+; Minimum Value, Resolution, Tolerance,
+; Accuracy, Oem Defined, Nominal Value>
+; * Voltage Probe String -> Identifies the descriptive information
+; about the probe or its location
+; e.g."LM78A"
+; * Location and Status -> Defines the probe's physical location
+; and status of the voltage monitored by this
+; voltage probe
+; * Maximum Value -> The max. voltage level readable by
+; this probe in millivolt 0x8000h -> Unknown
+; * Mimimum Value -> The Min. voltage level readable by
+; this probe in millivolt 0x8000h -> Unknown
+; * Resoltion -> The resolution for the probe's
+; reading in tenths of millivolt 0x8000h->Unknown
+; * Tolerance -> The tolerance for reading from this
+; probe, in +/- millivolts. 0x8000h->Unknown
+; * Accuracy -> The accuracy for reading from this
+; probe, in +/- 1/100th of a percent
+; 0x8000h->Unknown
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Value -> The nominal value for the probe's
+; reading in millivolts. 0x8000h -> Unknown
+; Note: Nominal Value field is valid only if structure length is more than 14h
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ NUMBER_OF_VOLTAGE_PROBE_ASSOCIATED_MGMT_DEV_1 = 1
+ NUMBER_OF_VOLTAGE_PROBE_ASSOCIATED_MGMT_DEV_2 = 2
+ NUMBER_OF_VOLTAGE_PROBE_ASSOCIATED_MGMT_DEV_3 = 3
+
+;!!PORT!!
+ VOLTAGE_PROBE_INFO_1_1 DEFINE <LM78A,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ VOLTAGE_PROBE_INFO_2_1 DEFINE <LM78B,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ VOLTAGE_PROBE_INFO_2_2 DEFINE <LM78B,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ VOLTAGE_PROBE_INFO_3_1 DEFINE <LM78C,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ VOLTAGE_PROBE_INFO_3_2 DEFINE <LM78C,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ VOLTAGE_PROBE_INFO_3_3 DEFINE <LM78C,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+
+;!!PORT!!
+ MANAGEMENT_DEV_VOLT_THRESHOLD_DATA_INFO_1_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_VOLT_THRESHOLD_DATA_INFO_2_1 DEFINE <07,08,08,0Ah,0Bh,0Ch>
+ MANAGEMENT_DEV_VOLT_THRESHOLD_DATA_INFO_2_2 DEFINE <0Dh,0Eh,0Fh,10h,11h,12h>
+ MANAGEMENT_DEV_VOLT_THRESHOLD_DATA_INFO_3_1 DEFINE <13h,14h,15h,16h,17h,18h>
+ MANAGEMENT_DEV_VOLT_THRESHOLD_DATA_INFO_3_2 DEFINE <19h,02,03,04,05,06>
+ MANAGEMENT_DEV_VOLT_THRESHOLD_DATA_INFO_3_3 DEFINE <01,02,03,04,05,06>
+
+;----------------------------------------------------------------------------
+; Structure Type 27: COOLING DEVICE INFORMATION
+;----------------------------------------------------------------------------
+;Syntax:
+; COOLING_DEVICE_INFO_1 DEFINE <Device type and status, Cooling unit group,
+; Oem Defined, Nominal Value>
+; * Device type and Status -> Identifies the cooling device type
+; and status
+; * Cooling Unit Group -> Identifies the cooling unit group
+; to which this cooling device is associated.
+; Multiple cooling devices in the same cooling
+; unit implies a redudant configuration.
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Value -> The nominal value for the cooling device
+; speed in RPM. 0x8000h -> Unknown
+;Note: Nominal Value field is valid only if structure length is more than 0Ch
+;----------------------------------------------------------------------------
+; NUMBER_OF_COOLING_DEVICE_ASSOCIATED_TEMP_PROBE_1_1 = 2
+; This means Management Device number 1 and Temperature Probe Number 1 has
+; 2 cooling Device associated.
+
+;!!PORT!!
+ NUMBER_OF_COOLING_DEVICE_ASSOCIATED_TEMP_PROBE_1_1 = 2
+ NUMBER_OF_COOLING_DEVICE_ASSOCIATED_TEMP_PROBE_2_1 = 1
+ NUMBER_OF_COOLING_DEVICE_ASSOCIATED_TEMP_PROBE_2_2 = 1
+ NUMBER_OF_COOLING_DEVICE_ASSOCIATED_TEMP_PROBE_3_1 = 1
+ NUMBER_OF_COOLING_DEVICE_ASSOCIATED_TEMP_PROBE_3_2 = 1
+ NUMBER_OF_COOLING_DEVICE_ASSOCIATED_TEMP_PROBE_3_3 = 1
+
+;----------------------------------------------------------------------------
+; Syntax :
+; COOLING_DEVICE_INFO_1_1_1 DEFINE <012h,01h,00000000h,08000h,> No Description string
+; COOLING_DEVICE_INFO_1_1_1 DEFINE <012h,01h,00000000h,08000h,Cooling Dev 1> With Description string
+; This means Cooling device info_1st Mangement Device_1st Temperature Probe_1st Cooling Device
+; COOLING_DEVICE_INFO_1_1_2 DEFINE <012h,01h,00000000h,08000h>
+; This means Cooling Device Info_1st Mangement Device_1st Temperature Probe_2nd Cooling Device no.2
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ COOLING_DEVICE_INFO_1_1_1 DEFINE <012h,01h,00000000h,08000h,Cooling Dev 1>
+ COOLING_DEVICE_INFO_1_1_2 DEFINE <012h,01h,00000000h,08000h,> ;No Description string
+ COOLING_DEVICE_INFO_2_1_1 DEFINE <012h,01h,00000000h,08000h,Cooling Dev 2>
+ COOLING_DEVICE_INFO_2_2_1 DEFINE <012h,01h,00000000h,08000h,Cooling Dev 3>
+ COOLING_DEVICE_INFO_3_1_1 DEFINE <012h,01h,00000000h,08000h,Cooling Dev 4>
+ COOLING_DEVICE_INFO_3_2_1 DEFINE <012h,01h,00000000h,08000h,Cooling Dev 5>
+ COOLING_DEVICE_INFO_3_3_1 DEFINE <012h,01h,00000000h,08000h,Cooling Dev 6>
+
+;----------------------------------------------------------------------------
+; Syntax :
+; MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_1_1_1 DEFINE <01,02,03,04,05,06>
+; This means Managemnt Device Info 1_Temperature Probe 1_Cooling Device Threshold 1
+; MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_1_1_2 DEFINE <01,02,03,04,05,06>
+; This means Managemnt Device Info 1_Temperature Probe 1_Cooling Device Threshold 2
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_1_1_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_1_1_2 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_2_1_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_2_2_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_3_1_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_3_2_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_COOL_THRESHOLD_DATA_INFO_3_3_1 DEFINE <01,02,03,04,05,06>
+
+;----------------------------------------------------------------------------
+; Structure Type 28: TEMPERATURE PROBE INFORMATION
+;----------------------------------------------------------------------------
+;
+; Syntax:
+; TEMPERATURE_PROBE_INFO_1 DEFINE <Tempature Probe String, Location
+; and status, Maximum Value,
+; Minimum Value, Resolution, Tolerance,
+; Accuracy, Oem Defined, Nominal Value>
+; * Voltage Probe String -> Identifies the descriptive information
+; about the probe or its location
+; e.g."LM78A"
+; * Location and Status -> Defines the probe's physical location
+; and status of the tempature monitored by this
+; tempature probe
+; * Maximum Value -> The max. tempature readable by
+; this probe in 1/10th degree C. 0x8000h -> Unknown
+; * Mimimum Value -> The Min. tempature readable by
+; this probe in 1/10th degree C. 0x8000h -> Unknown
+; * Resoltion -> The resolution for the probe's
+; reading in 1/1000th degree C. 0x8000h->Unknown
+; * Tolerance -> The tolerance for reading from this
+; probe, in +/- 1/10th degree C.0x8000h->Unknown
+; * Accuracy -> The accuracy for reading from this
+; probe, in +/- 1/100th of a percent
+; 0x8000h->Unknown
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Value -> The nominal value for the probe's
+; reading in 1/10th degree C. 0x8000h -> Unknown
+; Note: Nominal Value field is valid only if structure length is more than 14h
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ NUMBER_OF_TEMPERATURE_PROBE_ASSOCIATED_MGMT_DEV_1 = 1
+ NUMBER_OF_TEMPERATURE_PROBE_ASSOCIATED_MGMT_DEV_2 = 2
+ NUMBER_OF_TEMPERATURE_PROBE_ASSOCIATED_MGMT_DEV_3 = 3
+
+;!!PORT!!
+ TEMPERATURE_PROBE_INFO_1_1 DEFINE <LM78A,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ TEMPERATURE_PROBE_INFO_2_1 DEFINE <LM78B,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ TEMPERATURE_PROBE_INFO_2_2 DEFINE <LM78B,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+
+;!!PORT!!
+ TEMPERATURE_PROBE_INFO_3_1 DEFINE <LM78C,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ TEMPERATURE_PROBE_INFO_3_2 DEFINE <LM78C,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ TEMPERATURE_PROBE_INFO_3_3 DEFINE <LM78C,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+
+;!!PORT!!
+ MANAGEMENT_DEV_TEMP_THRESHOLD_DATA_INFO_1_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_TEMP_THRESHOLD_DATA_INFO_2_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_TEMP_THRESHOLD_DATA_INFO_2_2 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_TEMP_THRESHOLD_DATA_INFO_3_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_TEMP_THRESHOLD_DATA_INFO_3_2 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_TEMP_THRESHOLD_DATA_INFO_3_3 DEFINE <01,02,03,04,05,06>
+
+;----------------------------------------------------------------------------
+; Structure Type 29: ELECTRICAL PROBE INFORMATION
+;----------------------------------------------------------------------------
+;
+; Syntax :
+; ELECTRICAL_PROBE_INFO_1 <Electrical Probe String, Location and status, Maximum Value, Minimum Value,
+; Resolution, Tolerance, Accuracy, Oem Defined, Nominal Value>
+; * Electrical Probe String -> Identifies the descriptive information about the probe or its location.
+; e.g."ABC"
+; * Location and Status -> Defines the probe's physical location and status of the current
+; monitored by this electrical probe
+; * Maximum Value -> The max. current readable by this probe in milliamps. 0x8000h -> Unknown
+; * Mimimum Value -> The Min. current readable by this probe in milliamps. 0x8000h -> Unknown
+; * Resoltion -> The resolution for the probe's reading in thenths of a milliamps.
+; 0x8000h->Unknown
+; * Tolerance -> The tolerance for reading from this probe, in +/- milliamps.
+; 0x8000h->Unknown
+; * Accuracy -> The accuracy for reading from this probe, in +/- 1/100th of a percent.
+; 0x8000h->Unknown
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Value -> The nominal value for the probe's reading in milliamps.
+; 0x8000h -> Unknown
+; Note: Nominal Value field is valid only if structure length is more than 14h
+;----------------------------------------------------------------------------
+;!!PORT!!
+ NUMBER_OF_ELECTRICAL_PROBE_ASSOCIATED_MGMT_DEV_1 = 1
+ NUMBER_OF_ELECTRICAL_PROBE_ASSOCIATED_MGMT_DEV_2 = 2
+ NUMBER_OF_ELECTRICAL_PROBE_ASSOCIATED_MGMT_DEV_3 = 3
+
+;!!PORT!!
+ ELECTRICAL_PROBE_INFO_1_1 DEFINE <ABC,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ ELECTRICAL_PROBE_INFO_2_1 DEFINE <DEF,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ ELECTRICAL_PROBE_INFO_2_2 DEFINE <GHI,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ ELECTRICAL_PROBE_INFO_3_1 DEFINE <ABC,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ ELECTRICAL_PROBE_INFO_3_2 DEFINE <DEF,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ ELECTRICAL_PROBE_INFO_3_3 DEFINE <GHI,0,08000h,08000h,08000h,08000h,08000h,0,08000h>
+
+;!!PORT!!
+ MANAGEMENT_DEV_ELEC_THRESHOLD_DATA_INFO_1_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_ELEC_THRESHOLD_DATA_INFO_2_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_ELEC_THRESHOLD_DATA_INFO_2_2 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_ELEC_THRESHOLD_DATA_INFO_3_1 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_ELEC_THRESHOLD_DATA_INFO_3_2 DEFINE <01,02,03,04,05,06>
+ MANAGEMENT_DEV_ELEC_THRESHOLD_DATA_INFO_3_3 DEFINE <01,02,03,04,05,06>
+
+;----------------------------------------------------------------------------
+; Structure Type 30: OUT-OF-BAND REMOTE ACCESS INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 32: SYSTEM BOOT INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 33: 64-BIT MEMORY ERROR INFORMATION
+;----------------------------------------------------------------------------
+; Note: For more detail refer TYPE 18 (MEMORY ERROR INFORMATION) in this
+; file and SMB.EQU
+; In Case of 64 Bit Memory Error support following 2 fields are changed to Qword
+;----------------------------------------------------------------------------
+;!!PORT!!
+ MEM_ARR_ERR_ADD equ 8000000000000000h
+ DEV_ERR_ADD equ 8000000000000000h
+
+;----------------------------------------------------------------------------
+; Structure Type 34: MANAGEMENT DEVICE INFORMATION
+;----------------------------------------------------------------------------
+; * Device String -> Identifies string information about device
+; * Device Type -> Identifies the Device Type, for
+; more detail search for Management
+; Device Type,refer SMB.EQU
+; * Device Address -> Defines Device Address.
+; * Device Address Type -> Identifies the Address Type, for
+; more detail search for Management
+; Device Type Address, refer SMB.EQU
+;----------------------------------------------------------------------------
+;!!PORT!!
+ MANAGEMENT_DEVICE_STRING_1 DEFINE <LM78-1>
+ MANAGEMENT_DEVICE_TYPE_1 DEFINE <MGMT_DEVICE_TYPE_LM78>
+ MANAGEMENT_DEVICE_ADDR_1 = 00000000h
+ MANAGEMENT_DEVICE_ADDR_TYPE_1 DEFINE <MGMT_DEVICE_ADDRESS_TYPE_IO_PORT>
+
+ MANAGEMENT_DEVICE_STRING_2 DEFINE <LM78-2>
+ MANAGEMENT_DEVICE_TYPE_2 DEFINE <MGMT_DEVICE_TYPE_LM78>
+ MANAGEMENT_DEVICE_ADDR_2 = 00000000h
+ MANAGEMENT_DEVICE_ADDR_TYPE_2 DEFINE <MGMT_DEVICE_ADDRESS_TYPE_IO_PORT>
+
+ MANAGEMENT_DEVICE_STRING_3 DEFINE <LM75-0>
+ MANAGEMENT_DEVICE_TYPE_3 DEFINE <MGMT_DEVICE_TYPE_LM75>
+ MANAGEMENT_DEVICE_ADDR_3 = 00000000h
+ MANAGEMENT_DEVICE_ADDR_TYPE_3 DEFINE <MGMT_DEVICE_ADDRESS_TYPE_IO_PORT>
+
+;----------------------------------------------------------------------------
+; Structure Type 36: MANAGEMENT DEVICE THRESHOLD DATA INFORMATION
+;----------------------------------------------------------------------------
+; Management Device Threshold Data structure is associated with,
+; Voltage Probe, Temprature Probe, Cooling Device and Electrical Probe.
+; Each probe and cooling device has it's own Threshold data values.
+; Depends on number of probes in the system, there will be equal number
+; of Threshold Data structures will be there.
+;----------------------------------------------------------------------------
+; Lower Threshold Non-critical -> The lower non-critical threshold for this component
+; Upper Threshold Non-critical -> The upper non-critical threshold for this component
+; Lower Threshold Critical -> The Lower critical threshold for this component
+; Upper Threshold Critical -> The Upper critical threshold for this component
+; Lower Threshold Non-Recoverable -> The Lower threshold non-recoverable for this component
+; Upper Threshold Non-Recoverable -> The Upper threshold non-recoverable for this component
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ LOWER_THRESHOLD_NON_CRITICAL_1 = 8000h
+ UPPER_THRESHOLD_NON_CRITICAL_1 = 8000h
+ LOWER_THRESHOLD_CRITICAL_1 = 8000h
+ UPPER_THRESHOLD_CRITICAL_1 = 8000h
+ LOWER_THRESHOLD_NON_RECOVERABLE_1 = 8000h
+ UPPER_THRESHOLD_NON_RECOVERABLE_1 = 8000h
+
+ LOWER_THRESHOLD_NON_CRITICAL_2 = 8000h
+ UPPER_THRESHOLD_NON_CRITICAL_2 = 8000h
+ LOWER_THRESHOLD_CRITICAL_2 = 8000h
+ UPPER_THRESHOLD_CRITICAL_2 = 8000h
+ LOWER_THRESHOLD_NON_RECOVERABLE_2 = 8000h
+ UPPER_THRESHOLD_NON_RECOVERABLE_2 = 8000h
+
+ LOWER_THRESHOLD_NON_CRITICAL_3 = 8000h
+ UPPER_THRESHOLD_NON_CRITICAL_3 = 8000h
+ LOWER_THRESHOLD_CRITICAL_3 = 8000h
+ UPPER_THRESHOLD_CRITICAL_3 = 8000h
+ LOWER_THRESHOLD_NON_RECOVERABLE_3 = 8000h
+ UPPER_THRESHOLD_NON_RECOVERABLE_3 = 8000h
+
+ LOWER_THRESHOLD_NON_CRITICAL_4 = 8000h
+ UPPER_THRESHOLD_NON_CRITICAL_4 = 8000h
+ LOWER_THRESHOLD_CRITICAL_4 = 8000h
+ UPPER_THRESHOLD_CRITICAL_4 = 8000h
+ LOWER_THRESHOLD_NON_RECOVERABLE_4 = 8000h
+ UPPER_THRESHOLD_NON_RECOVERABLE_4 = 8000h
+
+;----------------------------------------------------------------------------
+; Structure Type 37: MEMORY CHANNEL INFORMATION STRUCTURE
+;----------------------------------------------------------------------------
+;!!PORT!!
+
+ CHANNEL_1_TYPE = 03h
+ MAX_CHANNEL_1_LOAD = 32
+ NUMBER_OF_MEMORY_DEVICES_IN_CHANNEL_1 = 02
+
+ CHANNEL_2_TYPE = 03h
+ MAX_CHANNEL_2_LOAD = 32
+ NUMBER_OF_MEMORY_DEVICES_IN_CHANNEL_2 = 02
+
+;----------------------------------------------------------------------------
+; Structure Type 38: IPMI DEVICE INFORMATION
+;----------------------------------------------------------------------------
+; Identifies the base address (either memory-mapped or I/O) of the BMC.
+; If the least-significant bit of the field is 1, the address is in I/O space;
+; otherwise, the address is memory-mapped. Refer IPMI Interface Specification.
+
+;!!PORT!!
+
+ IPMI_BASE_ADDRESS_LO = 00000000h
+ IPMI_BASE_ADDRESS_HI = 00000000h
+
+;----------------------------------------------------------------------------
+; Structure Type 39: SYSTEM POWER SUPPLY
+;----------------------------------------------------------------------------
+; Syntax:
+; * PWR_SUPPLY_UNIT_GROUP_X -> Identifies the power unit group to which
+; this power supply is associated
+; * PWR_SUPPLY_LOCATION_X -> String identifies the location of the
+; power supply
+; * PWR_SUPPLY_DEVICE_NAME_X -> String identifies the name of the power
+; supply
+; * PWR_SUPPLY_MANUFACTURER_X -> String identifies the name of the company
+; that manufacturered the power supply
+; * PWR_SUPPLY_SERIAL_NUMBER_X -> String identifies the serial number of
+; the power supply
+; * PWR_SUPPLY_ASSET_TAG_NUMBER_X -> String identifies the asset tag of
+; the power supply
+; * PWR_SUPPLY_MODEL_PART_NUMBER_X -> String identifies the OEM Part Order
+; number of the power supply
+; * PWR_SUPPLY_REVISION_LEVEL_X -> Power supply revision string
+; * PWR_SUPPLY_MAX_POWER_CAPACITY_X -> Maximum sustained power output in Watts
+; Set to 0x8000 if unknown
+; * PWR_SUPPLY_CHARACTERISTICS_X -> Characteristics of the power supply
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ POWER_SUPPLY_UNIT_GROUP_1 = 1
+ POWER_SUPPLY_LOCATION_1 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_DEVICE_NAME_1 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_MANUFACTURER_1 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_SERIAL_NUMBER_1 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_ASSET_TAG_NUMBER_1 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_MODEL_PART_NUMBER_1 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_REVISION_LEVEL_1 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_MAX_POWER_CAPACITY_1 = 8000h
+ POWER_SUPPLY_CHARACTERISTICS_1 = 11A2h
+
+ POWER_SUPPLY_UNIT_GROUP_2 = 2
+ POWER_SUPPLY_LOCATION_2 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_DEVICE_NAME_2 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_MANUFACTURER_2 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_SERIAL_NUMBER_2 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_ASSET_TAG_NUMBER_2 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_MODEL_PART_NUMBER_2 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_REVISION_LEVEL_2 DEFINE <To Be Filled By O.E.M.>
+ POWER_SUPPLY_MAX_POWER_CAPACITY_2 = 8000h
+ POWER_SUPPLY_CHARACTERISTICS_2 = 11A2h
+
+;----------------------------------------------------------------------------
+; Type 39 - Associated VOLTAGE PROBE Type 26
+;----------------------------------------------------------------------------
+; Syntax:
+; VOLTAGE_PROBE_39_1 DEFINE <Present, Voltage Probe String, Location
+; and status, Maximum Value,
+; Minimum Value, Resolution, Tolerance,
+; Accuracy, Oem Defined, Nominal Value>
+; * Present -> 0 = Type 39 does not have Input Voltage Probe
+; -> 1 = Type 39 has Input Voltage Probe
+;
+; Followings are only valid when "Present = 1"
+;
+; * Voltage Probe String -> Identifies the descriptive information
+; about the probe or its location
+; e.g."LM78A"
+; * Location and Status -> Defines the probe's physical location
+; and status of the voltage monitored by this
+; voltage probe
+; * Maximum Value -> The max. voltage level readable by
+; this probe in millivolt 0x8000h -> Unknown
+; * Mimimum Value -> The Min. voltage level readable by
+; this probe in millivolt 0x8000h -> Unknown
+; * Resoltion -> The resolution for the probe's
+; reading in tenths of millivolt 0x8000h->Unknown
+; * Tolerance -> The tolerance for reading from this
+; probe, in +/- millivolts. 0x8000h->Unknown
+; * Accuracy -> The accuracy for reading from this
+; probe, in +/- 1/100th of a percent
+; 0x8000h->Unknown
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Value -> The nominal value for the probe's
+; reading in millivolts. 0x8000h -> Unknown
+;
+; Note: Nominal Value field is valid only if structure length is more than 14h
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ VOLTAGE_PROBE_39_1 DEFINE <1,LM78A,6Ah,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ VOLTAGE_PROBE_39_2 DEFINE <0,LM78B,6Ah,08000h,08000h,08000h,08000h,08000h,0,08000h>
+
+;----------------------------------------------------------------------------
+; Type 39 - Associated COOLING DEVICE Type 27
+;----------------------------------------------------------------------------
+;Syntax:
+; COOLING_DEVICE_39_1 DEFINE <Present, Device type and status, Cooling unit group,
+; Oem Defined, Nominal Value>
+; * Present -> 0 = Type 39 does not have Cooling Device
+; -> 1 = Type 39 has Cooling Device
+;
+; Followings are only valid when "Present = 1"
+;
+; * Device type and Status -> Identifies the cooling device type
+; and status
+; * Cooling Unit Group -> Identifies the cooling unit group
+; to which this cooling device is associated.
+; Multiple cooling devices in the same cooling
+; unit implies a redudant configuration.
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Speed -> The nominal speed for the cooling device
+; speed in RPM. 0x8000h -> Unknown
+; * Description -> Descriptive information about the cooling device
+;
+;Note: Nominal Value field is valid only if structure length is more than 0Ch
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ COOLING_DEVICE_39_1 DEFINE <1,67h,01h,00000000h,08000h,Cooling Dev 1>
+ COOLING_DEVICE_39_2 DEFINE <0,67h,01h,00000000h,08000h,Cooling Dev 2>
+
+;----------------------------------------------------------------------------
+; Type 39 - Associated Structure Type 28: TEMPERATURE PROBE INFORMATION
+;----------------------------------------------------------------------------
+; Syntax:
+; TEMPERATURE_PROBE_39_1 DEFINE <Tempature Probe String, Location
+; and status, Maximum Value,
+; Minimum Value, Resolution, Tolerance,
+; Accuracy, Oem Defined, Nominal Value>
+; * Present -> 0 = Type 39/27 does not have Temperature Probe
+; -> 1 = Type 39/27 has Temperature Probe
+;
+; Followings are only valid when "Present = 1"
+;
+; * Voltage Probe String -> Identifies the descriptive information
+; about the probe or its location
+; e.g."LM78A"
+; * Location and Status -> Defines the probe's physical location
+; and status of the tempature monitored by this
+; tempature probe
+; * Maximum Value -> The max. tempature readable by
+; this probe in 1/10th degree C. 0x8000h -> Unknown
+; * Mimimum Value -> The Min. tempature readable by
+; this probe in 1/10th degree C. 0x8000h -> Unknown
+; * Resoltion -> The resolution for the probe's
+; reading in 1/1000th degree C. 0x8000h->Unknown
+; * Tolerance -> The tolerance for reading from this
+; probe, in +/- 1/10th degree C.0x8000h->Unknown
+; * Accuracy -> The accuracy for reading from this
+; probe, in +/- 1/100th of a percent
+; 0x8000h->Unknown
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Value -> The nominal value for the probe's
+; reading in 1/10th degree C. 0x8000h -> Unknown
+; Note: Nominal Value field is valid only if structure length is more than 14h
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ TEMPERATURE_PROBE_39_1 DEFINE <1,LM78A,6Ah,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ TEMPERATURE_PROBE_39_2 DEFINE <0,LM78B,6Ah,08000h,08000h,08000h,08000h,08000h,0,08000h>
+
+;----------------------------------------------------------------------------
+; Type 39 - Associated Structure Type 29: ELECTRICAL PROBE INFORMATION
+;----------------------------------------------------------------------------
+; Syntax :
+; ELECTRICAL_PROBE_39_1 DEFINE <Present, Electrical Probe String, Location and status, Maximum Value,
+; Minimum Value, Resolution, Tolerance, Accuracy, Oem Defined, Nominal Value>
+; * Present -> 0 = Type 39 does not have Current Probe
+; -> 1 = Type 39 has Current Probe
+;
+; Followings are only valid when "Present = 1"
+;
+; * Electrical Probe String -> Identifies the descriptive information about the probe or its location.
+; e.g."ABC"
+; * Location and Status -> Defines the probe's physical location and status of the current
+; monitored by this electrical probe
+; * Maximum Value -> The max. current readable by this probe in milliamps. 0x8000h -> Unknown
+; * Mimimum Value -> The Min. current readable by this probe in milliamps. 0x8000h -> Unknown
+; * Resoltion -> The resolution for the probe's reading in thenths of a milliamps.
+; 0x8000h->Unknown
+; * Tolerance -> The tolerance for reading from this probe, in +/- milliamps.
+; 0x8000h->Unknown
+; * Accuracy -> The accuracy for reading from this probe, in +/- 1/100th of a percent.
+; 0x8000h->Unknown
+; * OEM-Defined -> Contains OEM- or BIOS Vaendor specific information
+; * Nominal Value -> The nominal value for the probe's reading in milliamps.
+; 0x8000h -> Unknown
+;
+; Note: Nominal Value field is valid only if structure length is more than 14h
+;----------------------------------------------------------------------------
+
+;!!PORT!!
+ ELECTRICAL_PROBE_39_1 DEFINE <1,ABC,6Ah,08000h,08000h,08000h,08000h,08000h,0,08000h>
+ ELECTRICAL_PROBE_39_2 DEFINE <0,DEF,6Ah,08000h,08000h,08000h,08000h,08000h,0,08000h>
+
+;----------------------------------------------------------------------------
+; Structure Type 40: Additional Information
+;----------------------------------------------------------------------------
+; Provides additional information for handling unspecified enumerated values
+; and interim field updates in another structure.
+;
+; Syntax:
+; REF_TYPE_1 Structure Type for which additional
+; information is provided
+;
+; REF_TYPE_INSTANCE_1 Structure Type instance for which additional
+; information is provided
+;
+; REF_OFFSET_1 Offset of the field within the structure
+; referenced above for which additional
+; information is provided
+;
+; USE_STRING_1 0 = String is not used, 1 = String is used
+;
+; STRING_1 When USE_STRING_1 = 1, specify string to be
+; associated with the field referenced above
+;
+; VALUE_1 Enumerated value or updated field content
+;
+;----------------------------------------------------------------------------
+;!!PORT!!
+
+ REF_TYPE_1 = 10
+ REF_TYPE_INSTANCE_1 = 1
+ REF_OFFSET_1 = 1
+ USE_STRING_1 = 1
+ STRING_1 DEFINE <To Be Filled By O.E.M. 1>
+ VALUE_1 = 0
+
+ REF_TYPE_2 = 1
+ REF_TYPE_INSTANCE_2 = 1
+ REF_OFFSET_2 = 15
+ USE_STRING_2 = 0
+ STRING_2 DEFINE <To Be Filled By O.E.M. 2>
+ VALUE_2 = 30
+
+ REF_TYPE_3 = 7
+ REF_TYPE_INSTANCE_3 = 2
+ REF_OFFSET_3 = 1
+ USE_STRING_3 = 1
+ STRING_3 DEFINE <To Be Filled By O.E.M. 3>
+ VALUE_3 = 0
+
+ REF_TYPE_4 = 1
+ REF_TYPE_INSTANCE_4 = 1
+ REF_OFFSET_4 = 1
+ USE_STRING_4 = 1
+ STRING_4 DEFINE <To Be Filled By O.E.M.>
+ VALUE_4 = 0
+
+;----------------------------------------------------------------------------
+; Structure Type 41: Onboard Devices Extended Information
+;----------------------------------------------------------------------------
+; Defines the attributes of devices that are onboard (soldered onto) a system
+; element, usually the baseboard. In general, an entry in this table implies
+; that the BIOS has some level of control over the enabling of the associated
+; device for use by the system.
+;
+; NOTE: This structure replaces Onboard Device Information (Type 10) starting
+; with versiob 2.6 of the SMBIOS specification. Both Type 10 and 41 can
+; be implemented to allow existing SMBIOS browsers to properly display
+; the system's onboard devices information.
+;
+; Syntax:
+; ONBOARD_DEVICE_EXT_1 DEFINE <Enabled or Disabled, Onboard Device Type, Descrition String>
+; * Onboard device status -> Describes the status(enabled/disabled) of on board device
+; * On board device Type -> Video, Audio, SCSI etc...
+; For more detail search for On-board device
+; Type equates in structure Type 10, refer SMB.EQU
+; * Device Type Instance -> A unique value (within a given onboard device type) used
+; to indicate the order the device is designated by the system.
+; e.g. A system with two identical Ethernet NICs may designate
+; one NIC (with higher Bus/Device/Function=15/0/0) as the first
+; onboard NIC (instance 1) and the other NIC (with lower
+; Bus/Device/Function=3/0/0) as the second onboard NIC (instance 2)
+; * Description String -> Describes the on board device.
+; e.g."Video", "Audio" etc..
+;
+; SEGGRP_BUS_DEVFN_EXT_1 DEFINE <Segment Group Number, Bus Number, Device Function Number>
+; * Segment Group Number -> Segment Group Number defined in the PCI Firmware Spec.
+; * Bus Number -> Bus Number
+; * Device Function Number -> Device / Function Number
+;
+;----------------------------------------------------------------------------
+;!!PORT!!
+ ONBOARD_DEVICE_EXT_1 DEFINE <ENABLED, OBD_VIDEO, 1, Onboard IGD>
+ SEGGRP_BUS_DEVFN_EXT_1 DEFINE <0, 0, 10h>
+
+ ONBOARD_DEVICE_EXT_2 DEFINE <ENABLED, OBD_ETHERNET, 1, Onboard LAN>
+ SEGGRP_BUS_DEVFN_EXT_2 DEFINE <0, 0, 0C8h>
+
+ ONBOARD_DEVICE_EXT_3 DEFINE <ENABLED, OBD_OTHER, 1, Onboard 1394>
+ SEGGRP_BUS_DEVFN_EXT_3 DEFINE <0, 3, 0E2h>
+
+;----------------------------------------------------------------------------
+; Structure Type 5 : MEMORY CONTROLLER INFORMATION
+;----------------------------------------------------------------------------
+
+;----------------------------------------------------------------------------
+; Structure Type 6 : MEMORY MODULE INFORMATION
+;----------------------------------------------------------------------------
+; The following information is needed only if MEM_MODULE_INFO = Present
+; This structure (TYPE 6) is associated with MEMORY CONTROLLER Structure(TYPE 5)
+; Handle information of Type 6 is defined in TYPE 5 structure.
+; Syntax:
+; MEMORY_TYPE_1 DEFINE <Memory Type, Memory Type,...>
+; * Memory Module Type -> DIMM, SIMM, SDRAM etc...
+; Following describes Memory Module Type
+; supported. At any given time more than
+; one value can be selected. Select the
+; memory type list from the following
+; MM_TYPE_OTHER, MM_TYPE_UNKNOWN, MM_TYPE_STANDARD,
+; MM_TYPE_FAST_PAGE_MODE, MM_TYPE_EDO, MM_TYPE_PARITY, MM_TYPE_ECC,
+; MM_TYPE_SIMM, MM_TYPE_DIMM, MM_TYPE_BURST_EDO, MM_TYPE_SDRAM
+; for more detail search for Memory Module
+; Type equates in structure Type 6, refer SMB.EQU
+; This field is used in Memory Controller Structure
+; also. While porting, define the proper bit
+; field according to type of memory suppoted
+; on platform. This Bit-field is defined
+; above in TYPE 5 structure
+;
+; MEMORY_INFO_1 DEFINE <String, Bank Connection, Supported Speed,
+; Installed size, Enabled size, Bank connection>
+; * String -> Memory Module designator string e.g. "DIMM1"
+; * Bank connection -> RAS line information
+; for more detail refer search for Memory Module
+; Bank connection equate in SMB.EQU
+; * Supported Speed -> The speed of the memory module is defined
+; in unit of ns(nano second). If this field is
+; unknown, the field is set to 0
+; * Installed Size -> The installed size field identify the size
+; of memory module which is installed in the
+; socket. It is determined as under.
+; Bit0-6 : size(n) where 2**n is the size in MB.
+; 7Dh-> Not determinable(installed size only)
+; 7Eh-> Module is installed but not enabled
+; 7Fh-> Not installed
+; Bit 7-> defines the single bank or double bank connection
+; * Enabled Size -> Follow the same as installed size
+; MEMORY_ERR_1 DEFINE <0>
+; * Error Status -> Currently always define 0
+;----------------------------------------------------------------------------
+
+;!!NOTE!!
+; PORT NBSMBIOS.ASM for all the memory related structures.
+; Also note that type 5, 6 and Type 16, 17, 18, 19 and 20 are related
+; even though type 5, 6 are not required by the 2.3.1 spec.
+; Make sure that the number of Memory Modules defined below are equal to
+; NUMBER_OF_MEM_MODULE in SMBIOS.SDL
+
+;!!PORT!!
+ MEMORY_TYPE_1 DEFINE <MM_TYPE_SDRAM, MM_TYPE_DIMM>
+ MEMORY_INFO_1 DEFINE <DIMM0, RAS_1, RAS_2, 60, 512*1024*1024, 512*1024*1024, MM_SINGLE_BANK>
+ MEMORY_ERR_1 DEFINE <0>
+
+ MEMORY_TYPE_2 DEFINE <MM_TYPE_SDRAM, MM_TYPE_DIMM>
+ MEMORY_INFO_2 DEFINE <DIMM1, RAS_3, RAS_4, 60, 512*1024*1024, 512*1024*1024, MM_SINGLE_BANK>
+ MEMORY_ERR_2 DEFINE <0>
+
+ MEMORY_TYPE_3 DEFINE <MM_TYPE_SDRAM, MM_TYPE_DIMM>
+ MEMORY_INFO_3 DEFINE <DIMM2, RAS_5, RAS_6, 60, 512*1024*1024, 512*1024*1024, MM_SINGLE_BANK>
+ MEMORY_ERR_3 DEFINE <0>
+
+ MEMORY_TYPE_4 DEFINE <MM_TYPE_SDRAM, MM_TYPE_DIMM>
+ MEMORY_INFO_4 DEFINE <DIMM3, RAS_7, RAS_8, 60, 512*1024*1024, 512*1024*1024, MM_SINGLE_BANK>
+ MEMORY_ERR_4 DEFINE <0>
+
+ MEMORY_TYPE_5 DEFINE <MM_TYPE_SDRAM, MM_TYPE_DIMM>
+ MEMORY_INFO_5 DEFINE <DIMM4, RAS_9, RAS_10, 60, 512*1024*1024, 512*1024*1024, MM_SINGLE_BANK>
+ MEMORY_ERR_5 DEFINE <0>
+
+ MEMORY_TYPE_6 DEFINE <MM_TYPE_SDRAM, MM_TYPE_DIMM>
+ MEMORY_INFO_6 DEFINE <DIMM5, RAS_11, RAS_12, 60, 512*1024*1024, 512*1024*1024, MM_SINGLE_BANK>
+ MEMORY_ERR_6 DEFINE <0>
+
+;----------------------------------------------------------------------------
+;****************************************************************************
+;****************************************************************************
+;** **
+;** (C)Copyright 1985-2016, American Megatrends, Inc. **
+;** **
+;** All Rights Reserved. **
+;** **
+;** 5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093 **
+;** **
+;** Phone: (770)-246-8600 **
+;** **
+;****************************************************************************
+;****************************************************************************