123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- /** @file
- *
- * Copyright (c) 2022, Ampere Computing LLC. All rights reserved.
- * 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 {
- BiosVersionType00,
- ProductNameType01,
- SerialNumType01,
- UuidType01,
- SystemManufacturerType01,
- VersionType01,
- SkuNumberType01,
- FamilyType01,
- AssetTagType02,
- SerialNumberType02,
- BoardManufacturerType02,
- ProductNameType02,
- VersionType02,
- SkuNumberType02,
- ChassisLocationType02,
- AssetTagType03,
- SerialNumberType03,
- VersionType03,
- ChassisTypeType03,
- ManufacturerType03,
- SkuNumberType03,
- ProcessorPartNumType04,
- ProcessorSerialNumType04,
- ProcessorVersionType04,
- 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
- **/
- UINTN
- EFIAPI
- 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.
- **/
- BOOLEAN
- EFIAPI
- 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.
- **/
- BOOLEAN
- EFIAPI
- OemGetCacheInformation (
- IN UINT8 ProcessorIndex,
- IN UINT8 CacheLevel,
- IN BOOLEAN DataCache,
- IN BOOLEAN UnifiedCache,
- IN OUT SMBIOS_TABLE_TYPE7 *SmbiosCacheTable
- );
- /** Gets the maximum number of processors supported by the platform.
- @return The maximum number of processors.
- **/
- UINT8
- EFIAPI
- OemGetMaxProcessors (
- VOID
- );
- /** Gets the type of chassis for the system.
- @retval The type of the chassis.
- **/
- MISC_CHASSIS_TYPE
- EFIAPI
- OemGetChassisType (
- VOID
- );
- /** 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.
- **/
- BOOLEAN
- EFIAPI
- OemIsProcessorPresent (
- IN UINTN ProcessorIndex
- );
- /** Updates the HII string for the specified field.
- @param HiiHandle The HII handle.
- @param TokenToUpdate The string to update.
- @param Field The field to get information about.
- **/
- VOID
- EFIAPI
- OemUpdateSmbiosInfo (
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_STRING_ID TokenToUpdate,
- IN OEM_MISC_SMBIOS_HII_STRING_FIELD Field
- );
- /** Fetches the Type 32 boot information status.
- @return Boot status.
- **/
- MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
- EFIAPI
- OemGetBootStatus (
- VOID
- );
- /** Fetches the chassis status when it was last booted.
- @return Chassis status.
- **/
- MISC_CHASSIS_STATE
- EFIAPI
- OemGetChassisBootupState (
- VOID
- );
- /** Fetches the chassis power supply/supplies status when last booted.
- @return Chassis power supply/supplies status.
- **/
- MISC_CHASSIS_STATE
- EFIAPI
- OemGetChassisPowerSupplyState (
- VOID
- );
- /** Fetches the chassis thermal status when last booted.
- @return Chassis thermal status.
- **/
- MISC_CHASSIS_STATE
- EFIAPI
- OemGetChassisThermalState (
- VOID
- );
- /** Fetches the chassis security status when last booted.
- @return Chassis security status.
- **/
- MISC_CHASSIS_SECURITY_STATE
- EFIAPI
- OemGetChassisSecurityStatus (
- VOID
- );
- /** Fetches the chassis height in RMUs (Rack Mount Units).
- @return The height of the chassis.
- **/
- UINT8
- EFIAPI
- OemGetChassisHeight (
- VOID
- );
- /** Fetches the number of power cords.
- @return The number of power cords.
- **/
- UINT8
- EFIAPI
- OemGetChassisNumPowerCords (
- VOID
- );
- /**
- Fetches the system UUID.
- @param[out] SystemUuid The pointer to the buffer to store the System UUID.
- **/
- VOID
- EFIAPI
- OemGetSystemUuid (
- OUT GUID *SystemUuid
- );
- /** Fetches the BIOS release.
- @return The BIOS release.
- **/
- UINT16
- EFIAPI
- OemGetBiosRelease (
- VOID
- );
- /** Fetches the embedded controller firmware release.
- @return The embedded controller firmware release.
- **/
- UINT16
- EFIAPI
- OemGetEmbeddedControllerFirmwareRelease (
- VOID
- );
- #endif // OEM_MISC_LIB_H_
|