From 5b005a6b322feea8be7303ad50a09cecfecdbaba Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Mon, 24 Oct 2016 09:22:22 +0100 Subject: [PATCH] ArmVirtPkg/PrePi: remove mSystemMemoryEnd Recording the top of SEC visible system memory in a global variable is not necessary, and violates the constraints of the SEC/PEI environment, given that it may execute from NOR flash. So remove it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel Acked-by: Laszlo Ersek --- ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 6 ------ ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S | 8 +------- ArmVirtPkg/PrePi/PrePi.h | 2 -- 3 files changed, 1 insertion(+), 15 deletions(-) diff --git a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S index 9c040b17f2..cc8b47e690 100644 --- a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S +++ b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S @@ -14,8 +14,6 @@ #include -ASM_GLOBAL ASM_PFX(mSystemMemoryEnd) - ASM_FUNC(_ModuleEntryPoint) // // We are built as a ET_DYN PIE executable, so we need to process all @@ -68,8 +66,6 @@ _SetupStackPosition: ldr x2, PcdGet64 (PcdSystemMemorySize) sub x2, x2, #1 add x1, x1, x2 // x1 = SystemMemoryTop = PcdSystemMemoryBase + PcdSystemMemorySize - adr x2, mSystemMemoryEnd - str x1, [x2] // Calculate Top of the Firmware Device ldr x2, PcdGet64 (PcdFdBaseAddress) @@ -151,5 +147,3 @@ _PrepareArguments: _NeverReturn: b _NeverReturn - -ASM_PFX(mSystemMemoryEnd): .8byte 0 diff --git a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S index e03aeefbb0..59028d0a55 100644 --- a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S +++ b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S @@ -14,8 +14,6 @@ #include -ASM_GLOBAL ASM_PFX(mSystemMemoryEnd) - ASM_FUNC(_ModuleEntryPoint) // // We are built as a ET_DYN PIE executable, so we need to process all @@ -66,12 +64,10 @@ _SetupStackPosition: ADRL (r12, PcdGet64 (PcdSystemMemorySize)) ldrd r2, r3, [r12] - // calculate the top of memory, and record it in mSystemMemoryEnd + // calculate the top of memory adds r2, r2, r1 sub r2, r2, #1 addcs r3, r3, #1 - adr r12, mSystemMemoryEnd - strd r2, r3, [r12] // truncate the memory used by UEFI to 4 GB range teq r3, #0 @@ -159,5 +155,3 @@ _PrepareArguments: _NeverReturn: b _NeverReturn - -ASM_PFX(mSystemMemoryEnd): .quad 0 diff --git a/ArmVirtPkg/PrePi/PrePi.h b/ArmVirtPkg/PrePi/PrePi.h index 9b828377ad..d3189c0b8a 100644 --- a/ArmVirtPkg/PrePi/PrePi.h +++ b/ArmVirtPkg/PrePi/PrePi.h @@ -29,8 +29,6 @@ #define SerialPrint(txt) SerialPortWrite (txt, AsciiStrLen(txt)+1); -extern UINT64 mSystemMemoryEnd; - RETURN_STATUS EFIAPI TimerConstructor ( -- 2.39.2