On Mon, Nov 02, 2009 at 05:22:00PM -0600, Anthony Liguori wrote: > Beth Kon wrote: >> Serendipity allowed us to find this really easily, thanks to some old >> builds lying around... >> >> The following Seabios commit breaks gpxe boot with e1000: [...] > Any thoughts Kevin? > > Before this commit, the gPXE e1000 rom was able to successfully netboot > when selected as a boot device. With this commit, we get a "device not > found" error within gPXE when launched as a boot device but when run > from the gPXE command line, it launches successfully.
The easist way to debug this is to enable debugging output. It's possible to modify qemu's hw/pc.c and enable DEBUG_BIOS, but it's probably simpler to recompile SeaBIOS and set CONFIG_DEBUG_SERIAL in src/config.h (and possibly increase CONFIG_DEBUG_LEVEL). With the later, one can then run: qemu -net nic,model=e1000 -boot n -serial stdio and what comes out is: Scan for option roms Running option rom at c900:0003 pnp call arg1=60 pmm call arg1=0 Found option rom with bad checksum: loc=0x000c9000 len=72192 sum=37 So, the e1000 option rom is modifying itself and not properly updating its checksum - thefore SeaBIOS doesn't consider it in its BEV list. The fact that it changed in the commit highlighted above was probably just random. When was this gpxe rom built? I know gpxe used to have an issue with the checksum not being updated, but I thought that was fixed about six months ago. -Kevin