summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2020-04-23 18:45:28 +0300
committerHung-Te Lin <hungte@chromium.org>2020-12-17 06:24:30 +0000
commitb19d9511f98505498db85d525f22f17aea11e0b1 (patch)
tree15d94808bdc89ffbd4659ec8f366880108ff3cb0
parentf0a9142b24889087a61c66ccf3a39d7a93563e02 (diff)
arch/x86: Remove ID_SECTION_OFFSET
The location is hardcoded inside flashrom and FILO. Only two offsets are supported, 0x10 and 0x80. Change-Id: I8348f2ac0cab969ab78ecb50a55de486eee0cf9b Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47598 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/arch/ppc64/Kconfig4
-rw-r--r--src/arch/x86/Kconfig4
-rw-r--r--src/arch/x86/bootblock.ld3
-rw-r--r--src/arch/x86/id.S27
4 files changed, 18 insertions, 20 deletions
diff --git a/src/arch/ppc64/Kconfig b/src/arch/ppc64/Kconfig
index 44dbb1d778..546dbc82e0 100644
--- a/src/arch/ppc64/Kconfig
+++ b/src/arch/ppc64/Kconfig
@@ -17,3 +17,7 @@ config ARCH_ROMSTAGE_PPC64
config ARCH_RAMSTAGE_PPC64
bool
select ARCH_PPC64
+
+config ID_SECTION_OFFSET
+ hex
+ default 0x80
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 95c87dab7a..4de8c96f1c 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -186,10 +186,6 @@ config HPET_ADDRESS
hex
default 0xfed00000 if !HPET_ADDRESS_OVERRIDE
-config ID_SECTION_OFFSET
- hex
- default 0x80
-
# 64KiB default bootblock size
config C_ENV_BOOTBLOCK_SIZE
hex
diff --git a/src/arch/x86/bootblock.ld b/src/arch/x86/bootblock.ld
index 849addd2e2..ad9c2efaa1 100644
--- a/src/arch/x86/bootblock.ld
+++ b/src/arch/x86/bootblock.ld
@@ -15,10 +15,11 @@ SECTIONS {
/* Trigger an error if I have an unusable start address */
_bogus = ASSERT(_start16bit >= 0xffff0000, "_start16bit too low. Please report.");
- . = (0xffffffff - CONFIG_ID_SECTION_OFFSET) - (__id_end - __id_start) + 1;
+ . = _ID_SECTION;
.id (.): {
KEEP(*(.id));
}
+ _ID_SECTION = 0xffffff80 - SIZEOF(.id);
. = 0xffffffc0;
.fit_pointer (.): {
diff --git a/src/arch/x86/id.S b/src/arch/x86/id.S
index a7b4be7aa8..574a7dcb91 100644
--- a/src/arch/x86/id.S
+++ b/src/arch/x86/id.S
@@ -2,26 +2,23 @@
#include <build.h>
- .section ".id", "a", @progbits
+.section ".id", "a", @progbits
- .globl __id_start
-__id_start:
ver:
.asciz COREBOOT_VERSION
vendor:
.asciz CONFIG_MAINBOARD_VENDOR
part:
.asciz CONFIG_MAINBOARD_PART_NUMBER
-.long __id_end + CONFIG_ID_SECTION_OFFSET - ver /* Reverse offset to the
- *vendor id
- */
-.long __id_end + CONFIG_ID_SECTION_OFFSET - vendor /* Reverse offset to the
- * vendor id
- */
-.long __id_end + CONFIG_ID_SECTION_OFFSET - part /* Reverse offset to the
- * part number
- */
-.long CONFIG_ROM_SIZE /* Size of this romimage */
- .globl __id_end
-__id_end:
+#if ENV_X86_64
+.long 0xffffffff - ver + 1 /* Reverse offset to the version */
+.long 0xffffffff - vendor + 1 /* Reverse offset to the vendor id */
+.long 0xffffffff - part + 1 /* Reverse offset to the part number */
+#else
+.long - ver /* Reverse offset to the version */
+.long - vendor /* Reverse offset to the vendor id */
+.long - part /* Reverse offset to the part number */
+#endif
+
+.long CONFIG_ROM_SIZE /* Size of this romimage */