2013-01-25 12:28:06 +01:00
|
|
|
/** @file
|
|
|
|
|
|
|
|
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
2016-03-02 22:08:46 +01:00
|
|
|
Copyright (c) 2011 - 2016, ARM Ltd. All rights reserved.<BR>
|
2013-01-25 12:28:06 +01:00
|
|
|
|
|
|
|
This program and the accompanying materials
|
|
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
#ifndef __ARM_LIB__
|
|
|
|
#define __ARM_LIB__
|
|
|
|
|
|
|
|
#include <Uefi/UefiBaseType.h>
|
|
|
|
|
2013-07-18 20:07:46 +02:00
|
|
|
#ifdef MDE_CPU_ARM
|
2015-08-19 12:51:59 +02:00
|
|
|
#include <Chipset/ArmV7.h>
|
2013-07-18 20:07:46 +02:00
|
|
|
#elif defined(MDE_CPU_AARCH64)
|
|
|
|
#include <Chipset/AArch64.h>
|
2013-01-25 12:28:06 +01:00
|
|
|
#else
|
2013-07-18 20:07:46 +02:00
|
|
|
#error "Unknown chipset."
|
2013-01-25 12:28:06 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED = 0,
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED,
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK,
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK,
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH,
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH,
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,
|
|
|
|
ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_DEVICE
|
|
|
|
} ARM_MEMORY_REGION_ATTRIBUTES;
|
|
|
|
|
|
|
|
#define IS_ARM_MEMORY_REGION_ATTRIBUTES_SECURE(attr) ((UINT32)(attr) & 1)
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
EFI_PHYSICAL_ADDRESS PhysicalBase;
|
|
|
|
EFI_VIRTUAL_ADDRESS VirtualBase;
|
2014-01-10 12:27:31 +01:00
|
|
|
UINT64 Length;
|
2013-01-25 12:28:06 +01:00
|
|
|
ARM_MEMORY_REGION_ATTRIBUTES Attributes;
|
|
|
|
} ARM_MEMORY_REGION_DESCRIPTOR;
|
|
|
|
|
|
|
|
typedef VOID (*CACHE_OPERATION)(VOID);
|
|
|
|
typedef VOID (*LINE_OPERATION)(UINTN);
|
|
|
|
|
|
|
|
//
|
|
|
|
// ARM Processor Mode
|
|
|
|
//
|
|
|
|
typedef enum {
|
|
|
|
ARM_PROCESSOR_MODE_USER = 0x10,
|
|
|
|
ARM_PROCESSOR_MODE_FIQ = 0x11,
|
|
|
|
ARM_PROCESSOR_MODE_IRQ = 0x12,
|
|
|
|
ARM_PROCESSOR_MODE_SUPERVISOR = 0x13,
|
|
|
|
ARM_PROCESSOR_MODE_ABORT = 0x17,
|
|
|
|
ARM_PROCESSOR_MODE_HYP = 0x1A,
|
|
|
|
ARM_PROCESSOR_MODE_UNDEFINED = 0x1B,
|
|
|
|
ARM_PROCESSOR_MODE_SYSTEM = 0x1F,
|
|
|
|
ARM_PROCESSOR_MODE_MASK = 0x1F
|
|
|
|
} ARM_PROCESSOR_MODE;
|
|
|
|
|
|
|
|
//
|
|
|
|
// ARM Cpu IDs
|
|
|
|
//
|
|
|
|
#define ARM_CPU_IMPLEMENTER_MASK (0xFFU << 24)
|
|
|
|
#define ARM_CPU_IMPLEMENTER_ARMLTD (0x41U << 24)
|
|
|
|
#define ARM_CPU_IMPLEMENTER_DEC (0x44U << 24)
|
|
|
|
#define ARM_CPU_IMPLEMENTER_MOT (0x4DU << 24)
|
|
|
|
#define ARM_CPU_IMPLEMENTER_QUALCOMM (0x51U << 24)
|
|
|
|
#define ARM_CPU_IMPLEMENTER_MARVELL (0x56U << 24)
|
|
|
|
|
|
|
|
#define ARM_CPU_PRIMARY_PART_MASK (0xFFF << 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_CORTEXA15 (0xC0F << 4)
|
|
|
|
|
|
|
|
//
|
|
|
|
// ARM MP Core IDs
|
|
|
|
//
|
2015-02-16 11:19:52 +01:00
|
|
|
#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_CLUSTER_MASK ARM_CORE_AFF1
|
2013-01-25 12:28:06 +01:00
|
|
|
#define GET_CORE_ID(MpId) ((MpId) & ARM_CORE_MASK)
|
|
|
|
#define GET_CLUSTER_ID(MpId) (((MpId) & ARM_CLUSTER_MASK) >> 8)
|
2013-05-13 01:56:35 +02:00
|
|
|
#define GET_MPID(ClusterId, CoreId) (((ClusterId) << 8) | (CoreId))
|
2013-01-25 12:28:06 +01:00
|
|
|
#define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK)
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmDataCacheLineLength (
|
|
|
|
VOID
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmInstructionCacheLineLength (
|
|
|
|
VOID
|
|
|
|
);
|
2013-11-28 22:37:36 +01:00
|
|
|
|
2015-11-09 14:28:17 +01:00
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmCacheWritebackGranule (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-11-28 22:37:36 +01:00
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmIsArchTimerImplemented (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmReadIdPfr0 (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmReadIdPfr1 (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-03-24 16:26:22 +01:00
|
|
|
UINTN
|
2013-01-25 12:28:06 +01:00
|
|
|
EFIAPI
|
2014-03-24 16:26:22 +01:00
|
|
|
ArmCacheInfo (
|
2013-01-25 12:28:06 +01:00
|
|
|
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
|
2016-05-11 10:38:47 +02:00
|
|
|
ArmCleanDataCacheEntryToPoUByMVA (
|
2013-01-25 12:28:06 +01:00
|
|
|
IN UINTN Address
|
|
|
|
);
|
|
|
|
|
2015-12-08 16:58:53 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
2016-05-11 10:38:47 +02:00
|
|
|
ArmInvalidateInstructionCacheEntryToPoUByMVA (
|
|
|
|
IN UINTN Address
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmCleanDataCacheEntryByMVA (
|
2015-12-08 16:58:53 +01:00
|
|
|
IN UINTN Address
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmCleanInvalidateDataCacheEntryByMVA (
|
|
|
|
IN UINTN Address
|
|
|
|
);
|
|
|
|
|
2014-03-01 11:57:09 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmInvalidateDataCacheEntryBySetWay (
|
|
|
|
IN UINTN SetWayFormat
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmCleanDataCacheEntryBySetWay (
|
|
|
|
IN UINTN SetWayFormat
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmCleanInvalidateDataCacheEntryBySetWay (
|
|
|
|
IN UINTN SetWayFormat
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableDataCache (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableDataCache (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableInstructionCache (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableInstructionCache (
|
|
|
|
VOID
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableMmu (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableMmu (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-03-01 11:57:09 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableCachesAndMmu (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableCachesAndMmu (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableInterrupts (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableInterrupts (
|
|
|
|
VOID
|
|
|
|
);
|
2013-01-25 12:52:14 +01:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
BOOLEAN
|
|
|
|
EFIAPI
|
|
|
|
ArmGetInterruptState (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-03-01 11:57:09 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableAsynchronousAbort (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:52:14 +01:00
|
|
|
UINTN
|
|
|
|
EFIAPI
|
2014-03-01 11:57:09 +01:00
|
|
|
ArmDisableAsynchronousAbort (
|
2013-01-25 12:52:14 +01:00
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableIrq (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-03-01 11:57:09 +01:00
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableIrq (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableFiq (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableFiq (
|
|
|
|
VOID
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
BOOLEAN
|
|
|
|
EFIAPI
|
|
|
|
ArmGetFiqState (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-10-27 16:38:55 +01:00
|
|
|
/**
|
|
|
|
* Invalidate Data and Instruction TLBs
|
|
|
|
*/
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmInvalidateTlb (
|
|
|
|
VOID
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmUpdateTranslationTableEntry (
|
|
|
|
IN VOID *TranslationTableEntry,
|
|
|
|
IN VOID *Mva
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmSetDomainAccessControl (
|
|
|
|
IN UINT32 Domain
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmSetTTBR0 (
|
|
|
|
IN VOID *TranslationTableBase
|
|
|
|
);
|
|
|
|
|
2016-03-02 22:08:46 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmSetTTBCR (
|
|
|
|
IN UINT32 Bits
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID *
|
|
|
|
EFIAPI
|
|
|
|
ArmGetTTBR0BaseAddress (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
EFIAPI
|
|
|
|
ArmMmuEnabled (
|
|
|
|
VOID
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableBranchPrediction (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmDisableBranchPrediction (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmSetLowVectors (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmSetHighVectors (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmDataMemoryBarrier (
|
|
|
|
VOID
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
2015-11-09 14:25:50 +01:00
|
|
|
ArmDataSynchronizationBarrier (
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
);
|
2014-08-19 15:29:52 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmInstructionSynchronizationBarrier (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmWriteVBar (
|
2014-02-05 13:53:09 +01:00
|
|
|
IN UINTN VectorBase
|
2013-01-25 12:28:06 +01:00
|
|
|
);
|
|
|
|
|
2014-02-05 13:53:09 +01:00
|
|
|
UINTN
|
2013-01-25 12:28:06 +01:00
|
|
|
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 (
|
2013-07-18 20:07:46 +02:00
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmReadMpidr (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-02-12 16:14:41 +01:00
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmReadMidr (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
UINT32
|
|
|
|
EFIAPI
|
|
|
|
ArmReadCpacr (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmWriteCpacr (
|
|
|
|
IN UINT32 Access
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmEnableVFP (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-07-29 16:10:45 +02:00
|
|
|
/**
|
|
|
|
Get the Secure Configuration Register value
|
|
|
|
|
|
|
|
@return Value read from the Secure Configuration Register
|
|
|
|
|
|
|
|
**/
|
2013-01-25 12:28:06 +01:00
|
|
|
UINT32
|
|
|
|
EFIAPI
|
|
|
|
ArmReadScr (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2014-07-29 16:10:45 +02:00
|
|
|
/**
|
|
|
|
Set the Secure Configuration Register
|
|
|
|
|
|
|
|
@param Value Value to write to the Secure Configuration Register
|
|
|
|
|
|
|
|
**/
|
2013-01-25 12:28:06 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmWriteScr (
|
2014-07-29 16:10:45 +02:00
|
|
|
IN UINT32 Value
|
2013-01-25 12:28:06 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
UINT32
|
|
|
|
EFIAPI
|
|
|
|
ArmReadMVBar (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmWriteMVBar (
|
|
|
|
IN UINT32 VectorMonitorBase
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT32
|
|
|
|
EFIAPI
|
|
|
|
ArmReadSctlr (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-03-12 01:59:46 +01:00
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmReadHVBar (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmWriteHVBar (
|
|
|
|
IN UINTN HypModeVectorBase
|
|
|
|
);
|
|
|
|
|
2014-03-26 20:31:01 +01:00
|
|
|
|
|
|
|
//
|
|
|
|
// Helper functions for accessing CPU ACTLR
|
|
|
|
//
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EFIAPI
|
|
|
|
ArmReadCpuActlr (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmWriteCpuActlr (
|
|
|
|
IN UINTN Val
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmSetCpuActlrBit (
|
|
|
|
IN UINTN Bits
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ArmUnsetCpuActlrBit (
|
|
|
|
IN UINTN Bits
|
|
|
|
);
|
|
|
|
|
2013-01-25 12:28:06 +01:00
|
|
|
#endif // __ARM_LIB__
|