rmodule: use program.ld for linking
Bring rmodule linking into the common linking method. The __rmodule_entry symbol was removed while using a more common _start symbol. The rmodtool will honor the entry point found within the ELF header. Add ENV_RMODULE so that one can distinguish the environment when generating linker scripts for rmodules. Lastly, directly use program.ld for the rmodule.ld linker script. BUG=chrome-os-partner:44827 BRANCH=None TEST=Built rambi and analyzed the relocatable ramstage, sipi_vector, and smm rmodules. Change-Id: Iaa499eb229d8171272add9ee6d27cff75e7534ac Signed-off-by: Aaron Durbin <adubin@chromium.org> Reviewed-on: http://review.coreboot.org/11517 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
* Foundation, Inc.
|
||||
*/
|
||||
|
||||
#include <rules.h>
|
||||
|
||||
/* We use ELF as output format. So that we can debug the code in some form. */
|
||||
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
|
||||
OUTPUT_ARCH(aarch64)
|
||||
@@ -26,7 +28,13 @@ PHDRS
|
||||
to_load PT_LOAD;
|
||||
}
|
||||
|
||||
#ifdef __BOOTBLOCK__
|
||||
#if ENV_BOOTBLOCK
|
||||
TARGET(binary)
|
||||
#endif
|
||||
|
||||
/* secmon uses rmodules */
|
||||
#if ENV_RMODULE
|
||||
ENTRY(_start)
|
||||
#else
|
||||
ENTRY(stage_entry)
|
||||
#endif
|
||||
|
@@ -136,12 +136,12 @@ ENDPROC(arm64_c_environment)
|
||||
2002:
|
||||
.endm
|
||||
|
||||
ENTRY(__rmodule_entry)
|
||||
ENTRY(_start)
|
||||
split_bsp_path
|
||||
/* Save the arguments to secmon in x25 */
|
||||
mov x25, x0
|
||||
b arm64_c_environment
|
||||
ENDPROC(__rmodule_entry)
|
||||
ENDPROC(_start)
|
||||
|
||||
/*
|
||||
* Setup SCTLR so that:
|
||||
|
@@ -23,8 +23,6 @@ thread_stacks:
|
||||
.code32
|
||||
#endif
|
||||
.globl _start
|
||||
.globl __rmodule_entry
|
||||
__rmodule_entry:
|
||||
_start:
|
||||
cli
|
||||
lgdt %cs:gdtaddr
|
||||
|
@@ -24,7 +24,7 @@ PHDRS
|
||||
to_load PT_LOAD;
|
||||
}
|
||||
|
||||
#if ENV_RAMSTAGE
|
||||
#if ENV_RAMSTAGE || ENV_RMODULE
|
||||
ENTRY(_start)
|
||||
#elif ENV_ROMSTAGE
|
||||
ENTRY(protected_start)
|
||||
|
Reference in New Issue
Block a user