diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2022-03-30 20:16:36 +0200 |
---|---|---|
committer | Arthur Heymans <arthur@aheymans.xyz> | 2022-05-12 11:11:53 +0000 |
commit | 75226bb879837e2e4aa710aadb27dbadb4044ed3 (patch) | |
tree | db8e3c6ec0b7d2dcd4ac4883eddba0744d7a35fb /src/arch/x86 | |
parent | c8c6185d8eda1a58a1c7084812e93fb3d2c8f254 (diff) |
Makefile.inc: Generate master header and pointer as C structs
The makefiles don't like cbfs file names with spaces in them so update
the file name with '_' instead of spaces. To keep the master header at
the top of cbfs, add a placeholder.
This removes the need to handle the cbfs master header in cbfstool.
This functionality will be dropped in a later CL.
On x86 reserve some space in the linker script to add the pointer.
On non-x86 generate a pointer inside a C struct file.
As a bonus this would actually fix the master header pointer mechanism
on Intel/APL as only the bootblock inside IFWI gets memory mapped.
TESTED on thinkpad X201: SeaBIOS correctly finds the cbfs master
header.
Change-Id: I3ba01be7da1f09a8cac287751497c18cda97d293
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59132
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/bootblock.ld | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/arch/x86/bootblock.ld b/src/arch/x86/bootblock.ld index 0b908bbec6..d59eb27a64 100644 --- a/src/arch/x86/bootblock.ld +++ b/src/arch/x86/bootblock.ld @@ -73,9 +73,14 @@ SECTIONS { _X86_RESET_VECTOR = .; .reset . : { *(.reset); - . = 15; - BYTE(0x00); + . = _X86_RESET_VECTOR_FILLING; + BYTE(0); } + . = 0xfffffffc; + .header_pointer . : { + KEEP(*(.header_pointer)); + } + _X86_RESET_VECTOR_FILLING = 15 - SIZEOF(.header_pointer); _ebootblock = .; } |