]> git.proxmox.com Git - mirror_edk2.git/commitdiff
EmulatorPkg/PlatformSmbiosDxe/SmbiosTable.c: Convert to CRLF (dos text)
authorJordan Justen <jordan.l.justen@intel.com>
Fri, 4 Jul 2014 20:50:24 +0000 (20:50 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 4 Jul 2014 20:50:24 +0000 (20:50 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15631 6f19259b-4bc3-4df7-8a09-765794883524

EmulatorPkg/PlatformSmbiosDxe/SmbiosTable.c

index cda5efae048333e1c34f05028aa2ee6abdc0c085..ffb4879a76ebb5aedc647ec3b1e413c3cc9145ab 100644 (file)
-/** @file
-  Static SMBIOS Table for platform
-
-  Note SMBIOS 2.7.1 Required structures:
-    BIOS Information (Type 0)
-    System Information (Type 1)
-    System Enclosure (Type 3)
-    Processor Information (Type 4) - CPU Driver
-    Cache Information (Type 7) - For cache that is external to processor
-    System Slots (Type 9) - If system has slots
-    Physical Memory Array (Type 16) 
-    Memory Device (Type 17) - For each socketed system-memory Device
-    Memory Array Mapped Address (Type 19) - One per contiguous block per Physical Memroy Array
-    System Boot Information (Type 32)
-
-  Copyright (c) 2012, Apple Inc. All rights reserved.<BR>
-  This program and the accompanying materials
-  are licensed and made available under the terms and conditions of the BSD License
-  which accompanies this distribution.  The full text of the license may be found at
-  http://opensource.org/licenses/bsd-license.php
-
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <PiDxe.h>
-#include <IndustryStandard/SmBios.h>
-#include <Protocol/Smbios.h>
-#include <Library/SmbiosLib.h>
-
-
-SMBIOS_TABLE_TYPE0 gSmbiosType0Template = {
-  { EFI_SMBIOS_TYPE_BIOS_INFORMATION, sizeof (SMBIOS_TABLE_TYPE0), 0 },
-  1,                    // Vendor String
-  2,                    // BiosVersion String
-  0xE000,               // BiosSegment
-  3,                    // BiosReleaseDate String
-  0x7F,                 // BiosSize
-  {                     // BiosCharacteristics
-    0,    //  Reserved                          :2;  ///< Bits 0-1.
-    0,    //  Unknown                           :1;
-    0,    //  BiosCharacteristicsNotSupported   :1;
-    0,    //  IsaIsSupported                    :1;
-    0,    //  McaIsSupported                    :1;
-    0,    //  EisaIsSupported                   :1;
-    1,    //  PciIsSupported                    :1;
-    0,    //  PcmciaIsSupported                 :1;
-    0,    //  PlugAndPlayIsSupported            :1;
-    0,    //  ApmIsSupported                    :1;
-    1,    //  BiosIsUpgradable                  :1;
-    1,    //  BiosShadowingAllowed              :1;
-    0,    //  VlVesaIsSupported                 :1;
-    0,    //  EscdSupportIsAvailable            :1;
-    0,    //  BootFromCdIsSupported             :1;
-    1,    //  SelectableBootIsSupported         :1;
-    0,    //  RomBiosIsSocketed                 :1;
-    0,    //  BootFromPcmciaIsSupported         :1;
-    0,    //  EDDSpecificationIsSupported       :1;
-    0,    //  JapaneseNecFloppyIsSupported      :1;
-    0,    //  JapaneseToshibaFloppyIsSupported  :1;
-    0,    //  Floppy525_360IsSupported          :1;
-    0,    //  Floppy525_12IsSupported           :1;
-    0,    //  Floppy35_720IsSupported           :1;
-    0,    //  Floppy35_288IsSupported           :1;
-    0,    //  PrintScreenIsSupported            :1;
-    0,    //  Keyboard8042IsSupported           :1;
-    0,    //  SerialIsSupported                 :1;
-    0,    //  PrinterIsSupported                :1;
-    0,    //  CgaMonoIsSupported                :1;
-    0,    //  NecPc98                           :1;
-    0     //  ReservedForVendor                 :32; ///< Bits 32-63. Bits 32-47 reserved for BIOS vendor 
-                                                 ///< and bits 48-63 reserved for System Vendor. 
-  },           
-  {       // BIOSCharacteristicsExtensionBytes[]
-    0x81, //  AcpiIsSupported                   :1;
-          //  UsbLegacyIsSupported              :1;
-          //  AgpIsSupported                    :1;
-          //  I2OBootIsSupported                :1;
-          //  Ls120BootIsSupported              :1;
-          //  AtapiZipDriveBootIsSupported      :1;
-          //  Boot1394IsSupported               :1;
-          //  SmartBatteryIsSupported           :1;
-                  //  BIOSCharacteristicsExtensionBytes[1]
-    0x0a, //  BiosBootSpecIsSupported              :1;
-          //  FunctionKeyNetworkBootIsSupported    :1;
-          //  TargetContentDistributionEnabled     :1;
-          //  UefiSpecificationSupported           :1;
-          //  VirtualMachineSupported              :1;
-          //  ExtensionByte2Reserved               :3;
-  },
-  0x00,                    // SystemBiosMajorRelease
-  0x01,                    // SystemBiosMinorRelease
-  0xFF,                    // EmbeddedControllerFirmwareMajorRelease
-  0xFF,                    // EmbeddedControllerFirmwareMinorRelease
-};
-CHAR8 *gSmbiosType0Strings[] = {
-  "edk2.sourceforge.net",     // Vendor String
-  __TIME__,                   // BiosVersion String
-  __DATE__,                   // BiosReleaseDate String
-  NULL
-};
-
-SMBIOS_TABLE_TYPE1 gSmbiosType1Template = {
-  { EFI_SMBIOS_TYPE_SYSTEM_INFORMATION, sizeof (SMBIOS_TABLE_TYPE1), 0 },
-  1,    // Manufacturer String
-  2,    // ProductName String
-  3,    // Version String
-  4,    // SerialNumber String
-  { 0x25EF0280, 0xEC82, 0x42B0, { 0x8F, 0xB6, 0x10, 0xAD, 0xCC, 0xC6, 0x7C, 0x02 } },
-  SystemWakeupTypePowerSwitch,  
-  5,    // SKUNumber String
-  6,    // Family String
-};
-CHAR8  *gSmbiosType1Strings[] = {
-  "edk2.sourceforge.net",
-  "EmulatorPkg",
-  "1.0",
-  "System Serial#",
-  "System SKU#",
-  "edk2",
-  NULL 
-};
-
-SMBIOS_TABLE_TYPE2  gSmbiosType2Template = {
-  { EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION, sizeof (SMBIOS_TABLE_TYPE2), 0 },
-  1,    // Manufacturer String
-  2,    // ProductName String
-  3,    // Version String
-  4,    // SerialNumber String
-  5,    // AssetTag String
-  {     // FeatureFlag
-    1,    //  Motherboard           :1;
-    0,    //  RequiresDaughterCard  :1;
-    0,    //  Removable             :1;
-    0,    //  Replaceable           :1;
-    0,    //  HotSwappable          :1;
-    0,    //  Reserved              :3;
-  },
-  6,    // LocationInChassis String
-  0,                        // ChassisHandle;
-  BaseBoardTypeMotherBoard, // BoardType;            
-  0,                        // NumberOfContainedObjectHandles;
-  { 0 }                     // ContainedObjectHandles[1];
-};
-CHAR8  *gSmbiosType2Strings[] = {
-  "edk2.sourceforge.net",
-  "EmulatorPkg",
-  "1.0",
-  "Base Board Serial#",
-  "Base Board Asset Tag#",
-  "Part Component",
-  NULL  
-};
-
-SMBIOS_TABLE_TYPE3  gSmbiosType3Template = {
-  { EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE, sizeof (SMBIOS_TABLE_TYPE3), 0 },
-  1,                        // Manufacturer String
-  MiscChassisTypeLapTop,    // Type;
-  2,                        // Version String
-  3,                        // SerialNumber String
-  4,                        // AssetTag String
-  ChassisStateSafe,         // BootupState;           
-  ChassisStateSafe,         // PowerSupplyState;       
-  ChassisStateSafe,         // ThermalState;           
-  ChassisSecurityStatusNone,// SecurityStatus;         
-  { 0, 0, 0, 0 },           // OemDefined[4];
-  0,    // Height;
-  0,    // NumberofPowerCords;
-  0,    // ContainedElementCount;
-  0,    // ContainedElementRecordLength;
-  { 0 },    // ContainedElements[1];
-};
-CHAR8  *gSmbiosType3Strings[] = {
-  "edk2.sourceforge.net",
-  "EmulatorPkg",
-  "Chassis Board Serial#",
-  "Chassis Board Asset Tag#",
-  NULL  
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template1 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeNone,        // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeOther,                // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings1[] = {
-  "Mini DisplayPort",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template2 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeNone,        // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeFireWire,             // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings2[] = {
-  "FireWire 800",
-  NULL
-};
-
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template3 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeRJ45,        // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeNetworkPort,          // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings3[] = {
-  "Ethernet",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template4 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings4[] = {
-  "USB0",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template5 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings5[] = {
-  "USB1",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template6 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings6[] = {
-  "USB2",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template7 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings7[] = {
-  "USB3",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template8 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeHeadPhoneMiniJack, // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeAudioPort,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings8[] = {
-  "Audio Line In",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE8  gSmbiosType8Template9 = {
-  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },
-  0,                            // InternalReferenceDesignator String
-  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  1,                            // ExternalReferenceDesignator String
-  PortConnectorTypeHeadPhoneMiniJack, // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.
-  PortTypeAudioPort,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.
-};
-CHAR8  *gSmbiosType8Strings9[] = {
-  "Audio Line Out",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE9  gSmbiosType9Template = {
-  { EFI_SMBIOS_TYPE_SYSTEM_SLOTS, sizeof (SMBIOS_TABLE_TYPE9), 0 },
-  1,    // SlotDesignation String
-  SlotTypeOther,          // SlotType;                 ///< The enumeration value from MISC_SLOT_TYPE.
-  SlotDataBusWidthOther,  // SlotDataBusWidth;         ///< The enumeration value from MISC_SLOT_DATA_BUS_WIDTH.
-  SlotUsageAvailable,    // CurrentUsage;             ///< The enumeration value from MISC_SLOT_USAGE.
-  SlotLengthOther,    // SlotLength;               ///< The enumeration value from MISC_SLOT_LENGTH.
-  0,    // SlotID;
-  {    // SlotCharacteristics1;
-    1,  // CharacteristicsUnknown  :1;
-    0,  // Provides50Volts         :1;
-    0,  // Provides33Volts         :1;
-    0,  // SharedSlot              :1;
-    0,  // PcCard16Supported       :1;
-    0,  // CardBusSupported        :1;
-    0,  // ZoomVideoSupported      :1;
-    0,  // ModemRingResumeSupported:1;
-  },
-  {     // SlotCharacteristics2;
-    0,  // PmeSignalSupported      :1;
-    0,  // HotPlugDevicesSupported :1;
-    0,  // SmbusSignalSupported    :1;
-    0,  // Reserved                :5;  ///< Set to 0.
-  },
-  0,    // SegmentGroupNum;
-  0,    // BusNum;
-  0,    // DevFuncNum;
-};
-CHAR8  *gSmbiosType9Strings[] = {
-  "SD Card",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE11 gSmbiosType11Template = {
-  { EFI_SMBIOS_TYPE_OEM_STRINGS, sizeof (SMBIOS_TABLE_TYPE11), 0 },
-  1 // StringCount
-};
-CHAR8 *gSmbiosType11Strings[] = {
-  "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EmulatorPkg/",
-  NULL
-};
-
-
-SMBIOS_TABLE_TYPE12 gSmbiosType12Template = {
-  { EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS, sizeof (SMBIOS_TABLE_TYPE12), 0 },
-  1 // StringCount
-};
-CHAR8 *gSmbiosType12Strings[] = {
-  "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EmulatorPkg/EmulatorPkg.dsc",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE16 gSmbiosType16Template = {
-  { EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, sizeof (SMBIOS_TABLE_TYPE16), 0 },
-  MemoryArrayLocationSystemBoard, // Location;                       ///< The enumeration value from MEMORY_ARRAY_LOCATION.
-  MemoryArrayUseSystemMemory,     // Use;                            ///< The enumeration value from MEMORY_ARRAY_USE.
-  MemoryErrorCorrectionUnknown,   // MemoryErrorCorrection;          ///< The enumeration value from MEMORY_ERROR_CORRECTION.
-  0x80000000,                     // MaximumCapacity;
-  0xFFFE,                         // MemoryErrorInformationHandle;
-  1,                              // NumberOfMemoryDevices;
-  0x3fffffffffffffffULL,          // ExtendedMaximumCapacity;
-};
-
-SMBIOS_TABLE_TYPE17 gSmbiosType17Template = {
-  { EFI_SMBIOS_TYPE_MEMORY_DEVICE, sizeof (SMBIOS_TABLE_TYPE17), 0 },
-  0,          // MemoryArrayHandle;
-  0xFFFE,     // MemoryErrorInformationHandle;
-  0xFFFF,     // TotalWidth;
-  0xFFFF,     // DataWidth;
-  0xFFFF,     // Size;
-  MemoryFormFactorUnknown, // FormFactor;                     ///< The enumeration value from MEMORY_FORM_FACTOR.
-  0xff,       // DeviceSet;
-  1,          // DeviceLocator String
-  2,          // BankLocator String
-  MemoryTypeDram,         // MemoryType;                     ///< The enumeration value from MEMORY_DEVICE_TYPE.
-  {           // TypeDetail;
-    0,  // Reserved        :1;
-    0,  // Other           :1;
-    1,  // Unknown         :1;
-    0,  // FastPaged       :1;
-    0,  // StaticColumn    :1;
-    0,  // PseudoStatic    :1;
-    0,  // Rambus          :1;
-    0,  // Synchronous     :1;
-    0,  // Cmos            :1;
-    0,  // Edo             :1;
-    0,  // WindowDram      :1;
-    0,  // CacheDram       :1;
-    0,  // Nonvolatile     :1;
-    0,  // Registered      :1;
-    0,  // Unbuffered      :1;
-    0,  // Reserved1       :1;
-  },
-  0,          // Speed;
-  3,          // Manufacturer String
-  0,          // SerialNumber String
-  0,          // AssetTag String
-  0,          // PartNumber String
-  0,          // Attributes;
-  0,          // ExtendedSize;
-  0,          // ConfiguredMemoryClockSpeed;
-};
-CHAR8 *gSmbiosType17Strings[] = {
-  "OS Virtual Memory",
-  "malloc",
-  "OSV",
-  NULL
-};
-
-SMBIOS_TABLE_TYPE23 gSmbiosType23Template = {
-  { EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, sizeof (SMBIOS_TABLE_TYPE23), 0 },
-  0,  // Capabilities;
-  0,  // ResetCount;
-  0,  // ResetLimit;
-  0,  // TimerInterval;
-  0   // Timeout;
-};
-
-SMBIOS_TABLE_TYPE32 gSmbiosType32Template = {
-  { EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, sizeof (SMBIOS_TABLE_TYPE32), 0 },
-  { 0, 0, 0, 0, 0, 0 },         // Reserved[6];
-  BootInformationStatusNoError  // BootStatus
-};
-
-
-
-SMBIOS_TEMPLATE_ENTRY gSmbiosTemplate[] = {
-  { (SMBIOS_STRUCTURE *)&gSmbiosType0Template,   gSmbiosType0Strings  },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType1Template,   gSmbiosType1Strings  },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType2Template,   gSmbiosType2Strings  },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType3Template,   gSmbiosType3Strings  },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template1,  gSmbiosType8Strings1 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template2,  gSmbiosType8Strings2 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template3,  gSmbiosType8Strings3 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template4,  gSmbiosType8Strings4 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template5,  gSmbiosType8Strings5 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template6,  gSmbiosType8Strings6 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template7,  gSmbiosType8Strings7 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template8,  gSmbiosType8Strings8 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template9,  gSmbiosType8Strings9 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType9Template,   gSmbiosType9Strings  },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType11Template,  gSmbiosType11Strings },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType12Template,  gSmbiosType12Strings },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType16Template,  NULL                 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType17Template,  gSmbiosType17Strings },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType23Template,  NULL                 },
-  { (SMBIOS_STRUCTURE *)&gSmbiosType32Template,  NULL                 },
-  { NULL, NULL }
-};
+/** @file\r
+  Static SMBIOS Table for platform\r
+\r
+  Note SMBIOS 2.7.1 Required structures:\r
+    BIOS Information (Type 0)\r
+    System Information (Type 1)\r
+    System Enclosure (Type 3)\r
+    Processor Information (Type 4) - CPU Driver\r
+    Cache Information (Type 7) - For cache that is external to processor\r
+    System Slots (Type 9) - If system has slots\r
+    Physical Memory Array (Type 16) \r
+    Memory Device (Type 17) - For each socketed system-memory Device\r
+    Memory Array Mapped Address (Type 19) - One per contiguous block per Physical Memroy Array\r
+    System Boot Information (Type 32)\r
+\r
+  Copyright (c) 2012, Apple Inc. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#include <PiDxe.h>\r
+#include <IndustryStandard/SmBios.h>\r
+#include <Protocol/Smbios.h>\r
+#include <Library/SmbiosLib.h>\r
+\r
+\r
+SMBIOS_TABLE_TYPE0 gSmbiosType0Template = {\r
+  { EFI_SMBIOS_TYPE_BIOS_INFORMATION, sizeof (SMBIOS_TABLE_TYPE0), 0 },\r
+  1,                    // Vendor String\r
+  2,                    // BiosVersion String\r
+  0xE000,               // BiosSegment\r
+  3,                    // BiosReleaseDate String\r
+  0x7F,                 // BiosSize\r
+  {                     // BiosCharacteristics\r
+    0,    //  Reserved                          :2;  ///< Bits 0-1.\r
+    0,    //  Unknown                           :1;\r
+    0,    //  BiosCharacteristicsNotSupported   :1;\r
+    0,    //  IsaIsSupported                    :1;\r
+    0,    //  McaIsSupported                    :1;\r
+    0,    //  EisaIsSupported                   :1;\r
+    1,    //  PciIsSupported                    :1;\r
+    0,    //  PcmciaIsSupported                 :1;\r
+    0,    //  PlugAndPlayIsSupported            :1;\r
+    0,    //  ApmIsSupported                    :1;\r
+    1,    //  BiosIsUpgradable                  :1;\r
+    1,    //  BiosShadowingAllowed              :1;\r
+    0,    //  VlVesaIsSupported                 :1;\r
+    0,    //  EscdSupportIsAvailable            :1;\r
+    0,    //  BootFromCdIsSupported             :1;\r
+    1,    //  SelectableBootIsSupported         :1;\r
+    0,    //  RomBiosIsSocketed                 :1;\r
+    0,    //  BootFromPcmciaIsSupported         :1;\r
+    0,    //  EDDSpecificationIsSupported       :1;\r
+    0,    //  JapaneseNecFloppyIsSupported      :1;\r
+    0,    //  JapaneseToshibaFloppyIsSupported  :1;\r
+    0,    //  Floppy525_360IsSupported          :1;\r
+    0,    //  Floppy525_12IsSupported           :1;\r
+    0,    //  Floppy35_720IsSupported           :1;\r
+    0,    //  Floppy35_288IsSupported           :1;\r
+    0,    //  PrintScreenIsSupported            :1;\r
+    0,    //  Keyboard8042IsSupported           :1;\r
+    0,    //  SerialIsSupported                 :1;\r
+    0,    //  PrinterIsSupported                :1;\r
+    0,    //  CgaMonoIsSupported                :1;\r
+    0,    //  NecPc98                           :1;\r
+    0     //  ReservedForVendor                 :32; ///< Bits 32-63. Bits 32-47 reserved for BIOS vendor \r
+                                                 ///< and bits 48-63 reserved for System Vendor. \r
+  },           \r
+  {       // BIOSCharacteristicsExtensionBytes[]\r
+    0x81, //  AcpiIsSupported                   :1;\r
+          //  UsbLegacyIsSupported              :1;\r
+          //  AgpIsSupported                    :1;\r
+          //  I2OBootIsSupported                :1;\r
+          //  Ls120BootIsSupported              :1;\r
+          //  AtapiZipDriveBootIsSupported      :1;\r
+          //  Boot1394IsSupported               :1;\r
+          //  SmartBatteryIsSupported           :1;\r
+                  //  BIOSCharacteristicsExtensionBytes[1]\r
+    0x0a, //  BiosBootSpecIsSupported              :1;\r
+          //  FunctionKeyNetworkBootIsSupported    :1;\r
+          //  TargetContentDistributionEnabled     :1;\r
+          //  UefiSpecificationSupported           :1;\r
+          //  VirtualMachineSupported              :1;\r
+          //  ExtensionByte2Reserved               :3;\r
+  },\r
+  0x00,                    // SystemBiosMajorRelease\r
+  0x01,                    // SystemBiosMinorRelease\r
+  0xFF,                    // EmbeddedControllerFirmwareMajorRelease\r
+  0xFF,                    // EmbeddedControllerFirmwareMinorRelease\r
+};\r
+CHAR8 *gSmbiosType0Strings[] = {\r
+  "edk2.sourceforge.net",     // Vendor String\r
+  __TIME__,                   // BiosVersion String\r
+  __DATE__,                   // BiosReleaseDate String\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE1 gSmbiosType1Template = {\r
+  { EFI_SMBIOS_TYPE_SYSTEM_INFORMATION, sizeof (SMBIOS_TABLE_TYPE1), 0 },\r
+  1,    // Manufacturer String\r
+  2,    // ProductName String\r
+  3,    // Version String\r
+  4,    // SerialNumber String\r
+  { 0x25EF0280, 0xEC82, 0x42B0, { 0x8F, 0xB6, 0x10, 0xAD, 0xCC, 0xC6, 0x7C, 0x02 } },\r
+  SystemWakeupTypePowerSwitch,  \r
+  5,    // SKUNumber String\r
+  6,    // Family String\r
+};\r
+CHAR8  *gSmbiosType1Strings[] = {\r
+  "edk2.sourceforge.net",\r
+  "EmulatorPkg",\r
+  "1.0",\r
+  "System Serial#",\r
+  "System SKU#",\r
+  "edk2",\r
+  NULL \r
+};\r
+\r
+SMBIOS_TABLE_TYPE2  gSmbiosType2Template = {\r
+  { EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION, sizeof (SMBIOS_TABLE_TYPE2), 0 },\r
+  1,    // Manufacturer String\r
+  2,    // ProductName String\r
+  3,    // Version String\r
+  4,    // SerialNumber String\r
+  5,    // AssetTag String\r
+  {     // FeatureFlag\r
+    1,    //  Motherboard           :1;\r
+    0,    //  RequiresDaughterCard  :1;\r
+    0,    //  Removable             :1;\r
+    0,    //  Replaceable           :1;\r
+    0,    //  HotSwappable          :1;\r
+    0,    //  Reserved              :3;\r
+  },\r
+  6,    // LocationInChassis String\r
+  0,                        // ChassisHandle;\r
+  BaseBoardTypeMotherBoard, // BoardType;            \r
+  0,                        // NumberOfContainedObjectHandles;\r
+  { 0 }                     // ContainedObjectHandles[1];\r
+};\r
+CHAR8  *gSmbiosType2Strings[] = {\r
+  "edk2.sourceforge.net",\r
+  "EmulatorPkg",\r
+  "1.0",\r
+  "Base Board Serial#",\r
+  "Base Board Asset Tag#",\r
+  "Part Component",\r
+  NULL  \r
+};\r
+\r
+SMBIOS_TABLE_TYPE3  gSmbiosType3Template = {\r
+  { EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE, sizeof (SMBIOS_TABLE_TYPE3), 0 },\r
+  1,                        // Manufacturer String\r
+  MiscChassisTypeLapTop,    // Type;\r
+  2,                        // Version String\r
+  3,                        // SerialNumber String\r
+  4,                        // AssetTag String\r
+  ChassisStateSafe,         // BootupState;           \r
+  ChassisStateSafe,         // PowerSupplyState;       \r
+  ChassisStateSafe,         // ThermalState;           \r
+  ChassisSecurityStatusNone,// SecurityStatus;         \r
+  { 0, 0, 0, 0 },           // OemDefined[4];\r
+  0,    // Height;\r
+  0,    // NumberofPowerCords;\r
+  0,    // ContainedElementCount;\r
+  0,    // ContainedElementRecordLength;\r
+  { 0 },    // ContainedElements[1];\r
+};\r
+CHAR8  *gSmbiosType3Strings[] = {\r
+  "edk2.sourceforge.net",\r
+  "EmulatorPkg",\r
+  "Chassis Board Serial#",\r
+  "Chassis Board Asset Tag#",\r
+  NULL  \r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template1 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeOther,                // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings1[] = {\r
+  "Mini DisplayPort",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template2 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeFireWire,             // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings2[] = {\r
+  "FireWire 800",\r
+  NULL\r
+};\r
+\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template3 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeRJ45,        // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeNetworkPort,          // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings3[] = {\r
+  "Ethernet",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template4 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings4[] = {\r
+  "USB0",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template5 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings5[] = {\r
+  "USB1",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template6 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings6[] = {\r
+  "USB2",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template7 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeUsb,         // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeUsb,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings7[] = {\r
+  "USB3",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template8 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeHeadPhoneMiniJack, // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeAudioPort,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings8[] = {\r
+  "Audio Line In",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE8  gSmbiosType8Template9 = {\r
+  { EFI_SMBIOS_TYPE_PORT_CONNECTOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE8), 0 },\r
+  0,                            // InternalReferenceDesignator String\r
+  PortConnectorTypeNone,        // InternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  1,                            // ExternalReferenceDesignator String\r
+  PortConnectorTypeHeadPhoneMiniJack, // ExternalConnectorType;          ///< The enumeration value from MISC_PORT_CONNECTOR_TYPE.\r
+  PortTypeAudioPort,                  // PortType;                       ///< The enumeration value from MISC_PORT_TYPE.\r
+};\r
+CHAR8  *gSmbiosType8Strings9[] = {\r
+  "Audio Line Out",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE9  gSmbiosType9Template = {\r
+  { EFI_SMBIOS_TYPE_SYSTEM_SLOTS, sizeof (SMBIOS_TABLE_TYPE9), 0 },\r
+  1,    // SlotDesignation String\r
+  SlotTypeOther,          // SlotType;                 ///< The enumeration value from MISC_SLOT_TYPE.\r
+  SlotDataBusWidthOther,  // SlotDataBusWidth;         ///< The enumeration value from MISC_SLOT_DATA_BUS_WIDTH.\r
+  SlotUsageAvailable,    // CurrentUsage;             ///< The enumeration value from MISC_SLOT_USAGE.\r
+  SlotLengthOther,    // SlotLength;               ///< The enumeration value from MISC_SLOT_LENGTH.\r
+  0,    // SlotID;\r
+  {    // SlotCharacteristics1;\r
+    1,  // CharacteristicsUnknown  :1;\r
+    0,  // Provides50Volts         :1;\r
+    0,  // Provides33Volts         :1;\r
+    0,  // SharedSlot              :1;\r
+    0,  // PcCard16Supported       :1;\r
+    0,  // CardBusSupported        :1;\r
+    0,  // ZoomVideoSupported      :1;\r
+    0,  // ModemRingResumeSupported:1;\r
+  },\r
+  {     // SlotCharacteristics2;\r
+    0,  // PmeSignalSupported      :1;\r
+    0,  // HotPlugDevicesSupported :1;\r
+    0,  // SmbusSignalSupported    :1;\r
+    0,  // Reserved                :5;  ///< Set to 0.\r
+  },\r
+  0,    // SegmentGroupNum;\r
+  0,    // BusNum;\r
+  0,    // DevFuncNum;\r
+};\r
+CHAR8  *gSmbiosType9Strings[] = {\r
+  "SD Card",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE11 gSmbiosType11Template = {\r
+  { EFI_SMBIOS_TYPE_OEM_STRINGS, sizeof (SMBIOS_TABLE_TYPE11), 0 },\r
+  1 // StringCount\r
+};\r
+CHAR8 *gSmbiosType11Strings[] = {\r
+  "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EmulatorPkg/",\r
+  NULL\r
+};\r
+\r
+\r
+SMBIOS_TABLE_TYPE12 gSmbiosType12Template = {\r
+  { EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS, sizeof (SMBIOS_TABLE_TYPE12), 0 },\r
+  1 // StringCount\r
+};\r
+CHAR8 *gSmbiosType12Strings[] = {\r
+  "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EmulatorPkg/EmulatorPkg.dsc",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE16 gSmbiosType16Template = {\r
+  { EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, sizeof (SMBIOS_TABLE_TYPE16), 0 },\r
+  MemoryArrayLocationSystemBoard, // Location;                       ///< The enumeration value from MEMORY_ARRAY_LOCATION.\r
+  MemoryArrayUseSystemMemory,     // Use;                            ///< The enumeration value from MEMORY_ARRAY_USE.\r
+  MemoryErrorCorrectionUnknown,   // MemoryErrorCorrection;          ///< The enumeration value from MEMORY_ERROR_CORRECTION.\r
+  0x80000000,                     // MaximumCapacity;\r
+  0xFFFE,                         // MemoryErrorInformationHandle;\r
+  1,                              // NumberOfMemoryDevices;\r
+  0x3fffffffffffffffULL,          // ExtendedMaximumCapacity;\r
+};\r
+\r
+SMBIOS_TABLE_TYPE17 gSmbiosType17Template = {\r
+  { EFI_SMBIOS_TYPE_MEMORY_DEVICE, sizeof (SMBIOS_TABLE_TYPE17), 0 },\r
+  0,          // MemoryArrayHandle;\r
+  0xFFFE,     // MemoryErrorInformationHandle;\r
+  0xFFFF,     // TotalWidth;\r
+  0xFFFF,     // DataWidth;\r
+  0xFFFF,     // Size;\r
+  MemoryFormFactorUnknown, // FormFactor;                     ///< The enumeration value from MEMORY_FORM_FACTOR.\r
+  0xff,       // DeviceSet;\r
+  1,          // DeviceLocator String\r
+  2,          // BankLocator String\r
+  MemoryTypeDram,         // MemoryType;                     ///< The enumeration value from MEMORY_DEVICE_TYPE.\r
+  {           // TypeDetail;\r
+    0,  // Reserved        :1;\r
+    0,  // Other           :1;\r
+    1,  // Unknown         :1;\r
+    0,  // FastPaged       :1;\r
+    0,  // StaticColumn    :1;\r
+    0,  // PseudoStatic    :1;\r
+    0,  // Rambus          :1;\r
+    0,  // Synchronous     :1;\r
+    0,  // Cmos            :1;\r
+    0,  // Edo             :1;\r
+    0,  // WindowDram      :1;\r
+    0,  // CacheDram       :1;\r
+    0,  // Nonvolatile     :1;\r
+    0,  // Registered      :1;\r
+    0,  // Unbuffered      :1;\r
+    0,  // Reserved1       :1;\r
+  },\r
+  0,          // Speed;\r
+  3,          // Manufacturer String\r
+  0,          // SerialNumber String\r
+  0,          // AssetTag String\r
+  0,          // PartNumber String\r
+  0,          // Attributes;\r
+  0,          // ExtendedSize;\r
+  0,          // ConfiguredMemoryClockSpeed;\r
+};\r
+CHAR8 *gSmbiosType17Strings[] = {\r
+  "OS Virtual Memory",\r
+  "malloc",\r
+  "OSV",\r
+  NULL\r
+};\r
+\r
+SMBIOS_TABLE_TYPE23 gSmbiosType23Template = {\r
+  { EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, sizeof (SMBIOS_TABLE_TYPE23), 0 },\r
+  0,  // Capabilities;\r
+  0,  // ResetCount;\r
+  0,  // ResetLimit;\r
+  0,  // TimerInterval;\r
+  0   // Timeout;\r
+};\r
+\r
+SMBIOS_TABLE_TYPE32 gSmbiosType32Template = {\r
+  { EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, sizeof (SMBIOS_TABLE_TYPE32), 0 },\r
+  { 0, 0, 0, 0, 0, 0 },         // Reserved[6];\r
+  BootInformationStatusNoError  // BootStatus\r
+};\r
+\r
+\r
+\r
+SMBIOS_TEMPLATE_ENTRY gSmbiosTemplate[] = {\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType0Template,   gSmbiosType0Strings  },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType1Template,   gSmbiosType1Strings  },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType2Template,   gSmbiosType2Strings  },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType3Template,   gSmbiosType3Strings  },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template1,  gSmbiosType8Strings1 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template2,  gSmbiosType8Strings2 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template3,  gSmbiosType8Strings3 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template4,  gSmbiosType8Strings4 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template5,  gSmbiosType8Strings5 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template6,  gSmbiosType8Strings6 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template7,  gSmbiosType8Strings7 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template8,  gSmbiosType8Strings8 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType8Template9,  gSmbiosType8Strings9 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType9Template,   gSmbiosType9Strings  },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType11Template,  gSmbiosType11Strings },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType12Template,  gSmbiosType12Strings },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType16Template,  NULL                 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType17Template,  gSmbiosType17Strings },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType23Template,  NULL                 },\r
+  { (SMBIOS_STRUCTURE *)&gSmbiosType32Template,  NULL                 },\r
+  { NULL, NULL }\r
+};\r