public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Rebecca Cran" <rebecca@nuviainc.com>
To: devel@edk2.groups.io
Cc: "Rebecca Cran" <rebecca@nuviainc.com>,
	leif@nuviainc.com, "Ard Biesheuvel" <ard.biesheuvel@arm.com>,
	nd@arm.com, "Sami Mujawar" <Sami.Mujawar@arm.com>,
	"Liming Gao" <gaoliming@byosoft.com.cn>,
	"Michael D Kinney" <michael.d.kinney@intel.com>,
	"Zhiguang Liu" <zhiguang.liu@intel.com>,
	"Samer El-Haj-Mahmoud" <Samer.El-Haj-Mahmoud@arm.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: [PATCH v8 11/21] ArmPkg: Add Library/OemMiscLib.h
Date: Sun,  7 Feb 2021 17:52:44 -0700	[thread overview]
Message-ID: <20210208005254.12176-12-rebecca@nuviainc.com> (raw)
In-Reply-To: <20210208005254.12176-1-rebecca@nuviainc.com>

OemMiscLib.h provides the interface which platforms should implement to
interact with the SmbiosMiscDxe and ProcessorSubClassDxe drivers to
update SMBIOS tables.

Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
Acked-by: Leif Lindholm <leif@nuviainc.com>
---
 ArmPkg/Include/Library/OemMiscLib.h | 167 ++++++++++++++++++++
 1 file changed, 167 insertions(+)

