/** @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.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include 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 } };