Message ID | 1477299443-9324-1-git-send-email-ard.biesheuvel@linaro.org |
---|---|
State | Accepted |
Commit | 5b005a6b322feea8be7303ad50a09cecfecdbaba |
Headers | show |
On 10/24/16 10:57, Ard Biesheuvel wrote: > 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 <ard.biesheuvel@linaro.org> > --- > 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 9c040b17f253..cc8b47e69026 100644 > --- a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S > +++ b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S > @@ -14,8 +14,6 @@ > > #include <AsmMacroIoLibV8.h> > > -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 e03aeefbb003..59028d0a553e 100644 > --- a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S > +++ b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S > @@ -14,8 +14,6 @@ > > #include <AsmMacroIoLib.h> > > -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 9b828377adc3..d3189c0b8a6f 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 ( > series Acked-by: Laszlo Ersek <lersek@redhat.com> _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
diff --git a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S index 9c040b17f253..cc8b47e69026 100644 --- a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S +++ b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S @@ -14,8 +14,6 @@ #include <AsmMacroIoLibV8.h> -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 e03aeefbb003..59028d0a553e 100644 --- a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S +++ b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S @@ -14,8 +14,6 @@ #include <AsmMacroIoLib.h> -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 9b828377adc3..d3189c0b8a6f 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 (
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 <ard.biesheuvel@linaro.org> --- ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 6 ------ ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S | 8 +------- ArmVirtPkg/PrePi/PrePi.h | 2 -- 3 files changed, 1 insertion(+), 15 deletions(-) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel