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 <[email protected]> wrote:
> From: liyi <[email protected]>
>
> 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 <[email protected]>
> ---
> 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.
> +
> [email protected]
> +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-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 *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 :1
> + 0, //Unknown :1
> + 0, //NonBurst :1
> + 1, //Burst :1
> + 0, //PiplelineBurst :1
> + 1, //Synchronous :1
> + 0, //Asynchronous :1
> + 0 //Reserved :9
> + },
> + { // Current SRAM Type
> + 0, //Other :1
> + 0, //Unknown :1
> + 0, //NonBurst :1
> + 1, //Burst :1
> + 0, //PiplelineBurst :1
> + 1, //Synchronous :1
> + 0, //Asynchronous :1
> + 0 //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 Address
> Information
> +************************************************************************/
> +
> +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 required
> +
> + Size += 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.
> +
> [email protected]
> +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.
> +#
> +# [email protected]
> +# 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 mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/boot-architecture