aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/scripttempl/pru.sc14
1 files changed, 11 insertions, 3 deletions
diff --git a/ld/scripttempl/pru.sc b/ld/scripttempl/pru.sc
index 7cb8069..4229bed 100644
--- a/ld/scripttempl/pru.sc
+++ b/ld/scripttempl/pru.sc
@@ -147,7 +147,6 @@ SECTIONS
${RELOCATING+ *(.rodata:*)}
${RELOCATING+*(.gnu.linkonce.d*)}
${RELOCATING+*(.gnu.linkonce.r*)}
- ${RELOCATING+. = ALIGN(4);}
${RELOCATING+ PROVIDE (_data_end = .) ; }
${RELOCATING+/* Merge the bss input sections into the output
@@ -164,13 +163,22 @@ SECTIONS
${RELOCATING+*(COMMON)}
${RELOCATING+ PROVIDE (_bss_end = .) ; }
+ ${RELOCATING+/* In case this is the last input section, align to
+ keep the loadable segment size a multiple of the common page size.
+ Some SoCs have stricter memory size requirements than others. */
+ . = ALIGN (CONSTANT (COMMONPAGESIZE));}
} ${RELOCATING+ > dmem}
/* Linux remoteproc loader requires the resource_table section
- start address to be aligned to 8 bytes. */
- .resource_table ${RELOCATING-0} ${RELOCATING+ ALIGN (8)} :
+ start address to be aligned to 8 bytes for SoCs with AARCH64
+ host processors. */
+ .resource_table ${RELOCATING-0} ${RELOCATING+ ALIGN (CONSTANT (MAXPAGESIZE))} :
{
KEEP (*(.resource_table))
+ ${RELOCATING+/* In case this is the last input section, align to
+ keep the loadable segment size a multiple of the common page size.
+ Some SoCs have stricter memory size requirements than others. */
+ . = ALIGN (CONSTANT (COMMONPAGESIZE));}
} ${RELOCATING+ > dmem}
/* Global data not cleared after reset. */