https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			443 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			443 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @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>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #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[] = {
 | |
|   "http://www.tianocore.org/edk2/",     // 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[] = {
 | |
|   "http://www.tianocore.org/edk2/",
 | |
|   "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[] = {
 | |
|   "http://www.tianocore.org/edk2/",
 | |
|   "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[] = {
 | |
|   "http://www.tianocore.org/edk2/",
 | |
|   "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://svn.code.sf.net/p/edk2/code/trunk/edk2/EmulatorPkg/",
 | |
|   NULL
 | |
| };
 | |
| 
 | |
| 
 | |
| SMBIOS_TABLE_TYPE12 gSmbiosType12Template = {
 | |
|   { EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS, sizeof (SMBIOS_TABLE_TYPE12), 0 },
 | |
|   1 // StringCount
 | |
| };
 | |
| CHAR8 *gSmbiosType12Strings[] = {
 | |
|   "https://svn.code.sf.net/p/edk2/code/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 }
 | |
| };
 |