diff mbox

[edk2,1/2] ArmVirtPkg/PrePi: remove mSystemMemoryEnd

Message ID 1477299443-9324-1-git-send-email-ard.biesheuvel@linaro.org
State Accepted
Commit 5b005a6b322feea8be7303ad50a09cecfecdbaba
Headers show

Commit Message

Ard Biesheuvel Oct. 24, 2016, 8:57 a.m. UTC
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

Comments

Laszlo Ersek Oct. 24, 2016, 11:29 a.m. UTC | #1
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 mbox

Patch

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 (