On Mon, Apr 19, 2010 at 08:19:55AM +0200, Gerhard Wiesinger wrote:
Kevin O'Connor wrote:
The SeaBIOS log would really help. This can be done by adding:
-chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios
to the qemu command line.
OK, I made some research on the topic. Problem is that QEMM pushes the Extended BIOS data area to High RAM on some machines (QEMU, P733). Therefore 640k low memory is available and checkit reports 640kB + 6kB=646kB EBIOS DATA AREA. Whats strange that on a physical Pentium 733 machine this works correctly (details see below and attached files), maybe someone can try to find the problem with QEMM+Checkit 3.0 (maybe there is still some other BIOS function incorrectly implemented). QEMM parameter NOXBDA avoids moving the XBDA up to HI RAM and therefore checkit reports 640kB well.
SeaBIOS seems to be correct (see below and attached patch files and description below). Total Memory: 256MB (262144kB), Base RAM: 637kB Extended BIOS Data Area size: 3 kB, segment=9f40
SCSI option ROM: After option ROMS, Total Memory: 256MB (262144kB), Base RAM: 634kB Extended BIOS Data Area size: 6 kB, segment=9e80
Which scsi option rom? Can you forward the log using the command line above? Another thing that may help is increasing the debug level in seabios (set CONFIG_DEBUG_LEVEL to 8 in src/config.h and recompile).
SeaBIOS will lock parts of ram from 0xc0000-0xfffff so that the option roms aren't writable. I wonder if that is confusing qemm when it tries to locate the ebda into that area.
-Kevin