summaryrefslogtreecommitdiff
path: root/ld/scripttempl
diff options
context:
space:
mode:
authorDimitar Dimitrov <dimitar@dinux.eu>2021-05-10 13:58:17 +0100
committerNick Clifton <nickc@redhat.com>2021-05-10 13:58:17 +0100
commit261980de18b895d270dc7876d22b706db696e669 (patch)
treebacbff85bd90706d32d639a6fa9d54cffee642dc /ld/scripttempl
parente4b1ab2062e1d8458167534881248d5555bd82fa (diff)
downloadbinutils-gdb-261980de18b895d270dc7876d22b706db696e669.tar.gz
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.sc11
1 files changed, 9 insertions, 2 deletions
diff --git a/ld/scripttempl/pru.sc b/ld/scripttempl/pru.sc
index 08aceaa3b2c..b2c941b7911 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}