summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2020-12-08 19:14:58 +0200
committerPatrick Georgi <pgeorgi@google.com>2021-01-04 23:10:55 +0000
commit33a68e467606e3f82626418bb12ace4915fe01ac (patch)
tree95985f8654108bb8909ac3ec1da748324961ddfe
parentbccb6916feffa340be163cefa2654e014c485b79 (diff)
arch/x86: Move .id section higher
The (now removed) ID_SECTION_OFFSET=0x80 was actually the secondary address flashrom and FILO are looking for. The primary was 0x10, just below .reset. If .id does not collide with .fit_pointer, use the higher of the two locations. Change-Id: I0d3a58c82efd3bbf94f4bc80ec5bbc97d5b1c109 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/48499 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/arch/x86/bootblock.ld9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/arch/x86/bootblock.ld b/src/arch/x86/bootblock.ld
index ad9c2efaa1..479259fcbe 100644
--- a/src/arch/x86/bootblock.ld
+++ b/src/arch/x86/bootblock.ld
@@ -19,14 +19,19 @@ SECTIONS {
.id (.): {
KEEP(*(.id));
}
- _ID_SECTION = 0xffffff80 - SIZEOF(.id);
- . = 0xffffffc0;
+ /* Flashrom and FILO have two alternatives for the location of .id section. */
+ _ID_SECTION_END = SIZEOF(.fit_pointer) && SIZEOF(.id) > 0x28 ? 0xffffff80 : _X86_RESET_VECTOR;
+ _ID_SECTION = _ID_SECTION_END - SIZEOF(.id);
+
+ . = _FIT_POINTER;
.fit_pointer (.): {
KEEP(*(.fit_pointer));
}
+ _FIT_POINTER = SIZEOF(.fit_pointer) ? 0xffffffc0 : _X86_RESET_VECTOR;
. = 0xfffffff0;
+ _X86_RESET_VECTOR = .;
.reset . : {
*(.reset);
. = 15;