diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2020-04-23 18:45:28 +0300 |
---|---|---|
committer | Hung-Te Lin <hungte@chromium.org> | 2020-12-17 06:24:30 +0000 |
commit | b19d9511f98505498db85d525f22f17aea11e0b1 (patch) | |
tree | 15d94808bdc89ffbd4659ec8f366880108ff3cb0 /src/arch | |
parent | f0a9142b24889087a61c66ccf3a39d7a93563e02 (diff) | |
download | coreboot-b19d9511f98505498db85d525f22f17aea11e0b1.tar.xz |
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>
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/ppc64/Kconfig | 4 | ||||
-rw-r--r-- | src/arch/x86/Kconfig | 4 | ||||
-rw-r--r-- | src/arch/x86/bootblock.ld | 3 | ||||
-rw-r--r-- | src/arch/x86/id.S | 27 |
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 */ |