From 16a9fe2ca9cc845cdc31ed8ff8310594c4a34717 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Fri, 5 Aug 2016 14:02:50 +0200 Subject: [PATCH 1/1] 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 Reviewed-by: Leif Lindholm --- ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 7 +------ 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 d6be345418..1fed84ed0a 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 3215c7d558..a0176af91c 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 -- 2.39.2