[coreboot] Corrupt rom -- found no header at 458720

Harald Gutmann harald.gutmann at gmx.net
Thu Jun 25 17:13:25 CEST 2009

On Thursday 25 June 2009 05:09:04 Rick Ant wrote:
> I try to use
> $ mkelfImage --append="console=ttyS0" --initrd=initrd vmlinuz linux.elf
> When :
> telebit:~/Project/Kantor/Thin_client/coreboot-v2-4360/targets #
> ./buildtarget emulation/qemu-x86/Config.lb
> and do
> make..
> I get coreboot.rom on 512Kbyte
> My initrd is 1Mbyte and vmlinuz 16Mbyte..is it ok?
That's not okay for real hardware, but could eventually be possible on an 8Mb 
chip to fit that in.
Try to remove all kernel stuff (modules, drivers, ...) you don't really need 
and just keep the essential stuff which is needed to initialize your hardware.
Also keep in mind, that you don't do modules on hardware related drivers which 
are needed to boot the system, as it can happen that the disk is to slow in 
spin-up to be ready when files are needed.

My solution is a kernel with all hardware and filesystem drivers compiled in, 
and just the essential stuff. The rest of the drivers, features built as 
This also avoids the need of an initrd.

> The make result is situated below...
> Is it ok ? if I want to change the chipset, what should i do?
> My chipset is 82810 North and 82801 South..
> ====
> .......................
> Payload: 0 coreboot: 65536 ROM size: 65536 Left space: 0
> if [ 0 -eq 1 -a 1 -eq 1 ]; then echo l > cbfs-support; fi
> make[1]: Leaving directory
> `/root/Project/Kantor/Thin_client/coreboot-v2-4360/targets/emulation/qemu-x
>86/qemu-x86/normal' rm -f ./coreboot.rom
> cat normal/coreboot.rom > ./coreboot.rom.bootblock
> ./cbfstool ./coreboot.rom create 524288 65536 ./coreboot.rom.bootblock
> ./cbfstool ./coreboot.rom add-payload
> /root/Project/Kantor/mkelfImage-2.7/linux.elf normal/payload Corrupt rom --
> found no header at 458720
> make: *** [coreboot.rom] Error 1
> telebit:~/Project/Kantor/Thin_client/coreboot-v2-4360/targets/emulation/qem
>u-x86/qemu-x86 #                  
Like Myles already mentioned you need to increase some sizes to get the qemu 
target working. With the qemu target it should be possible to get a working 
result with an 16Mb kernel, but it will get really hard on real hardware. 
(Normally there is too less space in the chip for such big payloads.)

Maybe you should have a look at:
where all the interesting size values for building an image are explained.

Don't forget to enable LZMA compression for the payload, this will possibly 
decrease the size of it about >50%. (My testing image has a vmlinux with 5.1Mb 
and get's compressed via LZMA to 1.7Mb, but I've a 4Mb chip on my hardware to 
get something working.)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20090625/5ad31c1f/attachment.sig>

More information about the coreboot mailing list