Hi Yi,
One comment regarding the patch and non-existing files (*dsc) and the like, targeted by this patch, relative to the current tianocore-edk2 and resulting uefi-next codebase. I don't think patches targeting future file(s) benefit us prior to their inclusion within either tianocore-edk2 or direct addition into uefi-next via topic branch patch. There are a number of ways this could create undue stress, in the future, when the patch has a sane codebase. IMHO, we should only create patches for current source in either existing uefi-next or tianocore-edk2 source code, not future source code that may change significantly between patch generation and its eventual application. I am using you previous patch, which does not include the future source code, not present in the current tianocore-edk2. I see no value in creating patches based on a possible source code revision; to many permutations possible prior to the patches application.
Thanks,
Steve
On 12 September 2013 10:09, Yi Li yi.li@linaro.org wrote:
From: liyi yi.li@linaro.org
Enable the smbios support for all ARMVE platforms.
SMBIOS driver will fill real h/w informations into UEFI image,and report them to OS,like x86 system.
Signed-off-by: liyi yi.li@linaro.org
ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c | 841 ++++++++++++++++++++ ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h | 53 ++ ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf | 64 ++ .../ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc | 6 + .../ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf | 6 + .../ArmVExpressPkg/ArmVExpress-CTA15x2.dsc | 6 + .../ArmVExpressPkg/ArmVExpress-CTA15x2.fdf | 6 + .../ArmVExpressPkg/ArmVExpress-CTA5s.dsc | 6 + .../ArmVExpressPkg/ArmVExpress-CTA5s.fdf | 6 + .../ArmVExpressPkg/ArmVExpress-CTA9x4.dsc | 6 + .../ArmVExpressPkg/ArmVExpress-CTA9x4.fdf | 6 + .../ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc | 6 + .../ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf | 6 + .../ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc | 8 +- .../ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf | 6 + .../ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc | 6 + .../ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf | 6 + 17 files changed, 1043 insertions(+), 1 deletion(-) create mode 100644 ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c create mode 100644 ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h create mode 100644 ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
diff --git a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c b/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c new file mode 100644 index 0000000..84a8acd --- /dev/null +++ b/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.c @@ -0,0 +1,841 @@ +/** @file
- This code responsible for constructing and updating SMBIOS table into
 system table. +Copyright (c) 2009 - 2013, Intel Corporation. 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.
+SMBIOS Driver.
+yi.li@linaro.org +Copyright (c) 2013 Linaro.org
- 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 "UpdateSmbios.h"
+/***********************************************************************
SMBIOS data definition TYPE0 BIOS Information+************************************************************************/
+SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = {
- { 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-63reserved 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 *mBIOSInfoType0Strings[] = {
- "edk2.sourceforge.net", // Vendor String
 - __TIME__, // BiosVersion String
 - __DATE__, // BiosReleaseDate String
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE1 System Information+************************************************************************/ +SMBIOS_TABLE_TYPE1 mSysInfoType1 = {
- { 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 *mSysInfoType1Strings[] = {
- "edk2.sourceforge.net",
 - "EmulatorPkg",
 - "1.0",
 - "System Serial#",
 - "System SKU#",
 - "edk2",
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE2 Board Information+************************************************************************/
+SMBIOS_TABLE_TYPE2 mBoardInfoType2 = {
- { 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 *mBoardInfoType2Strings[] = {
- "edk2.sourceforge.net",
 - "EmulatorPkg",
 - "1.0",
 - "Base Board Serial#",
 - "Base Board Asset Tag#",
 - "Part Component",
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE3 Enclosure Information+************************************************************************/
+SMBIOS_TABLE_TYPE3 mEnclosureInfoType3 = {
- { 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 *mEnclosureInfoType3Strings[] = {
- "edk2.sourceforge.net",
 - "EmulatorPkg",
 - "Chassis Board Serial#",
 - "Chassis Board Asset Tag#",
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE4 Processor Information+************************************************************************/
+SMBIOS_TABLE_TYPE4 mProcessorInfoType4 = {
- { EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, sizeof (SMBIOS_TABLE_TYPE4),
 0},
- 1, // Socket String
 - ProcessorOther, // ProcessorType; ///< The enumeration
 value from PROCESSOR_TYPE_DATA.
- ProcessorFamilyOther, // ProcessorFamily; ///< The enumeration
 value from PROCESSOR_FAMILY_DATA.
- 2, // ProcessorManufacture String;
 - { // ProcessorId;
 - { // PROCESSOR_SIGNATURE
 0, // ProcessorSteppingId:4;0, // ProcessorModel: 4;0, // ProcessorFamily: 4;0, // ProcessorType: 2;0, // ProcessorReserved1: 2;0, // ProcessorXModel: 4;0, // ProcessorXFamily: 8;0, // ProcessorReserved2: 4;- },
 - { // PROCESSOR_FEATURE_FLAGS
 0, // ProcessorFpu :1;0, // ProcessorVme :1;0, // ProcessorDe :1;0, // ProcessorPse :1;0, // ProcessorTsc :1;0, // ProcessorMsr :1;0, // ProcessorPae :1;0, // ProcessorMce :1;0, // ProcessorCx8 :1;0, // ProcessorApic :1;0, // ProcessorReserved1 :1;0, // ProcessorSep :1;0, // ProcessorMtrr :1;0, // ProcessorPge :1;0, // ProcessorMca :1;0, // ProcessorCmov :1;0, // ProcessorPat :1;0, // ProcessorPse36 :1;0, // ProcessorPsn :1;0, // ProcessorClfsh :1;0, // ProcessorReserved2 :1;0, // ProcessorDs :1;0, // ProcessorAcpi :1;0, // ProcessorMmx :1;0, // ProcessorFxsr :1;0, // ProcessorSse :1;0, // ProcessorSse2 :1;0, // ProcessorSs :1;0, // ProcessorReserved3 :1;0, // ProcessorTm :1;0, // ProcessorReserved4 :2;- }
 - },
 - 3, // ProcessorVersion String;
 - { // Voltage;
 - 1, // ProcessorVoltageCapability5V :1;
 - 1, // ProcessorVoltageCapability3_3V :1;
 - 1, // ProcessorVoltageCapability2_9V :1;
 - 0, // ProcessorVoltageCapabilityReserved :1; ///< Bit 3, must be
 zero.
- 0, // ProcessorVoltageReserved :3; ///< Bits 4-6, must be
 zero.
- 0 // ProcessorVoltageIndicateLegacy :1;
 - },
 - 0, // ExternalClock;
 - 0, // MaxSpeed;
 - 0, // CurrentSpeed;
 - 0x41, // Status;
 - ProcessorUpgradeOther, // ProcessorUpgrade; ///< The enumeration
 value from PROCESSOR_UPGRADE.
- 0, // L1CacheHandle;
 - 0, // L2CacheHandle;
 - 0, // L3CacheHandle;
 - 4, // SerialNumber;
 - 5, // AssetTag;
 - 6, // PartNumber;
 - 0, // CoreCount;
 - 0, // EnabledCoreCount;
 - 0, // ThreadCount;
 - 0, // ProcessorCharacteristics;
 - 0, // ProcessorFamily2;
 +};
+CHAR8 *mProcessorInfoType4Strings[] = {
- "Socket",
 - "edk2.svn.sourceforge.net",
 - "Emulated Processor",
 - "1.0",
 - "1.0",
 - "1.0",
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE7 Cache Information+************************************************************************/
+SMBIOS_TABLE_TYPE7 mCacheInfoType7 = {
- { EFI_SMBIOS_TYPE_CACHE_INFORMATION, sizeof (SMBIOS_TABLE_TYPE7), 0 },
 - 1, // SocketDesignation String
 - 0x018A, // Cache Configuration
 - 0x00FF, // Maximum Size 256k
 - 0x00FF, // Install Size 256k
 - { // Supported SRAM Type
 0, //Other :10, //Unknown :10, //NonBurst :11, //Burst :10, //PiplelineBurst :11, //Synchronous :10, //Asynchronous :10 //Reserved :9- },
 - { // Current SRAM Type
 0, //Other :10, //Unknown :10, //NonBurst :11, //Burst :10, //PiplelineBurst :11, //Synchronous :10, //Asynchronous :10 //Reserved :9- },
 - 0, // Cache Speed unknown
 - CacheErrorMultiBit, // Error Correction Multi
 - CacheTypeUnknown, // System Cache Type
 - CacheAssociativity2Way // Associativity
 +}; +CHAR8 *mCacheInfoType7Strings[] = {
- "Cache1",
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE9 System Slot Information+************************************************************************/
+SMBIOS_TABLE_TYPE9 mSysSlotInfoType9 = {
- { 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 *mSysSlotInfoType9Strings[] = {
- "SD Card",
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE16 Physical Memory ArrayInformation+************************************************************************/
+SMBIOS_TABLE_TYPE16 mPhyMemArrayInfoType16 = {
- { 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;
 +}; +CHAR8 *mPhyMemArrayInfoType16Strings[] = {
- NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE17 Memory Device Information+************************************************************************/
+SMBIOS_TABLE_TYPE17 mMemDevInfoType17 = {
- { 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 *mMemDevInfoType17Strings[] = {
- "OS Virtual Memory",
 - "malloc",
 - "OSV",
 - NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE19 Memory Array Mapped AddressInformation +************************************************************************/
+SMBIOS_TABLE_TYPE19 mMemArrMapInfoType19 = {
- { EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS, sizeof
 (SMBIOS_TABLE_TYPE19), 0 },
- 0x80000000, // StartingAddress;
 - 0xbfffffff, // EndingAddress;
 - 0, // MemoryArrayHandle;
 - 1, // PartitionWidth;
 - 0, // ExtendedStartingAddress;
 - 0, // ExtendedEndingAddress;
 +}; +CHAR8 *mMemArrMapInfoType19Strings[] = {
- NULL
 +};
+/***********************************************************************
SMBIOS data definition TYPE32 Boot Information+************************************************************************/
+SMBIOS_TABLE_TYPE32 mBootInfoType32 = {
- { EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, sizeof
 (SMBIOS_TABLE_TYPE32), 0 },
- { 0, 0, 0, 0, 0, 0 }, // Reserved[6];
 - BootInformationStatusNoError // BootStatus
 +};
+CHAR8 *mBootInfoType32Strings[] = {
- NULL
 +};
+/**
- Create SMBIOS record.
 - Converts a fixed SMBIOS structure and an array of pointers to strings
 into
- an SMBIOS record where the strings are cat'ed on the end of the fixed
 record
- and terminated via a double NULL and add to SMBIOS table.
 - SMBIOS_TABLE_TYPE32 gSmbiosType12 = {
 - { EFI_SMBIOS_TYPE_SYSTEM_CONFIGURATION_OPTIONS, sizeof
 (SMBIOS_TABLE_TYPE12), 0 },
- 1 // StringCount
 - };
 - CHAR8 *gSmbiosType12Strings[] = {
 - "Not Found",
 - NULL
 - };
 - ...
 - LogSmbiosData (
 - (EFI_SMBIOS_TABLE_HEADER*)&gSmbiosType12,
 - gSmbiosType12Strings
 - );
 - @param Template Fixed SMBIOS structure, required.
 - @param StringArray Array of strings to convert to an SMBIOS string
 pack.
NULL is OK.+**/
+EFI_STATUS +EFIAPI +LogSmbiosData (
- IN EFI_SMBIOS_TABLE_HEADER *Template,
 - IN CHAR8 **StringPack
 - )
 +{
- EFI_STATUS Status;
 - EFI_SMBIOS_PROTOCOL *Smbios;
 - EFI_SMBIOS_HANDLE SmbiosHandle;
 - EFI_SMBIOS_TABLE_HEADER *Record;
 - UINTN Index;
 - UINTN StringSize;
 - UINTN Size;
 - CHAR8 *Str;
 - //
 - // Locate Smbios protocol.
 - //
 - Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID
 **)&Smbios);
- if (EFI_ERROR (Status)) {
 - return Status;
 - }
 - // Calculate the size of the fixed record and optional string pack
 - Size = Template->Length;
 - if (StringPack == NULL) {
 - // At least a double null is required
 - Size += 2;
 - } else {
 - for (Index = 0; StringPack[Index] != NULL; Index++) {
 StringSize = AsciiStrSize (StringPack[Index]);Size += StringSize;- }
 - if (StringPack[0] == NULL) {
 // At least a double null is requiredSize += 1;- }
 - // Don't forget the terminating double null
 - Size += 1;
 - }
 - // Copy over Template
 - Record = (EFI_SMBIOS_TABLE_HEADER *)AllocateZeroPool (Size);
 - if (Record == NULL) {
 - return EFI_OUT_OF_RESOURCES;
 - }
 - CopyMem (Record, Template, Template->Length);
 - // Append string pack
 - Str = ((CHAR8 *)Record) + Record->Length;
 - for (Index = 0; StringPack[Index] != NULL; Index++) {
 - StringSize = AsciiStrSize (StringPack[Index]);
 - CopyMem (Str, StringPack[Index], StringSize);
 - Str += StringSize;
 - }
 - *Str = 0;
 - SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
 - Status = Smbios->Add (
 Smbios,gImageHandle,&SmbiosHandle,Record);- ASSERT_EFI_ERROR (Status);
 - FreePool (Record);
 - return Status;
 +}
+/***********************************************************************
SMBIOS data update TYPE0 BIOS Information+************************************************************************/
+VOID +BIOSInfoUpdateSmbiosType0 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mBIOSInfoType0,
 mBIOSInfoType0Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE1 System Information+************************************************************************/ +VOID +SysInfoUpdateSmbiosType1 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mSysInfoType1,
 mSysInfoType1Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE2 Board Information+************************************************************************/ +VOID +BoardInfoUpdateSmbiosType2 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mBoardInfoType2,
 mBoardInfoType2Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE3 Enclosure Information+************************************************************************/ +VOID +EnclosureInfoUpdateSmbiosType3 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mEnclosureInfoType3,
 mEnclosureInfoType3Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE4 Processor Information+************************************************************************/
+VOID
+ProcessorInfoUpdateSmbiosType4 (
- IN UINTN MaxCpus
 - )
 +{
- mProcessorInfoType4.CoreCount = (UINT8) MaxCpus;
 - mProcessorInfoType4.EnabledCoreCount = (UINT8) MaxCpus;
 - mProcessorInfoType4.ThreadCount = (UINT8) MaxCpus;
 - LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mProcessorInfoType4,
 mProcessorInfoType4Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE7 Cache Information+************************************************************************/ +VOID +CacheInfoUpdateSmbiosType7 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mCacheInfoType7,
 mCacheInfoType7Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE9 System Slot Information+************************************************************************/ +VOID +SysSlotInfoUpdateSmbiosType9 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mSysSlotInfoType9,
 mSysSlotInfoType9Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE16 Physical Memory Array Information+************************************************************************/ +VOID +PhyMemArrayInfoUpdateSmbiosType16 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mPhyMemArrayInfoType16,
 mPhyMemArrayInfoType16Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE17 Memory Device Information+************************************************************************/ +VOID +MemDevInfoUpdateSmbiosType17 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mMemDevInfoType17,
 mMemDevInfoType17Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE19 Memory Array Map Information+************************************************************************/ +VOID +MemArrMapInfoUpdateSmbiosType19 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mMemArrMapInfoType19,
 mMemArrMapInfoType19Strings);
+}
+/***********************************************************************
SMBIOS data update TYPE32 Boot Information+************************************************************************/ +VOID +BootInfoUpdateSmbiosType32 (
- VOID
 - )
 +{
- LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER *)&mBootInfoType32,
 mBootInfoType32Strings);
+}
+/***********************************************************************
Driver Entry+************************************************************************/
+EFI_STATUS
+EFIAPI
+UpdateSmbios (
- IN EFI_HANDLE ImageHandle,
 - IN EFI_SYSTEM_TABLE *SystemTable
 - )
 +{
- BIOSInfoUpdateSmbiosType0();
 - SysInfoUpdateSmbiosType1();
 - BoardInfoUpdateSmbiosType2();
 - EnclosureInfoUpdateSmbiosType3();
 - ProcessorInfoUpdateSmbiosType4 (2);
 - CacheInfoUpdateSmbiosType7();
 - SysSlotInfoUpdateSmbiosType9();
 - PhyMemArrayInfoUpdateSmbiosType16();
 - MemDevInfoUpdateSmbiosType17();
 - MemArrMapInfoUpdateSmbiosType19();
 - BootInfoUpdateSmbiosType32();
 - return EFI_SUCCESS;
 +} diff --git a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h b/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h new file mode 100644 index 0000000..5757dc7 --- /dev/null +++ b/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.h @@ -0,0 +1,53 @@ +/** @file +Copyright (c) 2009 - 2013, Intel Corporation. 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.
+SMBIOS Driver.
+yi.li@linaro.org +Copyright (c) 2013 Linaro.org
- 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. +**/
+#ifndef _UPDATE_SMBIOS_DRIVER_H_ +#define _UPDATE_SMBIOS_DRIVER_H_
+#include <PiDxe.h> +#include <Protocol/Smbios.h> +#include <IndustryStandard/SmBios.h> +#include <Guid/SmBios.h> +#include <Library/DebugLib.h> +#include <Library/UefiDriverEntryPoint.h> +#include <Library/UefiLib.h> +#include <Library/BaseLib.h> +#include <Library/BaseMemoryLib.h> +#include <Library/MemoryAllocationLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/PcdLib.h>
+EFI_STATUS +EFIAPI +UpdateSmbios (
- IN EFI_HANDLE ImageHandle,
 - IN EFI_SYSTEM_TABLE *SystemTable
 - );
 +#endif
diff --git a/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf b/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf new file mode 100644 index 0000000..9f8b994 --- /dev/null +++ b/ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf @@ -0,0 +1,64 @@ +## @file +# +# Copyright (c) 2006 - 2011, Intel Corporation. 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. +# +##
+# SMBIOS Driver. +# +# yi.li@linaro.org +# Copyright (c) 2013 Linaro.org +# +# 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.
+[Defines]
- INF_VERSION = 0x00010005
 - BASE_NAME = UpdateSmbios
 - FILE_GUID = 3847D23F-1D95-4772-B60C-4BBFBC4D532F
 - MODULE_TYPE = DXE_DRIVER
 - VERSION_STRING = 1.0
 - ENTRY_POINT = UpdateSmbios
 +[Sources]
- UpdateSmbios.c
 - UpdateSmbios.h
 +[Packages]
- MdePkg/MdePkg.dec
 - MdeModulePkg/MdeModulePkg.dec
 - ArmPlatformPkg/ArmPlatformPkg.dec
 +[LibraryClasses]
- UefiBootServicesTableLib
 - MemoryAllocationLib
 - BaseMemoryLib
 - BaseLib
 - UefiLib
 - UefiDriverEntryPoint
 - DebugLib
 - PcdLib
 +[Protocols]
- gEfiSmbiosProtocolGuid # PROTOCOL
 SOMETIMES_CONSUMED
+[Guids]
+[Depex]
- gEfiSmbiosProtocolGuid
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc index 6237e16..aa09ac7 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc @@ -253,6 +253,12 @@ EmbeddedPkg/SerialDxe/SerialDxe.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
# SMBIOS Support
#
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf index a7cc384..a21afb4 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf @@ -82,6 +82,12 @@ READ_LOCK_STATUS = TRUE INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
# SMBIOS Support
#
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
# # Multiple Console IO support
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc index 37765e9..382fdd6 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc @@ -276,6 +276,12 @@
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
 - # SMBIOS Support
 - #
 - MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
 - ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
 - ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf index c3e5a90..1fa1d67 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.fdf @@ -141,6 +141,12 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
 - # SMBIOS Support
 - #
 - INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
 - INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
 - INF ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc index b4ce234..fd98a4a 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc @@ -270,6 +270,12 @@
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
 - # SMBIOS Support
 - #
 - MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
 - ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
 - ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf index c3e5a90..1fa1d67 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.fdf @@ -141,6 +141,12 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
 - # SMBIOS Support
 - #
 - INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
 - INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
 - INF ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc index 10e58b7..d11f87e 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc @@ -284,6 +284,12 @@ EmbeddedPkg/SerialDxe/SerialDxe.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
# SMBIOS Support
#
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf index d94a721..523c364 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf @@ -186,6 +186,12 @@ READ_LOCK_STATUS = TRUE INF EmbeddedPkg/SerialDxe/SerialDxe.inf
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
# SMBIOS Support
#
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
INF ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc index 0920313..04aefb0 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc @@ -245,6 +245,12 @@ EmbeddedPkg/SerialDxe/SerialDxe.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
# SMBIOS Support
#
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf index 71c66b8..8ec50f9 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf @@ -128,6 +128,12 @@ READ_LOCK_STATUS = TRUE INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
# SMBIOS Support
#
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
# # Networking stack
diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc index bb74bdc..751508e 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc @@ -247,7 +247,13 @@ EmbeddedPkg/SerialDxe/SerialDxe.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
 - # SMBIOS Support
 - #
 - MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
 - ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
 - ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf ArmPkg/Drivers/TimerDxe/TimerDxe.inf
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf index c1d8f31..91b2f8f 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf @@ -146,6 +146,12 @@ READ_LOCK_STATUS = TRUE INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf INF ArmPlatformPkg/Drivers/LAN91xDxe/LAN91xDxe.inf
- #
 - # SMBIOS Support
 - #
 - INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
 - INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
 - # # Multiple Console IO support #
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc index df17f64..6f2e5f2 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc @@ -257,6 +257,12 @@
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- #
 - # SMBIOS Support
 - #
 - MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
 - ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
 - ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
 diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf index a8e99fd..ba3bf8f 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf @@ -127,6 +127,12 @@ READ_LOCK_STATUS = TRUE INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
#
# SMBIOS Support
#
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
INF ArmPkg/Drivers/UpdateSmbios/UpdateSmbios.inf
# # Networking stack
-- 1.7.9.5
boot-architecture@lists.linaro.org