diff mbox

[edk2,06/26] ArmVirt/PrePi: make jump to CEntryPoint relative

Message ID 1470842282-8415-7-git-send-email-ard.biesheuvel@linaro.org
State Accepted
Commit 16a9fe2ca9cc845cdc31ed8ff8310594c4a34717
Headers show

Commit Message

Ard Biesheuvel Aug. 10, 2016, 3:17 p.m. UTC
The ArmVirtPkg platforms that use PrePi have no notion of boot remapped
aliases, so we can simply jump to CEntryPoint() directly rather than
via an absolute reference.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 7 +------
 ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S     | 7 +------
 2 files changed, 2 insertions(+), 12 deletions(-)

-- 
2.7.4

_______________________________________________
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 d6be34541834..1fed84ed0ac3 100644
--- a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S
+++ b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S
@@ -27,7 +27,6 @@  GCC_ASM_IMPORT(ArmPlatformStackSet)
 GCC_ASM_EXPORT(_ModuleEntryPoint)
 ASM_GLOBAL ASM_PFX(mSystemMemoryEnd)
 
-StartupAddr:                  .8byte ASM_PFX(CEntryPoint)
 ASM_PFX(mSystemMemoryEnd):    .8byte 0
 
 ASM_PFX(_ModuleEntryPoint):
@@ -163,15 +162,11 @@  _PrepareArguments:
   mov   x1, x21
   mov   x2, x22
 
-  // Move sec startup address into a data register
-  // Ensure we're jumping to FV version of the code (not boot remapped alias)
-  ldr   x4, StartupAddr
-
   // Jump to PrePiCore C code
   //    x0 = MpId
   //    x1 = UefiMemoryBase
   //    x2 = StacksBase
-  blr   x4
+  bl    ASM_PFX(CEntryPoint)
 
 _NeverReturn:
   b _NeverReturn
diff --git a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S
index 3215c7d55876..a0176af91c8f 100644
--- a/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S
+++ b/ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S
@@ -27,7 +27,6 @@  GCC_ASM_IMPORT(ArmPlatformStackSet)
 GCC_ASM_EXPORT(_ModuleEntryPoint)
 ASM_GLOBAL ASM_PFX(mSystemMemoryEnd)
 
-StartupAddr:                  .long ASM_PFX(CEntryPoint)
 ASM_PFX(mSystemMemoryEnd):    .quad 0
 
 __relocs:
@@ -182,15 +181,11 @@  _PrepareArguments:
   mov   r1, r11
   mov   r2, r9
 
-  // Move sec startup address into a data register
-  // Ensure we're jumping to FV version of the code (not boot remapped alias)
-  ldr   r4, StartupAddr
-
   // Jump to PrePiCore C code
   //    r0 = MpId
   //    r1 = UefiMemoryBase
   //    r2 = StacksBase
-  blx   r4
+  bl    ASM_PFX(CEntryPoint)
 
 _NeverReturn:
   b _NeverReturn