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:
Aaron Durbin
2015-09-05 12:59:26 -05:00
parent e5bad5cd3d
commit dde7629e9c
14 changed files with 64 additions and 125 deletions

View File

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

View File

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

View File

@@ -23,8 +23,6 @@ thread_stacks:
.code32
#endif
.globl _start
.globl __rmodule_entry
__rmodule_entry:
_start:
cli
lgdt %cs:gdtaddr

View File

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