aboutsummaryrefslogtreecommitdiff
path: root/ld
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
parente4b1ab2062e1d8458167534881248d5555bd82fa (diff)
downloadgdb-261980de18b895d270dc7876d22b706db696e669.zip
gdb-261980de18b895d270dc7876d22b706db696e669.tar.gz
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')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/scripttempl/pru.sc11
2 files changed, 14 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b7a6adc..b66e722 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2021-05-10 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * scripttempl/pru.sc (.resource_table): Add ALIGN directive.
+ Use symbols for memory sizes.
+
2021-05-08 Mike Frysinger <vapier@gentoo.org>
* Makefile.am (html-local, doc/ld/index.html): New targets.
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}