mirror of https://github.com/acidanthera/audk.git
ArmPkg|EmbeddedPkg: make PcdCpuVectorBaseAddress 64 bits wide
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leo Duran <leo.duran@amd.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
This commit is contained in:
parent
91673dfdfe
commit
f0bbcdf80d
|
@ -60,7 +60,7 @@
|
|||
# On ARM Architecture with the Security Extension, the address for the
|
||||
# Vector Table can be mapped anywhere in the memory map. It means we can
|
||||
# point the Exception Vector Table to its location in CpuDxe.
|
||||
# By default we copy the Vector Table at PcdGet32(PcdCpuVectorBaseAddress)
|
||||
# By default we copy the Vector Table at PcdGet64(PcdCpuVectorBaseAddress)
|
||||
gArmTokenSpaceGuid.PcdRelocateVectorTable|TRUE|BOOLEAN|0x00000022
|
||||
# Set this PCD to TRUE if the Exception Vector is changed to add debugger support before
|
||||
# it has been configured by the CPU DXE
|
||||
|
@ -90,7 +90,7 @@
|
|||
# This PCD will free the unallocated buffers if their size reach this threshold.
|
||||
# We set the default value to 512MB.
|
||||
gArmTokenSpaceGuid.PcdArmFreeUncachedMemorySizeThreshold|0x20000000|UINT64|0x00000003
|
||||
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0xffff0000|UINT32|0x00000004
|
||||
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0xffff0000|UINT64|0x00000004
|
||||
gArmTokenSpaceGuid.PcdCpuResetAddress|0x00000000|UINT32|0x00000005
|
||||
|
||||
#
|
||||
|
|
|
@ -103,7 +103,7 @@ InitializeCpuExceptionHandlers(
|
|||
// if we are requested to copy exceptin handlers to another location
|
||||
if (gArmRelocateVectorTable) {
|
||||
|
||||
VectorBase = PcdGet32(PcdCpuVectorBaseAddress);
|
||||
VectorBase = PcdGet64(PcdCpuVectorBaseAddress);
|
||||
Status = CopyExceptionHandlers(VectorBase);
|
||||
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ InitializeCpuExceptionHandlers(
|
|||
// for encapsulated FVs.
|
||||
ASSERT(((UINTN)ExceptionHandlersStart & gExceptionVectorAlignmentMask) == 0);
|
||||
|
||||
// We do not copy the Exception Table at PcdGet32(PcdCpuVectorBaseAddress). We just set Vector
|
||||
// We do not copy the Exception Table at PcdGet64(PcdCpuVectorBaseAddress). We just set Vector
|
||||
// Base Address to point into CpuDxe code.
|
||||
VectorBase = (UINTN)ExceptionHandlersStart;
|
||||
|
||||
|
|
|
@ -481,7 +481,7 @@ InFiqCrack (
|
|||
IN UINT32 PC
|
||||
)
|
||||
{
|
||||
UINT32 VectorBase = PcdGet32 (PcdCpuVectorBaseAddress);
|
||||
UINT64 VectorBase = PcdGet64 (PcdCpuVectorBaseAddress);
|
||||
UINT32 Length = (UINTN)ExceptionHandlersEnd - (UINTN)ExceptionHandlersStart;
|
||||
|
||||
if ((PC >= VectorBase) && (PC <= (VectorBase + Length))) {
|
||||
|
@ -626,7 +626,7 @@ InitializeDebugAgent (
|
|||
UINTN Offset;
|
||||
UINTN Length;
|
||||
BOOLEAN IrqEnabled;
|
||||
UINT32 *VectorBase;
|
||||
UINT64 *VectorBase;
|
||||
|
||||
|
||||
//
|
||||
|
@ -644,7 +644,7 @@ InitializeDebugAgent (
|
|||
//
|
||||
// Reserve space for the exception handlers
|
||||
//
|
||||
VectorBase = (UINT32 *)(UINTN)PcdGet32 (PcdCpuVectorBaseAddress);
|
||||
VectorBase = (UINT64 *)(UINTN)PcdGet64 (PcdCpuVectorBaseAddress);
|
||||
|
||||
|
||||
// Copy our assembly code into the page that contains the exception vectors.
|
||||
|
@ -657,7 +657,7 @@ InitializeDebugAgent (
|
|||
*(UINTN *) (((UINT8 *)VectorBase) + Offset) = (UINTN)AsmCommonExceptionEntry;
|
||||
|
||||
// Flush Caches since we updated executable stuff
|
||||
InvalidateInstructionCacheRange ((VOID *)PcdGet32(PcdCpuVectorBaseAddress), Length);
|
||||
InvalidateInstructionCacheRange ((VOID *)PcdGet64(PcdCpuVectorBaseAddress), Length);
|
||||
|
||||
// setup a timer so gdb can break in via ctrl-c
|
||||
DebugAgentTimerIntialize ();
|
||||
|
|
Loading…
Reference in New Issue