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>
This commit is contained in:
Kyösti Mälkki 2020-12-08 19:14:58 +02:00 committed by Patrick Georgi
parent bccb6916fe
commit 33a68e4676
1 changed files with 7 additions and 2 deletions

View File

@ -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;