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:
|
||||
|
||||
Reference in New Issue
Block a user