From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by mx.groups.io with SMTP id smtpd.web11.521.1612810506938751380 for ; Mon, 08 Feb 2021 10:55:07 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b=W6cZPtu/; spf=pass (domain: nuviainc.com, ip: 209.85.128.51, mailfrom: leif@nuviainc.com) Received: by mail-wm1-f51.google.com with SMTP id u14so119218wmq.4 for ; Mon, 08 Feb 2021 10:55:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=ZdyJJ2cuwWYPeZ6TmKBHr0yeBIEJVdqSagsTpbtkLS0=; b=W6cZPtu/s4qnF5dWNAec+nguAMCz58WGaydbVPPppsnL3HPc6JGRg/SOWdJHoeL3EQ AM1V4UWEWLAYtAb463p1qB/SwbrjB9eIq3PkE/ELLWAX5SeEex7k7W29ZDwWg9g7DnDj rlbhqoXUgG7Bsi2juB63K3Uktz3yc6eqxXlN/gJVM1o74wqk27W+f2NMhjzCEjMFWBKq IubbADlFozR8yOHdcYWsOiUO9Ypd337sTYPoqgxjML1ArhVgE6OstcE4VPDkAtvFsGIY lBLNpQhp0y6N1fCLlMAEe6YEPkkNMqTMcpZrO6B4lX3Ir6As9p6+tdUcRG4aCf+lAS+7 KivQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=ZdyJJ2cuwWYPeZ6TmKBHr0yeBIEJVdqSagsTpbtkLS0=; b=jzDHKNQifpP6BPL95m4Zqw34lJ+1VPvm+zReajXl+dpTW5/KzPTrhLV/RfaAl/JmUs qbtL63WOTwWY44jGruXiR4NA8CmRHOENCGbeDYYxM4YUPTd4BrTvUnmEQmTpzfsIgJcW jxzpqiE9wRK/UaDS3kQ/IEISg+ya/ltIzCDiyB+yvlX3EnPL83g8RpqmEi4CUCV/5LiQ xL+iZ5su05ILWeMxmChRryc1eJqILyZCerrq3aHVH7FiVtisWEJ+zHj6WVL/Ri5scd61 2mvteQHyxf6VD6OUJDGFmNn6+vTVm2Kg0/jfiAQOfhyg2Qj9lDQKn6Lut8RQm1YLNRXb mQVw== X-Gm-Message-State: AOAM533TyCviEKXZQtJ7oz2tfeda9idXm23gLw8LqihD858qwclJAHel GBkiIqPJLo6qH5dT+ZGezABKVQ== X-Google-Smtp-Source: ABdhPJyof4Ov32Q8bkw8l7DaMFcv+Cib4Q/aXNBnbqLhVqT69rQztZZIEdHB7szxUfRRXboWya6cug== X-Received: by 2002:a1c:e255:: with SMTP id z82mr149809wmg.93.1612810505303; Mon, 08 Feb 2021 10:55:05 -0800 (PST) Return-Path: Received: from vanye (cpc1-cmbg19-2-0-cust915.5-4.cable.virginm.net. [82.27.183.148]) by smtp.gmail.com with ESMTPSA id y15sm12163422wrm.93.2021.02.08.10.55.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Feb 2021 10:55:04 -0800 (PST) Date: Mon, 8 Feb 2021 18:55:03 +0000 From: "Leif Lindholm" To: Rebecca Cran Cc: devel@edk2.groups.io, Ard Biesheuvel , nd@arm.com, Sami Mujawar , Liming Gao , Michael D Kinney , Zhiguang Liu , Samer El-Haj-Mahmoud , Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= Subject: Re: [PATCH v8 00/21] ArmPkg,MdePkg: Add Universal/Smbios, and related changes Message-ID: <20210208185502.GD1664@vanye> References: <20210208005254.12176-1-rebecca@nuviainc.com> MIME-Version: 1.0 In-Reply-To: <20210208005254.12176-1-rebecca@nuviainc.com> User-Agent: Mutt/1.10.1 (2018-07-13) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sun, Feb 07, 2021 at 17:52:33 -0700, Rebecca Cran wrote: > Much of the data for the SMBIOS tables is generic, and need not be > duplicated for each platform. This patch series introduces > ArmPkg/Universal/Smbios, which is largely copied from > edk2-platforms/Silicon/HiSilicon/Drivers/Smbios and generates SMBIOS > tables 0,1,2,3,4,7,13,32 and uses a combination of PCDs and calls into a > new OemMiscLib to get information which varies between platforms. > > I plan to submit a patch against SbsaQemu to update it to use this new > functionality. > > Changes from v7 to v8: > > o Changed associativity function to return 1-based value. > o Changed cache level parameter and return values to be 1-based. > o Other changes based on Leif's review feedback. There was also a change to a macro in 7/21 (more below). I think this set is good to go in now, but I'd like to fold in the following changes if you're OK with that: diff --git a/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLibNull.inf b/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLibNull.inf index b21eeade64b5..dc4e02966ca8 100644 --- a/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLibNull.inf +++ b/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLibNull.inf @@ -28,4 +28,3 @@ [Packages] [LibraryClasses] BaseMemoryLib - diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf index 60d8fe31c219..2d68cc0fe2e2 100644 --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf @@ -85,5 +85,3 @@ [Guids] [Depex] gEfiSmbiosProtocolGuid - - diff --git a/ArmPkg/Library/ArmLib/ArmLibPrivate.h b/ArmPkg/Library/ArmLib/ArmLibPrivate.h index 1818a1994dc3..42a49b4dec7d 100644 --- a/ArmPkg/Library/ArmLib/ArmLibPrivate.h +++ b/ArmPkg/Library/ArmLib/ArmLibPrivate.h @@ -145,7 +145,7 @@ typedef enum { ClidrCacheTypeMax } CLIDR_CACHE_TYPE; -#define CLIDR_GET_CACHE_TYPE(x, level) ((x >> (3 * (level))) & 0b111) +#define CLIDR_GET_CACHE_TYPE(x, level) (((x) >> (3 * (level))) & 0b111) VOID CPSRMaskInsert ( diff --git a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorAArch64.c b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorAArch64.c index ddd774b16f83..b214b6d0d217 100644 --- a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorAArch64.c +++ b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorAArch64.c @@ -90,4 +90,3 @@ SmbiosProcessorGetCacheAssociativity ( return Associativity; } - diff --git a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArm.c b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArm.c index 0be4403c765f..546628934319 100644 --- a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArm.c +++ b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArm.c @@ -96,4 +96,3 @@ ArmGetCacheAssociativity ( return Associativity; } - diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c index eb7f4cb4c16d..daf548cc2b4d 100644 --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c @@ -220,4 +220,3 @@ SmbiosMiscGetLinkTypeHandle( } } } - diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguages.uni b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguages.uni index 3af7a01653d8..1d959b1a4bdb 100644 --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguages.uni +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguages.uni @@ -39,5 +39,3 @@ #string STR_MISC_BIOS_LANGUAGES_SIMPLECH_ABBREVIATE #language en-US "zhCN" #string STR_MISC_BIOS_LANGUAGES_SIMPLECH_LONG #language en-US "zh|CN|unicode" - - These are all trailing newlines at EOF, which git am complains about when importing the patches, and an additional fix to aforementioned macro. Are you OK with me doing this? Best Regards, Leif > More changes are needed to support reporting boot status etc., but with the > series getting rather large I think it might be good to get this committed > and make a follow-up series with the additional changes. > > Testing: > > o Ran Ecc tool > > o Ran smbiosview in the UEFI Shell > > > Rebecca Cran (21): > ArmPkg: Add ARM SMC Architecture functions to ArmStdSmc.h > MdePkg: Update IndustryStandard/SmBios.h with processor status data > ArmPkg: Add register encoding definition for MMFR2 > ArmPkg: Add helper to read the Memory Model Features Register 2 > ArmPkg: Add helper function to read the Memory Model Feature Register > 4 > ArmPkg: Fix the return type of the ReadCCSIDR function > ArmPkg: Update ArmLibPrivate.h with cache register definitions > ArmPkg: Add definition of the maximum cache level in ARMv8-A > ArmPkg: Add helper to read CCIDX status > ArmPkg: Add helper to read the CCSIDR2 register > ArmPkg: Add Library/OemMiscLib.h > ArmPkg: Add Universal/Smbios/OemMiscLibNull > ArmPkg: Add Universal/Smbios/ProcessorSubClassDxe > ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type00 > ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type01 > ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type02 > ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type03 > ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type13 > ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type32 > ArmPkg: Add SMBIOS PCDs to ArmPkg.dec > ArmPkg: Add Universal/Smbios/SmbiosMiscDxe > > ArmPkg/ArmPkg.dec | 17 + > ArmPkg/ArmPkg.dsc | 5 + > ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLibNull.inf | 31 + > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClassDxe.inf | 66 ++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf | 89 +++ > ArmPkg/Include/Chipset/AArch64.h | 4 + > ArmPkg/Include/IndustryStandard/ArmStdSmc.h | 16 + > ArmPkg/Include/Library/ArmLib.h | 15 + > ArmPkg/Include/Library/OemMiscLib.h | 167 +++++ > ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h | 11 + > ArmPkg/Library/ArmLib/Arm/ArmV7Lib.h | 8 +- > ArmPkg/Library/ArmLib/ArmLibPrivate.h | 117 ++- > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessor.h | 102 +++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMisc.h | 134 ++++ > MdePkg/Include/IndustryStandard/SmBios.h | 13 + > ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c | 19 +- > ArmPkg/Library/ArmLib/Arm/ArmV7Lib.c | 19 +- > ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c | 144 ++++ > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c | 752 ++++++++++++++++++++ > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorAArch64.c | 93 +++ > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArm.c | 99 +++ > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c | 249 +++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDataTable.c | 62 ++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c | 223 ++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorData.c | 93 +++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c | 296 ++++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerData.c | 36 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunction.c | 196 +++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerData.c | 46 ++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunction.c | 230 ++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerData.c | 52 ++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerFunction.c | 224 ++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguagesData.c | 33 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguagesFunction.c | 166 +++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationData.c | 32 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationFunction.c | 73 ++ > ArmPkg/Library/ArmLib/AArch64/AArch64Support.S | 3 + > ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S | 2 +- > ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S | 16 +- > ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.asm | 16 +- > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClassStrings.uni | 24 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxeStrings.uni | 22 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendor.uni | 18 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturer.uni | 20 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturer.uni | 20 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturer.uni | 18 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguages.uni | 43 ++ > 47 files changed, 4126 insertions(+), 8 deletions(-) > create mode 100644 ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLibNull.inf > create mode 100644 ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClassDxe.inf > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf > create mode 100644 ArmPkg/Include/Library/OemMiscLib.h > create mode 100644 ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessor.h > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMisc.h > create mode 100644 ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c > create mode 100644 ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c > create mode 100644 ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorAArch64.c > create mode 100644 ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArm.c > create mode 100644 ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDataTable.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorData.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerData.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunction.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerData.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunction.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerData.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerFunction.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguagesData.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguagesFunction.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationData.c > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationFunction.c > create mode 100644 ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClassStrings.uni > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxeStrings.uni > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendor.uni > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturer.uni > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturer.uni > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturer.uni > create mode 100644 ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type13/MiscNumberOfInstallableLanguages.uni > > -- > 2.26.2 >