qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]