From patchwork Fri Oct 9 00:59:45 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: SeaBIOS VGA failure after ctrl-alt-delete Date: Fri, 09 Oct 2009 00:59:45 -0000 From: Kevin O'Connor X-Patchwork-Id: 373 Message-Id: <20091009005945.GB25066@morn.localdomain> To: Myles Watson Cc: coreboot 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: 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 --- 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"