2010/1/8 Patrick Georgi patrick@georgi-clan.de:
In that case, your ROM is probably not entirely mapped yet. That's an issue that has to be fixed per chipset (southbridge mostly). I see explicit support for it in cs5530 (even though that _might_ require some more changes), and somewhere in the code of cs5535. I don't know if this is applicable to cs5536, too. If you want to try, this hack might help you (untested, as I don't have the hardware). Maybe the call must be moved around a bit.
Unfortunately it didn't help. When I use cs5530_enable_rom() function, the booting process didn't event execute cbfs_load_stage(). Please note that the src/mainboard/digitallogic/msm800sev/auto.c file is not in compilation chain - against it the coreboot/src/mainboard/digitallogic/msm800sev/cache_as_ram_auto.c is used. Maybe it has to be fixed?
I've found that the booting process hangs on this part of cbfs_master_header() function (src/lib/cbfs.c):
... outb(0xa1, 0x80); // <------- It is printed
void *ptr = (void *)*((unsigned long *) CBFS_HEADPTR_ADDR); printk_spew("Check CBFS header at %p\n", ptr); header = (struct cbfs_header *) ptr;
outb(0xa2, 0x80); // <- It is NOT printed ...
I don't know exactly where I need to begin make changes ...
Thanks for your interest.