Sometimes it is needed to add some vendor specific information’s like a version string
to a generated coreboot rom. For this example we assume we want the area from 0×00 to 0×30
for such kind of data.
The first idea is to use cbfstool. Thanks to some guys in the IRC channel it looks like the
current build system does something like:
cbfstool -o $$(( $(CONFIG_ROM_SIZE) - $(CONFIG_CBFS_SIZE) )) ...
So all we need is to change CBFS_SIZE to ROM_SIZE – 0×30 in .config file.
...
CONFIG_CONSOLE_SERIAL8250=y
# CONFIG_USBDEBUG is not set
# CONFIG_K8_REV_F_SUPPORT is not set
CONFIG_CPU_ADDR_BITS=32
CONFIG_BOARD_ROMSIZE_KB_2048=y
# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
...
CONFIG_CORE_GLIU_500_266=y
CONFIG_PLLMSRhi=0x39c
# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
# CONFIG_AMD_NB_CIMX is not set
# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set
CONFIG_CBFS_SIZE=0x1FFFD0
#
# Southbridge
#
CONFIG_SOUTHBRIDGE_AMD_CS5536=y
...
This results in the wanted result:
...
coreboot.rom: 2048 kB, bootblocksize 688, romsize 2097152, offset 0x30
alignment: 64 bytes, architecture: x86
Name Offset Type Size
vsa 0x30 stage 55124
config 0xd7c0 raw 2810
(empty) 0xe300 null 7256
fallback/romstage 0xff80 stage 19339
fallback/coreboot_ram 0x14b80 stage 38852
fallback/payload 0x1e380 payload 21831
(empty) 0x23900 null 1950728
And here the file based prove:
# hexedit build/coreboot.rom
00000000 FF FF FF FF FF FF FF FF ........
00000008 FF FF FF FF FF FF FF FF ........
00000010 FF FF FF FF FF FF FF FF ........
00000018 FF FF FF FF FF FF FF FF ........
00000020 FF FF FF FF FF FF FF FF ........
00000028 FF FF FF FF FF FF FF FF ........
00000030 4C 41 52 43 48 49 56 45 LARCHIVE
00000038 00 00 D7 54 00 00 00 10 ...T....
00000040 00 00 00 00 00 00 00 28 .......(