|
ArmPkg[all]
0.1
|
Data Structures | |
| struct | ARM_MEMORY_REGION_DESCRIPTOR |
Typedefs | |
| typedef VOID(* | CACHE_OPERATION )(VOID) |
| typedef VOID(* | LINE_OPERATION )(UINTN) |
Functions | |
| UINTN | ReadCCSIDR (IN UINT32 CSSELR) |
| UINT32 | ReadCCSIDR2 (IN UINT32 CSSELR) |
| UINT32 | ReadCLIDR (VOID) |
| UINTN EFIAPI | ArmDataCacheLineLength (VOID) |
| UINTN EFIAPI | ArmInstructionCacheLineLength (VOID) |
| UINTN EFIAPI | ArmCacheWritebackGranule (VOID) |
| UINTN EFIAPI | ArmIsArchTimerImplemented (VOID) |
| UINTN EFIAPI | ArmCacheInfo (VOID) |
| BOOLEAN EFIAPI | ArmIsMpCore (VOID) |
| VOID EFIAPI | ArmInvalidateDataCache (VOID) |
| VOID EFIAPI | ArmCleanInvalidateDataCache (VOID) |
| VOID EFIAPI | ArmCleanDataCache (VOID) |
| VOID EFIAPI | ArmInvalidateInstructionCache (VOID) |
| VOID EFIAPI | ArmInvalidateDataCacheEntryByMVA (IN UINTN Address) |
| VOID EFIAPI | ArmCleanDataCacheEntryToPoUByMVA (IN UINTN Address) |
| VOID EFIAPI | ArmInvalidateInstructionCacheEntryToPoUByMVA (IN UINTN Address) |
| VOID EFIAPI | ArmCleanDataCacheEntryByMVA (IN UINTN Address) |
| VOID EFIAPI | ArmCleanInvalidateDataCacheEntryByMVA (IN UINTN Address) |
| VOID EFIAPI | ArmEnableDataCache (VOID) |
| VOID EFIAPI | ArmDisableDataCache (VOID) |
| VOID EFIAPI | ArmEnableInstructionCache (VOID) |
| VOID EFIAPI | ArmDisableInstructionCache (VOID) |
| VOID EFIAPI | ArmEnableMmu (VOID) |
| VOID EFIAPI | ArmDisableMmu (VOID) |
| VOID EFIAPI | ArmEnableCachesAndMmu (VOID) |
| VOID EFIAPI | ArmDisableCachesAndMmu (VOID) |
| VOID EFIAPI | ArmEnableInterrupts (VOID) |
| UINTN EFIAPI | ArmDisableInterrupts (VOID) |
| BOOLEAN EFIAPI | ArmGetInterruptState (VOID) |
| VOID EFIAPI | ArmEnableAsynchronousAbort (VOID) |
| UINTN EFIAPI | ArmDisableAsynchronousAbort (VOID) |
| VOID EFIAPI | ArmEnableIrq (VOID) |
| UINTN EFIAPI | ArmDisableIrq (VOID) |
| VOID EFIAPI | ArmEnableFiq (VOID) |
| UINTN EFIAPI | ArmDisableFiq (VOID) |
| BOOLEAN EFIAPI | ArmGetFiqState (VOID) |
| VOID EFIAPI | ArmInvalidateTlb (VOID) |
| VOID EFIAPI | ArmUpdateTranslationTableEntry (IN VOID *TranslationTableEntry, IN VOID *Mva) |
| VOID EFIAPI | ArmSetDomainAccessControl (IN UINT32 Domain) |
| VOID EFIAPI | ArmSetTTBR0 (IN VOID *TranslationTableBase) |
| VOID EFIAPI | ArmSetTTBCR (IN UINT32 Bits) |
| VOID *EFIAPI | ArmGetTTBR0BaseAddress (VOID) |
| BOOLEAN EFIAPI | ArmMmuEnabled (VOID) |
| VOID EFIAPI | ArmEnableBranchPrediction (VOID) |
| VOID EFIAPI | ArmDisableBranchPrediction (VOID) |
| VOID EFIAPI | ArmSetLowVectors (VOID) |
| VOID EFIAPI | ArmSetHighVectors (VOID) |
| VOID EFIAPI | ArmDataMemoryBarrier (VOID) |
| VOID EFIAPI | ArmDataSynchronizationBarrier (VOID) |
| VOID EFIAPI | ArmInstructionSynchronizationBarrier (VOID) |
| VOID EFIAPI | ArmWriteVBar (IN UINTN VectorBase) |
| UINTN EFIAPI | ArmReadVBar (VOID) |
| VOID EFIAPI | ArmWriteAuxCr (IN UINT32 Bit) |
| UINT32 EFIAPI | ArmReadAuxCr (VOID) |
| VOID EFIAPI | ArmSetAuxCrBit (IN UINT32 Bits) |
| VOID EFIAPI | ArmUnsetAuxCrBit (IN UINT32 Bits) |
| VOID EFIAPI | ArmCallSEV (VOID) |
| VOID EFIAPI | ArmCallWFE (VOID) |
| VOID EFIAPI | ArmCallWFI (VOID) |
| UINTN EFIAPI | ArmReadMpidr (VOID) |
| UINTN EFIAPI | ArmReadMidr (VOID) |
| UINT32 EFIAPI | ArmReadCpacr (VOID) |
| VOID EFIAPI | ArmWriteCpacr (IN UINT32 Access) |
| VOID EFIAPI | ArmEnableVFP (VOID) |
| UINT32 EFIAPI | ArmReadScr (VOID) |
| VOID EFIAPI | ArmWriteScr (IN UINT32 Value) |
| UINT32 EFIAPI | ArmReadMVBar (VOID) |
| VOID EFIAPI | ArmWriteMVBar (IN UINT32 VectorMonitorBase) |
| UINT32 EFIAPI | ArmReadSctlr (VOID) |
| VOID EFIAPI | ArmWriteSctlr (IN UINT32 Value) |
| UINTN EFIAPI | ArmReadHVBar (VOID) |
| VOID EFIAPI | ArmWriteHVBar (IN UINTN HypModeVectorBase) |
| UINTN EFIAPI | ArmReadCpuActlr (VOID) |
| VOID EFIAPI | ArmWriteCpuActlr (IN UINTN Val) |
| VOID EFIAPI | ArmSetCpuActlrBit (IN UINTN Bits) |
| VOID EFIAPI | ArmUnsetCpuActlrBit (IN UINTN Bits) |
| UINTN EFIAPI | ArmReadCntFrq (VOID) |
| VOID EFIAPI | ArmWriteCntFrq (UINTN FreqInHz) |
| UINT64 EFIAPI | ArmReadCntPct (VOID) |
| UINTN EFIAPI | ArmReadCntkCtl (VOID) |
| VOID EFIAPI | ArmWriteCntkCtl (UINTN Val) |
| UINTN EFIAPI | ArmReadCntpTval (VOID) |
| VOID EFIAPI | ArmWriteCntpTval (UINTN Val) |
| UINTN EFIAPI | ArmReadCntpCtl (VOID) |
| VOID EFIAPI | ArmWriteCntpCtl (UINTN Val) |
| UINTN EFIAPI | ArmReadCntvTval (VOID) |
| VOID EFIAPI | ArmWriteCntvTval (UINTN Val) |
| UINTN EFIAPI | ArmReadCntvCtl (VOID) |
| VOID EFIAPI | ArmWriteCntvCtl (UINTN Val) |
| UINT64 EFIAPI | ArmReadCntvCt (VOID) |
| UINT64 EFIAPI | ArmReadCntpCval (VOID) |
| VOID EFIAPI | ArmWriteCntpCval (UINT64 Val) |
| UINT64 EFIAPI | ArmReadCntvCval (VOID) |
| VOID EFIAPI | ArmWriteCntvCval (UINT64 Val) |
| UINT64 EFIAPI | ArmReadCntvOff (VOID) |
| VOID EFIAPI | ArmWriteCntvOff (UINT64 Val) |
| UINTN EFIAPI | ArmGetPhysicalAddressBits (VOID) |
| BOOLEAN EFIAPI | ArmHasGicSystemRegisters (VOID) |
| BOOLEAN EFIAPI | ArmHasCcidx (VOID) |
| BOOLEAN EFIAPI | ArmHasSecurityExtensions (VOID) |
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
Copyright (c) 2011 - 2016, ARM Ltd. All rights reserved.
Copyright (c) 2020 - 2021, NUVIA Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
| #define ARM_ARCH_TIMER_ENABLE (1 << 0) |
| #define ARM_ARCH_TIMER_IMASK (1 << 1) |
| #define ARM_ARCH_TIMER_ISTATUS (1 << 2) |
| #define ARM_CLUSTER_MASK ARM_CORE_AFF1 |
| #define ARM_CORE_AFF0 0xFF |
| #define ARM_CORE_AFF1 (0xFF << 8) |
| #define ARM_CORE_AFF2 (0xFF << 16) |
| #define ARM_CORE_AFF3 (0xFFULL << 32) |
| #define ARM_CORE_MASK ARM_CORE_AFF0 |
| #define ARM_CPU_IMPLEMENTER_ARMLTD (0x41U << 24) |
| #define ARM_CPU_IMPLEMENTER_DEC (0x44U << 24) |
| #define ARM_CPU_IMPLEMENTER_MARVELL (0x56U << 24) |
| #define ARM_CPU_IMPLEMENTER_MASK (0xFFU << 24) |
| #define ARM_CPU_IMPLEMENTER_MOT (0x4DU << 24) |
| #define ARM_CPU_IMPLEMENTER_QUALCOMM (0x51U << 24) |
| #define ARM_CPU_PRIMARY_PART_CORTEXA15 (0xC0F << 4) |
| #define ARM_CPU_PRIMARY_PART_CORTEXA5 (0xC05 << 4) |
| #define ARM_CPU_PRIMARY_PART_CORTEXA7 (0xC07 << 4) |
| #define ARM_CPU_PRIMARY_PART_CORTEXA8 (0xC08 << 4) |
| #define ARM_CPU_PRIMARY_PART_CORTEXA9 (0xC09 << 4) |
| #define ARM_CPU_PRIMARY_PART_MASK (0xFFF << 4) |
| #define EFI_MEMORY_CACHETYPE_MASK |
| #define GET_CLUSTER_ID | ( | MpId | ) | (((MpId) & ARM_CLUSTER_MASK) >> 8) |
| #define GET_CORE_ID | ( | MpId | ) | ((MpId) & ARM_CORE_MASK) |
| #define GET_MPID | ( | ClusterId, | |
| CoreId | |||
| ) | (((ClusterId) << 8) | (CoreId)) |
| #define IS_ARM_MEMORY_REGION_ATTRIBUTES_SECURE | ( | attr | ) | ((UINT32)(attr) & 1) |
| #define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK) |
| typedef VOID(* CACHE_OPERATION)(VOID) |
| typedef VOID(* LINE_OPERATION)(UINTN) |
The UEFI firmware must not use the ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_* attributes.
The Non Secure memory attribute (ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_*) should only be used in Secure World to distinguished Secure to Non-Secure memory.
| enum ARM_PROCESSOR_MODE |
| UINTN EFIAPI ArmCacheInfo | ( | VOID | ) |
| UINTN EFIAPI ArmCacheWritebackGranule | ( | VOID | ) |
| VOID EFIAPI ArmCallSEV | ( | VOID | ) |
| VOID EFIAPI ArmCallWFE | ( | VOID | ) |
| VOID EFIAPI ArmCallWFI | ( | VOID | ) |
| VOID EFIAPI ArmCleanDataCache | ( | VOID | ) |
| VOID EFIAPI ArmCleanDataCacheEntryByMVA | ( | IN UINTN | Address | ) |
| VOID EFIAPI ArmCleanDataCacheEntryToPoUByMVA | ( | IN UINTN | Address | ) |
| VOID EFIAPI ArmCleanInvalidateDataCache | ( | VOID | ) |
| VOID EFIAPI ArmCleanInvalidateDataCacheEntryByMVA | ( | IN UINTN | Address | ) |
| UINTN EFIAPI ArmDataCacheLineLength | ( | VOID | ) |
| VOID EFIAPI ArmDataMemoryBarrier | ( | VOID | ) |
| VOID EFIAPI ArmDataSynchronizationBarrier | ( | VOID | ) |
| UINTN EFIAPI ArmDisableAsynchronousAbort | ( | VOID | ) |
| VOID EFIAPI ArmDisableBranchPrediction | ( | VOID | ) |
| VOID EFIAPI ArmDisableCachesAndMmu | ( | VOID | ) |
| VOID EFIAPI ArmDisableDataCache | ( | VOID | ) |
| UINTN EFIAPI ArmDisableFiq | ( | VOID | ) |
| VOID EFIAPI ArmDisableInstructionCache | ( | VOID | ) |
| UINTN EFIAPI ArmDisableInterrupts | ( | VOID | ) |
| UINTN EFIAPI ArmDisableIrq | ( | VOID | ) |
| VOID EFIAPI ArmDisableMmu | ( | VOID | ) |
| VOID EFIAPI ArmEnableAsynchronousAbort | ( | VOID | ) |
| VOID EFIAPI ArmEnableBranchPrediction | ( | VOID | ) |
| VOID EFIAPI ArmEnableCachesAndMmu | ( | VOID | ) |
| VOID EFIAPI ArmEnableDataCache | ( | VOID | ) |
| VOID EFIAPI ArmEnableFiq | ( | VOID | ) |
| VOID EFIAPI ArmEnableInstructionCache | ( | VOID | ) |
| VOID EFIAPI ArmEnableInterrupts | ( | VOID | ) |
| VOID EFIAPI ArmEnableIrq | ( | VOID | ) |
| VOID EFIAPI ArmEnableMmu | ( | VOID | ) |
| VOID EFIAPI ArmEnableVFP | ( | VOID | ) |
| BOOLEAN EFIAPI ArmGetFiqState | ( | VOID | ) |
| BOOLEAN EFIAPI ArmGetInterruptState | ( | VOID | ) |
| UINTN EFIAPI ArmGetPhysicalAddressBits | ( | VOID | ) |
| VOID* EFIAPI ArmGetTTBR0BaseAddress | ( | VOID | ) |
| BOOLEAN EFIAPI ArmHasCcidx | ( | VOID | ) |
Checks if CCIDX is implemented.
| TRUE | CCIDX is implemented. |
| FALSE | CCIDX is not implemented. |
| BOOLEAN EFIAPI ArmHasGicSystemRegisters | ( | VOID | ) |
ID Register Helper functions Check whether the CPU supports the GIC system register interface (any version)
| BOOLEAN EFIAPI ArmHasSecurityExtensions | ( | VOID | ) |
AArch32-only ID Register Helper functions Check whether the CPU supports the Security extensions
| UINTN EFIAPI ArmInstructionCacheLineLength | ( | VOID | ) |
| VOID EFIAPI ArmInstructionSynchronizationBarrier | ( | VOID | ) |
| VOID EFIAPI ArmInvalidateDataCache | ( | VOID | ) |
| VOID EFIAPI ArmInvalidateDataCacheEntryByMVA | ( | IN UINTN | Address | ) |
| VOID EFIAPI ArmInvalidateInstructionCache | ( | VOID | ) |
| VOID EFIAPI ArmInvalidateInstructionCacheEntryToPoUByMVA | ( | IN UINTN | Address | ) |
| VOID EFIAPI ArmInvalidateTlb | ( | VOID | ) |
Invalidate Data and Instruction TLBs
| UINTN EFIAPI ArmIsArchTimerImplemented | ( | VOID | ) |
| BOOLEAN EFIAPI ArmIsMpCore | ( | VOID | ) |
| BOOLEAN EFIAPI ArmMmuEnabled | ( | VOID | ) |
| UINT32 EFIAPI ArmReadAuxCr | ( | VOID | ) |
| UINTN EFIAPI ArmReadCntFrq | ( | VOID | ) |
| UINTN EFIAPI ArmReadCntkCtl | ( | VOID | ) |
| UINT64 EFIAPI ArmReadCntPct | ( | VOID | ) |
| UINTN EFIAPI ArmReadCntpCtl | ( | VOID | ) |
| UINT64 EFIAPI ArmReadCntpCval | ( | VOID | ) |
| UINTN EFIAPI ArmReadCntpTval | ( | VOID | ) |
| UINT64 EFIAPI ArmReadCntvCt | ( | VOID | ) |
| UINTN EFIAPI ArmReadCntvCtl | ( | VOID | ) |
| UINT64 EFIAPI ArmReadCntvCval | ( | VOID | ) |
| UINT64 EFIAPI ArmReadCntvOff | ( | VOID | ) |
| UINTN EFIAPI ArmReadCntvTval | ( | VOID | ) |
| UINT32 EFIAPI ArmReadCpacr | ( | VOID | ) |
| UINTN EFIAPI ArmReadCpuActlr | ( | VOID | ) |
| UINTN EFIAPI ArmReadHVBar | ( | VOID | ) |
| UINTN EFIAPI ArmReadMidr | ( | VOID | ) |
| UINTN EFIAPI ArmReadMpidr | ( | VOID | ) |
| UINT32 EFIAPI ArmReadMVBar | ( | VOID | ) |
| UINT32 EFIAPI ArmReadScr | ( | VOID | ) |
Get the Secure Configuration Register value
| UINT32 EFIAPI ArmReadSctlr | ( | VOID | ) |
| UINTN EFIAPI ArmReadVBar | ( | VOID | ) |
| VOID EFIAPI ArmSetAuxCrBit | ( | IN UINT32 | Bits | ) |
| VOID EFIAPI ArmSetCpuActlrBit | ( | IN UINTN | Bits | ) |
| VOID EFIAPI ArmSetDomainAccessControl | ( | IN UINT32 | Domain | ) |
| VOID EFIAPI ArmSetHighVectors | ( | VOID | ) |
| VOID EFIAPI ArmSetLowVectors | ( | VOID | ) |
| VOID EFIAPI ArmSetTTBCR | ( | IN UINT32 | Bits | ) |
| VOID EFIAPI ArmSetTTBR0 | ( | IN VOID * | TranslationTableBase | ) |
| VOID EFIAPI ArmUnsetAuxCrBit | ( | IN UINT32 | Bits | ) |
| VOID EFIAPI ArmUnsetCpuActlrBit | ( | IN UINTN | Bits | ) |
| VOID EFIAPI ArmUpdateTranslationTableEntry | ( | IN VOID * | TranslationTableEntry, |
| IN VOID * | Mva | ||
| ) |
| VOID EFIAPI ArmWriteAuxCr | ( | IN UINT32 | Bit | ) |
| VOID EFIAPI ArmWriteCntFrq | ( | UINTN | FreqInHz | ) |
| VOID EFIAPI ArmWriteCntkCtl | ( | UINTN | Val | ) |
| VOID EFIAPI ArmWriteCntpCtl | ( | UINTN | Val | ) |
| VOID EFIAPI ArmWriteCntpCval | ( | UINT64 | Val | ) |
| VOID EFIAPI ArmWriteCntpTval | ( | UINTN | Val | ) |
| VOID EFIAPI ArmWriteCntvCtl | ( | UINTN | Val | ) |
| VOID EFIAPI ArmWriteCntvCval | ( | UINT64 | Val | ) |
| VOID EFIAPI ArmWriteCntvOff | ( | UINT64 | Val | ) |
| VOID EFIAPI ArmWriteCntvTval | ( | UINTN | Val | ) |
| VOID EFIAPI ArmWriteCpacr | ( | IN UINT32 | Access | ) |
| VOID EFIAPI ArmWriteCpuActlr | ( | IN UINTN | Val | ) |
| VOID EFIAPI ArmWriteHVBar | ( | IN UINTN | HypModeVectorBase | ) |
| VOID EFIAPI ArmWriteMVBar | ( | IN UINT32 | VectorMonitorBase | ) |
| VOID EFIAPI ArmWriteScr | ( | IN UINT32 | Value | ) |
Set the Secure Configuration Register
| Value | Value to write to the Secure Configuration Register |
| VOID EFIAPI ArmWriteSctlr | ( | IN UINT32 | Value | ) |
| VOID EFIAPI ArmWriteVBar | ( | IN UINTN | VectorBase | ) |
| UINTN ReadCCSIDR | ( | IN UINT32 | CSSELR | ) |
Reads the CCSIDR register for the specified cache.
| CSSELR | The CSSELR cache selection register value. |
| UINT32 ReadCCSIDR2 | ( | IN UINT32 | CSSELR | ) |
Reads the CCSIDR2 for the specified cache.
| CSSELR | The CSSELR cache selection register value |
| UINT32 ReadCLIDR | ( | VOID | ) |
Reads the Cache Level ID (CLIDR) register.