mirror of https://github.com/acidanthera/audk.git
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:
parent
d2d0e27c76
commit
16a9fe2ca9
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue