[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: PC machine types switched to SeaBIOS/gPXE
From: |
Kevin O'Connor |
Subject: |
Re: [Qemu-devel] Re: PC machine types switched to SeaBIOS/gPXE |
Date: |
Mon, 2 Nov 2009 23:16:54 -0500 |
User-agent: |
Mutt/1.5.19 (2009-01-05) |
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