diff options
author | Dimitar Dimitrov <dimitar@dinux.eu> | 2021-05-10 13:58:17 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2021-05-10 13:58:17 +0100 |
commit | 261980de18b895d270dc7876d22b706db696e669 (patch) | |
tree | bacbff85bd90706d32d639a6fa9d54cffee642dc /ld/scripttempl | |
parent | e4b1ab2062e1d8458167534881248d5555bd82fa (diff) | |
download | fsf-binutils-gdb-261980de18b895d270dc7876d22b706db696e669.zip fsf-binutils-gdb-261980de18b895d270dc7876d22b706db696e669.tar.gz fsf-binutils-gdb-261980de18b895d270dc7876d22b706db696e669.tar.bz2 |
PRU: Add alignment for resource table, and allow sizes of memory regions to be set from the command line.
ld * scripttempl/pru.sc (.resource_table): Add ALIGN directive.
Use symbols for memory sizes.
Diffstat (limited to 'ld/scripttempl')
-rw-r--r-- | ld/scripttempl/pru.sc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ld/scripttempl/pru.sc b/ld/scripttempl/pru.sc index 08aceaa..b2c941b 100644 --- a/ld/scripttempl/pru.sc +++ b/ld/scripttempl/pru.sc @@ -5,10 +5,14 @@ OUTPUT_ARCH(${ARCH}) EOF test -n "${RELOCATING}" && cat <<EOF +/* Allow memory sizes to be overridden from command line. */ +__IMEM_SIZE = DEFINED(__IMEM_SIZE) ? __IMEM_SIZE : $TEXT_LENGTH; +__DMEM_SIZE = DEFINED(__DMEM_SIZE) ? __DMEM_SIZE : $DATA_LENGTH; + MEMORY { - imem (x) : ORIGIN = $TEXT_ORIGIN, LENGTH = $TEXT_LENGTH - dmem (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH + imem (x) : ORIGIN = $TEXT_ORIGIN, LENGTH = __IMEM_SIZE + dmem (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = __DMEM_SIZE } __HEAP_SIZE = DEFINED(__HEAP_SIZE) ? __HEAP_SIZE : 32; @@ -149,6 +153,9 @@ SECTIONS .resource_table ${RELOCATING-0} : { + /* Linux remoteproc loader requires the resource table address + to be aligned to 8 bytes. */ + ${RELOCATING+. = ALIGN(8);} KEEP (*(.resource_table)) } ${RELOCATING+ > dmem} |