From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.1520.1595269016690378724 for ; Mon, 20 Jul 2020 11:16:56 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: samer.el-haj-mahmoud@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 644BA142F; Mon, 20 Jul 2020 11:16:56 -0700 (PDT) Received: from U203705.lan (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1E2EC3F66F; Mon, 20 Jul 2020 11:16:56 -0700 (PDT) From: "Samer El-Haj-Mahmoud" To: devel@edk2.groups.io Cc: Leif Lindholm , Pete Batard , Andrei Warkentin , Ard Biesheuvel Subject: [edk2-platform][PATCH v1 3/7] Platforms/RaspberryPi: SMBIOS Type 0 fixes Date: Mon, 20 Jul 2020 14:16:42 -0400 Message-Id: <20200720181646.2891-4-Samer.El-Haj-Mahmoud@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200720181646.2891-1-Samer.El-Haj-Mahmoud@arm.com> References: <20200720181646.2891-1-Samer.El-Haj-Mahmoud@arm.com> Various fixes and enhancements for SMBIOS Type 0: - Use PCDs to report the BIOS Segment and Size - Report Extended BiosSize - Set BiosIsUpgradable (it is!) - Clear FunctionKeyNetworkBootIsSupported Cc: Leif Lindholm Cc: Pete Batard Cc: Andrei Warkentin Cc: Ard Biesheuvel Signed-off-by: Samer El-Haj-Mahmoud --- Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf | 6 +++++- Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c | 17 +++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf index 59b2fefdf0fd..817b902b1fad 100644 --- a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf +++ b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf @@ -1,10 +1,11 @@ #/** @file # -# SMBIOS Table for ARM platform +# SMBIOS Table for the RaspberryPi platform # # Copyright (c) 2017, Andrei Warkentin # Copyright (c) Microsoft Corporation. All rights reserved. # Copyright (c) 2013 Linaro.org +# Copyright (c) 2020, ARM Limited. All rights reserved. # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -51,8 +52,11 @@ [Depex] gEfiSmbiosProtocolGuid AND gRaspberryPiFirmwareProtocolGuid [Pcd] + gArmTokenSpaceGuid.PcdFdBaseAddress + gArmTokenSpaceGuid.PcdFdSize gArmTokenSpaceGuid.PcdSystemMemorySize gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString + gRaspberryPiTokenSpaceGuid.PcdFdtSize gRaspberryPiTokenSpaceGuid.PcdRamMoreThan3GB gRaspberryPiTokenSpaceGuid.PcdRamLimitTo3GB diff --git a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c index 170f1843f90b..21feab3e47a5 100644 --- a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c +++ b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c @@ -54,11 +54,11 @@ STATIC RASPBERRY_PI_FIRMWARE_PROTOCOL *mFwProtocol; ************************************************************************/ SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = { { EFI_SMBIOS_TYPE_BIOS_INFORMATION, sizeof (SMBIOS_TABLE_TYPE0), 0 }, - 1, // Vendor String - 2, // BiosVersion String - 0x0, // BiosSegment - 3, // BiosReleaseDate String - 0x1F, // BiosSize + 1, // Vendor String + 2, // BiosVersion String + (UINT16) (FixedPcdGet32 (PcdFdBaseAddress) / 0x10000), // BiosSegment + 3, // BiosReleaseDate String + (UINT8) (FixedPcdGet32 (PcdFdSize) / 0x10000), // BiosSize (in 64KB) { // BiosCharacteristics 0, // Reserved :2; ///< Bits 0-1. 0, // Unknown :1; @@ -66,11 +66,11 @@ SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = { 0, // IsaIsSupported :1; 0, // McaIsSupported :1; 0, // EisaIsSupported :1; - 0, // PciIsSupported :1; + 0, // PciIsSupported :1; /// No PCIe support since we hide ECAM from the OS 0, // PcmciaIsSupported :1; 0, // PlugAndPlayIsSupported :1; 0, // ApmIsSupported :1; - 0, // BiosIsUpgradable :1; + 1, // BiosIsUpgradable :1; 0, // BiosShadowingAllowed :1; 0, // VlVesaIsSupported :1; 0, // EscdSupportIsAvailable :1; @@ -104,7 +104,7 @@ SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = { // Boot1394IsSupported :1; // SmartBatteryIsSupported :1; // BIOSCharacteristicsExtensionBytes[1] - 0x0e, // BiosBootSpecIsSupported :1; + 0x0c, // BiosBootSpecIsSupported :1; // FunctionKeyNetworkBootIsSupported :1; // TargetContentDistributionEnabled :1; // UefiSpecificationSupported :1; @@ -115,6 +115,7 @@ SMBIOS_TABLE_TYPE0 mBIOSInfoType0 = { 0, // SystemBiosMinorRelease 0, // EmbeddedControllerFirmwareMajorRelease 0, // EmbeddedControllerFirmwareMinorRelease + { (UINT16) ((FixedPcdGet32 (PcdFdSize) + FixedPcdGet32 (PcdFdtSize)) / 0x100000) }, // BiosSize (in MB since Bits 15:14 = 00b) }; CHAR8 mBiosVendor[128] = "EDK2"; -- 2.17.1