diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2018-09-18 15:49:52 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2018-09-20 14:30:51 +1000 |
commit | 5118fc7fb0ea0bdc4cbb5a286b38cfc259aa0de4 (patch) | |
tree | 7883593b6102a31643c0254035ab763bb077671c /skiboot.lds.S | |
parent | 20126d2678123161b0d3cac44de452fef60386d6 (diff) | |
download | blackbird-skiboot-5118fc7fb0ea0bdc4cbb5a286b38cfc259aa0de4.tar.gz blackbird-skiboot-5118fc7fb0ea0bdc4cbb5a286b38cfc259aa0de4.zip |
skiboot.lds.S: move read-write data after the end of symbol map
This also tidies up linker script symbol declarations and adds
_rodata_mem symbol for the next change to use.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Diffstat (limited to 'skiboot.lds.S')
-rw-r--r-- | skiboot.lds.S | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/skiboot.lds.S b/skiboot.lds.S index a6e71077..8fae2084 100644 --- a/skiboot.lds.S +++ b/skiboot.lds.S @@ -20,6 +20,7 @@ ENTRY(boot_entry); SECTIONS { + _start = .; . = 0; .head : { @@ -65,23 +66,6 @@ SECTIONS __rodata_end = .; } - .data : { - /* - * A couple of things that need to be 4K aligned and - * to reside in their own pages for the sake of TCE - * mappings - */ - . = ALIGN(0x1000); - *(.data.memcons); - . = ALIGN(0x1000); - *(.data.boot_trace); - . = ALIGN(0x1000); - *(.data*) - *(.force.data) - *(.toc1) - *(.branch_lt) - } - . = ALIGN(0x10); .init : { __ctors_start = .; @@ -146,6 +130,29 @@ SECTIONS __sym_map_end = . ; } + /* + * Memory above this point should be un-changing after the OS + * boots, and is verified with a checksum upon fast reboot. + */ + _romem_end = .; + + .data : { + /* + * A couple of things that need to be 4K aligned and + * to reside in their own pages for the sake of TCE + * mappings + */ + . = ALIGN(0x1000); + *(.data.memcons); + . = ALIGN(0x1000); + *(.data.boot_trace); + . = ALIGN(0x1000); + *(.data*) + *(.force.data) + *(.toc1) + *(.branch_lt) + } + /* We locate the BSS at 3M to leave room for the symbol map */ . = 0x300000; |