diff options
| author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-08-05 14:02:50 +0200 |
|---|---|---|
| committer | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2016-08-11 12:29:31 +0200 |
| commit | 16a9fe2ca9cc845cdc31ed8ff8310594c4a34717 (patch) | |
| tree | 3e099cfb684149f7b97a679fd489f58b44ea881b /ArmVirtPkg | |
| parent | d2d0e27c7668017ef3d435a18e5d8008d36632d1 (diff) | |
| download | device_linaro_bootloader_edk2-16a9fe2ca9cc845cdc31ed8ff8310594c4a34717.tar.gz device_linaro_bootloader_edk2-16a9fe2ca9cc845cdc31ed8ff8310594c4a34717.tar.bz2 device_linaro_bootloader_edk2-16a9fe2ca9cc845cdc31ed8ff8310594c4a34717.zip | |
ArmVirt/PrePi: make jump to CEntryPoint relative
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>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Diffstat (limited to 'ArmVirtPkg')
| -rw-r--r-- | ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 7 | ||||
| -rw-r--r-- | ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S | 7 |
2 files changed, 2 insertions, 12 deletions
diff --git a/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S b/ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S index d6be34541..1fed84ed0 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 3215c7d55..a0176af91 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
|
