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>
This commit is contained in:
Ard Biesheuvel 2016-08-05 14:02:50 +02:00
parent d2d0e27c76
commit 16a9fe2ca9
2 changed files with 2 additions and 12 deletions

View File

@ -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

View File

@ -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