[coreboot] how Coreboot keeps the right offsets of the sections

Peter Stuge peter at stuge.se
Wed Feb 9 20:44:33 CET 2011


ali hagigat wrote:
> the top content of ROM, like 0xffffff00 is probably written from
> the beginning of coreboot.rom

No.


ali hagigat wrote:
> How the file coreboot.rom is written on BIOS chip logically?

Exactly the same way all other firmware images are written to flash
chips on PCs, and all other machines.

I'd expect you to already know this, with your experience from
firmware development on the PC.


> Suppose our BIOS chip is 1 mega bytes. We should read first byte
> from the beginning of the file and write it to the address zero of
> BIOS chip and continue this way?

Yes, coreboot.rom is a 1:1 representation of the flash chip contents.

This is fairly clear from the size of the file, and the fact that you
must select a flash chip size during configuration.


> I checked the content of build/coreboot.rom and the last byte was
> 0x0a!! Which is written probably on the top of our EEPROM. Right?

If it is written properly or not depends on what tool you use to
write to the flash chip.


> but src/arch/i386/init/ldscript.ld specifies the last byte as 0x00!!
> SECTIONS {
> 	_ROMTOP = 0xfffffff0;
> 	. = _ROMTOP;
> 	.resetvector . : {
> 		*(.reset)
>                 . = 15 ;
>                 BYTE(0x00);
> 	}
> }
> 
> Please help me with this puzzle. Thank you.

What is the concrete problem? You should not rule out that there are
binutils bugs. Just be happy that the reset vector has the right
opcodes.


//Peter




More information about the coreboot mailing list