On Thu, Oct 08, 2009 at 09:28:58AM -0600, Myles Watson wrote:
Kevin,
SeaBIOS initializes my VGA correctly the first time through, but if I do ctrl-alt-delete, the screen is no longer updated. Do you have any suggestions as to how to fix it?
Here's the snippet: Attempting to map option rom on dev 02:00.0 Option rom sizing returned f5000000 fffe0000 Inspecting possible rom at 0xf5000000 (dv=014110de bdf=200) Copying option rom (size 63488) from 0xf5000000 to c0000 Checking rom 0x000c0000 (sig aa55 size 124) Found option rom with bad checksum: loc=0x000c0000 len=63488 sum=7e
That's very odd. It seems the second time it is copied from the pci card it isn't copied correctly. To verify, you could add:
--- a/src/optionroms.c +++ b/src/optionroms.c @@ -124,6 +124,7 @@ is_valid_rom(struct rom_header *rom) if (! rom->size) return 0; u32 len = rom->size * 512; + hexdump(rom, len); u8 sum = checksum(rom, len); if (sum != 0) { dprintf(1, "Found option rom with bad checksum: loc=%p len=%d sum=%x\n"
and then compare the results of the two roms (it will probably take a long time to transfer all the data though).
I can see a couple of ways corruption could occur:
- something might be also using the memory space the rom is at (0xf5000000) causing corruption during the read
- maybe caching got enabled at the pci rom space?
- something could have locked the ram at 0xc000 (though that would be weird).
-Kevin