diff mbox

[SeaBIOS] WfW setup and DOS display.sys hanging

Message ID 20140205223951.GA4309@morn.localdomain
State New
Headers show

Commit Message

Kevin O'Connor Feb. 5, 2014, 10:39 p.m. UTC
On Wed, Feb 05, 2014 at 09:57:06PM +0100, Sebastian wrote:
> >>I can't reproduce the hang with the dosidle program linked by
> >>Sebastian.  (I ran the program on freedos and on an msdos floppy and
> >>both times it said it install succesfully.)  Can someone walk through
> >>the steps needed to reproduce the problem?
> >
> >I found some old Win3.1 images, and I do see the failure running setup
> >on that (when run from dos 6).  I'll look into it.
> >
> >Sebastian, can you document the steps to reproduce the dosidle and
> >display.sys failure?  (I tried putting display.sys into a dos6
> >config.sys, but it doesn't like my parameters so I don't think it's
> >doing anything.)
> 
> I cloned the git repository, and built with:
> $ ./configure --target-list=i386-softmmu
> $ make -j2
> 
> I then installed MS-DOS onto a virtual 50 MB disk, all default settings:
> $ /tmp/qemu/i386-softmmu/qemu-system-i386 -m 4 -hda msdos.img -fda
> MS-DOS_1.IMG
> 
> After rebooting, qemu hangs with 100% cpu usage when loading
> DISPLAY.SYS. It is loaded by the following line in CONFIG.SYS:
> 
> DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)

Thanks.  That DEVICE line causes a failure for me as well and the call
trace is much easier to understand.

The SeaVGABIOS patch below fixes both the DISPLAY.SYS and Win3 setup
issue for me.  (I can't reproduce the dosidle problem.)

-Kevin

Comments

Sebastian Feb. 10, 2014, 2:57 p.m. UTC | #1
Hi,

>> After rebooting, qemu hangs with 100% cpu usage when loading
>> DISPLAY.SYS. It is loaded by the following line in CONFIG.SYS:
>>
>> DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
>
> Thanks.  That DEVICE line causes a failure for me as well and the call
> trace is much easier to understand.
>
> The SeaVGABIOS patch below fixes both the DISPLAY.SYS and Win3 setup
> issue for me.  (I can't reproduce the dosidle problem.)

The attached patch does indeed fix both the DISPLAY.SYS and Windows 
Setup problems for me. Thanks a lot! I can't reproduce the 
dosidle-problem either, it works now.

A straight non-networked Windows for Workgroups 3.11 installation now 
hangs after loading the Program Manager.

I noticed that SeaBIOS does not work correctly with parallel make, log 
excerpts following:

$ LANG=C make -j16 # dual-core machine without SMT
   Compiling IASL out/src/fw/acpi-dsdt.hex
make[1]: warning: jobserver unavailable: using -j1.  Add `+' to parent 
make rule.
   Compiling IASL out/src/fw/ssdt-proc.hex
   Compiling IASL out/src/fw/ssdt-pcihp.hex

[...]

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 2 Optimizations
   Generating offset file out/asm-offsets.h
   Compiling (16bit) out/romlayout.o
In file included from src/romlayout.S:9:0:
src/config.h:4:22: fatal error: autoconf.h: No such file or directory
compilation terminated.
make: *** [out/romlayout.o] Error 1
make: *** Waiting for unfinished jobs....
ASL Input:  out/src/fw/q35-acpi-dsdt.dsl.i - 515 lines, 28284 bytes, 413 
keywords
AML Output: out/src/fw/q35-acpi-dsdt.aml - 7344 bytes, 239 named 
objects, 174 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 445 Optimizations
   Build Kconfig config file
$

Best Regards,
Sebastian
Kevin O'Connor Feb. 10, 2014, 3:39 p.m. UTC | #2
On Mon, Feb 10, 2014 at 03:57:46PM +0100, Sebastian wrote:
> Hi,
> 
> >>After rebooting, qemu hangs with 100% cpu usage when loading
> >>DISPLAY.SYS. It is loaded by the following line in CONFIG.SYS:
> >>
> >>DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
> >
> >Thanks.  That DEVICE line causes a failure for me as well and the call
> >trace is much easier to understand.
> >
> >The SeaVGABIOS patch below fixes both the DISPLAY.SYS and Win3 setup
> >issue for me.  (I can't reproduce the dosidle problem.)
> 
> The attached patch does indeed fix both the DISPLAY.SYS and Windows
> Setup problems for me. Thanks a lot! I can't reproduce the
> dosidle-problem either, it works now.

Okay, I hae pushed that patch into mainline.

> A straight non-networked Windows for Workgroups 3.11 installation
> now hangs after loading the Program Manager.

Is that related to seabios?

> I noticed that SeaBIOS does not work correctly with parallel make,
> log excerpts following:

I'll take a look if I get a chance.

-Kevin
diff mbox

Patch

--- a/vgasrc/vgabios.c
+++ b/vgasrc/vgabios.c
@@ -1114,7 +1114,7 @@  struct funcInfo {
     u8 save_flags;
     u8 disp_info;
     u8 reserved_34[12];
-};
+} PACKED;
 
 static void
 handle_101b(struct bregs *regs)