diff --git a/ArmPkg/Include/Library/OemMiscLib.h b/ArmPkg/Include/Library/OemMiscLib.h
new file mode 100644
index 000000000000..e70019d05f15
--- /dev/null
+++ b/ArmPkg/Include/Library/OemMiscLib.h
@@ -0,0 +1,167 @@
+/** @file
+*
+*  Copyright (c) 2021, NUVIA Inc. All rights reserved.
+*  Copyright (c) 2015, Hisilicon Limited. All rights reserved.
+*  Copyright (c) 2015, Linaro Limited. All rights reserved.
+*
+*  SPDX-License-Identifier: BSD-2-Clause-Patent
+*
+**/
+
+
+#ifndef OEM_MISC_LIB_H_
+#define OEM_MISC_LIB_H_
+
+#include <Uefi.h>
+#include <IndustryStandard/SmBios.h>
+
+typedef enum
+{
+  CpuCacheL1 = 1,
+  CpuCacheL2,
+  CpuCacheL3,
+  CpuCacheL4,
+  CpuCacheL5,
+  CpuCacheL6,
+  CpuCacheL7,
+  CpuCacheLevelMax
+} OEM_MISC_CPU_CACHE_LEVEL;
+
+typedef struct
+{
+  UINT8 Voltage;        ///< Processor voltage
+  UINT16 CurrentSpeed;  ///< Current clock speed in MHz
+  UINT16 MaxSpeed;      ///< Maximum clock speed in MHz
+  UINT16 ExternalClock; ///< External clock speed in MHz
+  UINT16 CoreCount;     ///< Number of cores available
+  UINT16 CoresEnabled;  ///< Number of cores enabled
+  UINT16 ThreadCount;   ///< Number of threads per processor
+} OEM_MISC_PROCESSOR_DATA;
+
+typedef enum
+{
+    ProductNameType01,
+    SerialNumType01,
+    UuidType01,
+    SystemManufacturerType01,
+    SkuNumberType01,
+    FamilyType01,
+    AssertTagType02,
+    SerialNumberType02,
+    BoardManufacturerType02,
+    SkuNumberType02,
+    ChassisLocationType02,
+    AssetTagType03,
+    SerialNumberType03,
+    VersionType03,
+    ChassisTypeType03,
+    ManufacturerType03,
+    SkuNumberType03,
+    SmbiosHiiStringFieldMax
+} OEM_MISC_SMBIOS_HII_STRING_FIELD;
+
+/*
+ * The following are functions that the each platform needs to
+ * implement in its OemMiscLib library.
+ */
+
+/** Gets the CPU frequency of the specified processor.
+
+  @param ProcessorIndex Index of the processor to get the frequency for.
+
+  @return               CPU frequency in Hz
+**/
+EFIAPI
+UINTN
+OemGetCpuFreq (
+  IN UINT8 ProcessorIndex
+  );
+
+/** Gets information about the specified processor and stores it in
+    the structures provided.
+
+  @param ProcessorIndex  Index of the processor to get the information for.
+  @param ProcessorStatus Processor status.
+  @param ProcessorCharacteristics Processor characteritics.
+  @param MiscProcessorData        Miscellaneous processor information.
+
+  @return  TRUE on success, FALSE on failure.
+**/
+EFIAPI
+BOOLEAN
+OemGetProcessorInformation (
+  IN UINTN ProcessorIndex,
+  IN OUT PROCESSOR_STATUS_DATA *ProcessorStatus,
+  IN OUT PROCESSOR_CHARACTERISTIC_FLAGS *ProcessorCharacteristics,
+  IN OUT OEM_MISC_PROCESSOR_DATA *MiscProcessorData
+  );
+
+/** Gets information about the cache at the specified cache level.
+
+  @param ProcessorIndex The processor to get information for.
+  @param CacheLevel     The cache level to get information for.
+  @param DataCache  Whether the cache is a data cache.
+  @param UnifiedCache Whether the cache is a unified cache.
+  @param SmbiosCacheTable The SMBIOS Type7 cache information structure.
+
+  @return TRUE on success, FALSE on failure.
+**/
+EFIAPI
+BOOLEAN
+OemGetCacheInformation (
+  IN UINT8   ProcessorIndex,
+  IN UINT8   CacheLevel,
+  IN BOOLEAN DataCache,
+  IN BOOLEAN UnifiedCache,
+  IN OUT SMBIOS_TABLE_TYPE7 *SmbiosCacheTable
+  );
+
+/** Gets the maximum number of sockets supported by the platform.
+
+  @return The maximum number of sockets.
+**/
+EFIAPI
+UINT8
+OemGetProcessorMaxSockets (
+  VOID
+  );
+
+/** Gets the type of chassis for the system.
+
+  @param ChassisType The type of the chassis.
+
+  @retval EFI_SUCCESS The chassis type was fetched successfully.
+**/
+EFIAPI
+EFI_STATUS
+OemGetChassisType (
+  OUT UINT8 *ChassisType
+  );
+
+/** Returns whether the specified processor is present or not.
+
+  @param ProcessIndex The processor index to check.
+
+  @return TRUE is the processor is present, FALSE otherwise.
+**/
+EFIAPI
+BOOLEAN
+OemIsSocketPresent (
+  IN UINTN ProcessorIndex
+  );
+
+/** Updates the HII string for the specified field.
+
+  @param mHiiHandle    The HII handle.
+  @param TokenToUpdate The string to update.
+  @param Offset        The field to get information about.
+**/
+EFIAPI
+VOID
+OemUpdateSmbiosInfo (
+  IN EFI_HII_HANDLE    HiiHandle,
+  IN EFI_STRING_ID     TokenToUpdate,
+  IN OEM_MISC_SMBIOS_HII_STRING_FIELD Offset
+  );
+
+#endif // OEM_MISC_LIB_H_
-- 
2.26.2


  parent reply	other threads:[~2021-02-08  0:53 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-08  0:52 [PATCH v8 00/21] ArmPkg,MdePkg: Add Universal/Smbios, and related changes Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 01/21] ArmPkg: Add ARM SMC Architecture functions to ArmStdSmc.h Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 02/21] MdePkg: Update IndustryStandard/SmBios.h with processor status data Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 03/21] ArmPkg: Add register encoding definition for MMFR2 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 04/21] ArmPkg: Add helper to read the Memory Model Features Register 2 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 05/21] ArmPkg: Add helper function to read the Memory Model Feature Register 4 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 06/21] ArmPkg: Fix the return type of the ReadCCSIDR function Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 07/21] ArmPkg: Update ArmLibPrivate.h with cache register definitions Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 08/21] ArmPkg: Add definition of the maximum cache level in ARMv8-A Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 09/21] ArmPkg: Add helper to read CCIDX status Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 10/21] ArmPkg: Add helper to read the CCSIDR2 register Rebecca Cran
2021-02-08  0:52 ` Rebecca Cran [this message]
2021-02-08  0:52 ` [PATCH v8 12/21] ArmPkg: Add Universal/Smbios/OemMiscLibNull Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 13/21] ArmPkg: Add Universal/Smbios/ProcessorSubClassDxe Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 14/21] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type00 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 15/21] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type01 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 16/21] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type02 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 17/21] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type03 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 18/21] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type13 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 19/21] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type32 Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 20/21] ArmPkg: Add SMBIOS PCDs to ArmPkg.dec Rebecca Cran
2021-02-08  0:52 ` [PATCH v8 21/21] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe Rebecca Cran
2021-02-08  0:57 ` [PATCH v8 00/21] ArmPkg,MdePkg: Add Universal/Smbios, and related changes Rebecca Cran
2021-02-08 18:55 ` Leif Lindholm
2021-02-08 19:02   ` Rebecca Cran
2021-02-08 19:47     ` Leif Lindholm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210208005254.12176-12-rebecca@nuviainc.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox