summaryrefslogtreecommitdiff
path: root/bl31
diff options
context:
space:
mode:
Diffstat (limited to 'bl31')
-rw-r--r--bl31/bl31.ld.S21
1 files changed, 16 insertions, 5 deletions
diff --git a/bl31/bl31.ld.S b/bl31/bl31.ld.S
index 43d0ed44..fd53ed82 100644
--- a/bl31/bl31.ld.S
+++ b/bl31/bl31.ld.S
@@ -66,11 +66,11 @@ SECTIONS
__CPU_OPS_END__ = .;
/*
- * Keep the .got section in the RO section as the it is patched
+ * Keep the .got section in the RO section as it is patched
* prior to enabling the MMU and having the .got in RO is better for
- * security.
+ * security. GOT is a table of addresses so ensure 8-byte alignment.
*/
- . = ALIGN(16);
+ . = ALIGN(8);
__GOT_START__ = .;
*(.got)
__GOT_END__ = .;
@@ -112,6 +112,16 @@ SECTIONS
KEEP(*(cpu_ops))
__CPU_OPS_END__ = .;
+ /*
+ * Keep the .got section in the RO section as it is patched
+ * prior to enabling the MMU and having the .got in RO is better for
+ * security. GOT is a table of addresses so ensure 8-byte alignment.
+ */
+ . = ALIGN(8);
+ __GOT_START__ = .;
+ *(.got)
+ __GOT_END__ = .;
+
/* Place pubsub sections for events */
. = ALIGN(8);
#include <pubsub_events.h>
@@ -165,11 +175,12 @@ SECTIONS
__DATA_END__ = .;
} >RAM
- . = ALIGN(16);
/*
* .rela.dyn needs to come after .data for the read-elf utility to parse
- * this section correctly.
+ * this section correctly. Ensure 8-byte alignment so that the fields of
+ * RELA data structure are aligned.
*/
+ . = ALIGN(8);
__RELA_START__ = .;
.rela.dyn . : {
} >RAM