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:
Leendert van Doorn 2016-03-24 15:30:06 -05:00 committed by Ard Biesheuvel
parent 91673dfdfe
commit f0bbcdf80d
3 changed files with 8 additions and 8 deletions

View File

@ -60,7 +60,7 @@
# On ARM Architecture with the Security Extension, the address for the # 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 # Vector Table can be mapped anywhere in the memory map. It means we can
# point the Exception Vector Table to its location in CpuDxe. # 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 gArmTokenSpaceGuid.PcdRelocateVectorTable|TRUE|BOOLEAN|0x00000022
# Set this PCD to TRUE if the Exception Vector is changed to add debugger support before # Set this PCD to TRUE if the Exception Vector is changed to add debugger support before
# it has been configured by the CPU DXE # 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. # This PCD will free the unallocated buffers if their size reach this threshold.
# We set the default value to 512MB. # We set the default value to 512MB.
gArmTokenSpaceGuid.PcdArmFreeUncachedMemorySizeThreshold|0x20000000|UINT64|0x00000003 gArmTokenSpaceGuid.PcdArmFreeUncachedMemorySizeThreshold|0x20000000|UINT64|0x00000003
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0xffff0000|UINT32|0x00000004 gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0xffff0000|UINT64|0x00000004
gArmTokenSpaceGuid.PcdCpuResetAddress|0x00000000|UINT32|0x00000005 gArmTokenSpaceGuid.PcdCpuResetAddress|0x00000000|UINT32|0x00000005
# #

View File

@ -103,7 +103,7 @@ InitializeCpuExceptionHandlers(
// if we are requested to copy exceptin handlers to another location // if we are requested to copy exceptin handlers to another location
if (gArmRelocateVectorTable) { if (gArmRelocateVectorTable) {
VectorBase = PcdGet32(PcdCpuVectorBaseAddress); VectorBase = PcdGet64(PcdCpuVectorBaseAddress);
Status = CopyExceptionHandlers(VectorBase); Status = CopyExceptionHandlers(VectorBase);
} }
@ -118,7 +118,7 @@ InitializeCpuExceptionHandlers(
// for encapsulated FVs. // for encapsulated FVs.
ASSERT(((UINTN)ExceptionHandlersStart & gExceptionVectorAlignmentMask) == 0); 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. // Base Address to point into CpuDxe code.
VectorBase = (UINTN)ExceptionHandlersStart; VectorBase = (UINTN)ExceptionHandlersStart;

View File

@ -481,7 +481,7 @@ InFiqCrack (
IN UINT32 PC IN UINT32 PC
) )
{ {
UINT32 VectorBase = PcdGet32 (PcdCpuVectorBaseAddress); UINT64 VectorBase = PcdGet64 (PcdCpuVectorBaseAddress);
UINT32 Length = (UINTN)ExceptionHandlersEnd - (UINTN)ExceptionHandlersStart; UINT32 Length = (UINTN)ExceptionHandlersEnd - (UINTN)ExceptionHandlersStart;
if ((PC >= VectorBase) && (PC <= (VectorBase + Length))) { if ((PC >= VectorBase) && (PC <= (VectorBase + Length))) {
@ -626,7 +626,7 @@ InitializeDebugAgent (
UINTN Offset; UINTN Offset;
UINTN Length; UINTN Length;
BOOLEAN IrqEnabled; BOOLEAN IrqEnabled;
UINT32 *VectorBase; UINT64 *VectorBase;
// //
@ -644,7 +644,7 @@ InitializeDebugAgent (
// //
// Reserve space for the exception handlers // 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. // Copy our assembly code into the page that contains the exception vectors.
@ -657,7 +657,7 @@ InitializeDebugAgent (
*(UINTN *) (((UINT8 *)VectorBase) + Offset) = (UINTN)AsmCommonExceptionEntry; *(UINTN *) (((UINT8 *)VectorBase) + Offset) = (UINTN)AsmCommonExceptionEntry;
// Flush Caches since we updated executable stuff // 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 // setup a timer so gdb can break in via ctrl-c
DebugAgentTimerIntialize (); DebugAgentTimerIntialize ();