diff options
author | Aaron Durbin <adurbin@chromium.org> | 2013-02-06 15:47:31 -0600 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2013-03-19 20:31:41 +0100 |
commit | f7c6d489ae28af611811515c1df96cfb10c79e9f (patch) | |
tree | d87fd40fabe4e19139fff548caacd34da77a54a4 /src/include | |
parent | 991ce8fc74ff80cbe2c1c892e40aac0b209f35c4 (diff) |
rmodule: add ramstage support
Coreboot's ramstage defines certain sections/symbols in its fixed
static linker script. It uses these sections/symbols for locating the
drivers as well as its own program information. Add these sections
and symbols to the rmodule linker script so that ramstage can be
linked as an rmodule. These sections and symbols are a noop for other
rmodule-linked programs, but they are vital to the ramstage.
Also add a comment in coreboot_ram.ld to mirror any changes made there
to the rmodule linker script.
Change-Id: Ib9885a00e987aef0ee1ae34f1d73066e15bca9b1
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/2786
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones@se-eng.com>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/rmodule.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/include/rmodule.h b/src/include/rmodule.h index 30eee0ea05..5300c63766 100644 --- a/src/include/rmodule.h +++ b/src/include/rmodule.h @@ -27,6 +27,7 @@ enum { RMODULE_TYPE_SMM, RMODULE_TYPE_SIPI_VECTOR, + RMODULE_TYPE_STAGE, }; struct rmodule; @@ -58,8 +59,8 @@ int rmodule_load_alignment(const struct rmodule *m); .module_entry_point = FIELD_ENTRY(entry_), \ .parameters_begin = FIELD_ENTRY(_module_params_begin), \ .parameters_end = FIELD_ENTRY(_module_params_end), \ - .bss_begin = FIELD_ENTRY(_bss_begin), \ - .bss_end = FIELD_ENTRY(_bss_end), \ + .bss_begin = FIELD_ENTRY(_bss), \ + .bss_end = FIELD_ENTRY(_ebss), \ } #define DEFINE_RMODULE_HEADER(name_, entry_, type_) \ @@ -119,8 +120,8 @@ extern char _relocations_begin_offset[]; extern char _relocations_end_offset[]; extern char _payload_end_offset[]; extern char _payload_begin_offset[]; -extern char _bss_begin[]; -extern char _bss_end[]; +extern char _bss[]; +extern char _ebss[]; extern char _module_program_size[]; extern char _module_link_start_addr[]; extern char _module_params_begin[]; |