[SeaBIOS] [Qemu-devel] QEMU regression problems
Gerhard Wiesinger
lists at wiesinger.com
Mon Apr 19 08:19:55 CEST 2010
Kevin O'Connor wrote:
> On Tue, Apr 13, 2010 at 02:26:10PM +0800, Roy Tam wrote:
>
>> 2010/4/12 Gerhard Wiesinger <lists at wiesinger.com>:
>>
>>> 3.) There is also a problem with the reported base memory under QEMM386
>>> (HIMEM.SYS and EMM386.EXE is correct here). It is 646kB instead of 640kB.
>>> Therefore base memory test fails. I guess that reporting memory CMOS
>>> tables/interrupt functions are not implemented correctly.
>>>
>> - The Base Memory > 640K error seems to be SeaBIOS related. QEMU Bochs
>> BIOS(tested with both -old-bios hack in 0.12 series and old 0.11.1)
>> will just freeze after QEMU counted RAM.(Tested with ScriptPC and
>> Bochs).
>>
>
> 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.
>
> The memory can be obtained in several places (int 12, int 1588, int
> 15e801, int 15e820, and mem 40:13). All look fine to me from looking
> at the code.
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
*MS-DOS 6.22, QEMM 8.03*
*QEMU*
*Testcase*
*BDA*
*40h:13h*
*INT*
*12h*
*INT 15h,*
*AX=E820h*
*EBIOS*
*DATAAREA*
*Checkit*
*3.0*
Plain DOS, after Boot
634kB
634kB
634kB
9E80h-A000h (6k)
640kB
HIMEM.SYS+EMM386.EXE
634kB
634kB
634kB
9E80h-A000h (6k)
640kB
QEMM
640kB
640kB
634kB
CEB5h-D035h (6k)
646kB
QEMURAMD + QEMM
628kB
628kB
634kB
9E80h-A000h (6k)
634k
*VMWare*
*Testcase*
*BDA*
*40h:13h*
*INT*
*12h*
*INT 15h,*
*AX=E820h*
*EBIOS*
*DATAAREA*
*Checkit 3.0*
Plain DOS, after Boot
638kB
638kB
638kB
9F80h-A000h (2k)
640kB
HIMEM.SYS+EMM386.EXE
638kB
638kB
638kB
9F80h-A000h (2k)
640kB
QEMM
638kB
638kB
638kB
9F80h-A000h (2k)
640kB
QEMURAMD + QEMM
632kB
632kB
632kB
9F80h-A000h (2k)
634kB
*Pentium 733*
*Testcase*
*BDA*
*40h:13h*
*INT*
*12h*
*INT 15h,*
*AX=E820h*
*EBIOS*
*DATAAREA*
*Checkit 3.0*
Plain DOS, after Boot
639kB
639kB
639kB
9FC0h-A000h (1k)
640kB
QEMM
640B
640kB
639kB
D1B5h- (1k)
640kB
Attached documents:
MEQEMU.TXT QEMU, no CONFIG.SYS/AUTOEXEC.BAT
MEQEMUH.TXT QEMU, HIMEM.SYS, EMM386.EXE
MEQEMUQ1.TXT QEMU, QEMM386.EXE, NOXBDA parameter
MEQEMUQ2.TXT QEMU, QEMM386.EXE
MEVMW.TXT VMWare, no CONFIG.SYS/AUTOEXEC.BAT
MEVMWH.TXT VMWare, HIMEM.SYS, EMM386.EXE
MEVMWQ.TXT QEMU, QEMM386.EXE (XBDA not moved to HMA!?!)
P733.TXT, Pentium 733, no CONFIG.SYS/AUTOEXEC.BAT
P733Q.TXT Pentium 733, QEMM386.EXE
Code and Patches can be found at (released under GPL V2):
http://www.wiesinger.com/opensource/seabios/meminfoa.asm
http://www.wiesinger.com/opensource/seabios/meminfo.c
http://www.wiesinger.com/opensource/seabios/meminfo.exe
http://www.wiesinger.com/opensource/seabios/seabios-0.6.0-gw-V01.patch
QEMURAMD: DOS Device driver, which modifies BDA reported memory by -6kB,
released later.
Build script will be released under my DOS-Tools soon (some cleanup
necessary).
Ciao,
Gerhard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MEQEMUQ2.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0009.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MEVMW.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0010.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MEVMWH.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0011.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MEVMWQ.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0012.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: P733.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0013.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: P733Q.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0014.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MEQEMU.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0015.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MEQEMUH.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0016.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MEQEMUQ1.TXT
URL: <http://www.seabios.org/pipermail/seabios/attachments/20100419/03480f73/attachment-0017.ksh>
More information about the SeaBIOS
mailing list