aboutsummaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld')
-rw-r--r--src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld b/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld
index 352472e18b..e1f2765ebb 100644
--- a/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld
+++ b/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld
@@ -110,6 +110,22 @@ SECTIONS {
_TOO_LOW = _X86_RESET_VECTOR - 0xfff0;
_bogus = ASSERT(_start16bit >= _TOO_LOW, "_start16bit too low. Please report.");
+ . = _X86_RESET_VECTOR - EARLYASM_SZ;
+ . = ALIGN(16);
+ BOOTBLOCK_TOP = .;
+ .init (.) : {
+ *(.init._start);
+ *(.init);
+ *(.init.*);
+ }
+
+ /*
+ * Allocation reserves extra space here. Alignment requirements
+ * may cause the total size of a section to change when the start
+ * address gets applied.
+ */
+ EARLYASM_SZ = SIZEOF(.init) + 16;
+
. = BOOTBLOCK_END - 0x10;
_X86_RESET_VECTOR = .;
.reset . : {