* [Qemu-devel] [patch] make PCI work with Windows NT 4 guest @ 2004-07-14 6:18 Ben Pfaff 2004-07-14 11:01 ` Johannes Schindelin ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Ben Pfaff @ 2004-07-14 6:18 UTC (permalink / raw) To: qemu-devel This is the minimal patch that, combined with my previous patch, allows a Windows NT 4 guest to boot with qemu's PCI support enabled. It seems that WNT4 is pretty grumpy about the DSC ("device seek complete") bit in the status register. If we don't set it on WIN_SPECIFY, WNT4 times out and gives up on the device. diff -u -p -u -r1.26 ide.c --- hw/ide.c 25 Jun 2004 14:54:19 -0000 1.26 +++ hw/ide.c 14 Jul 2004 06:15:40 -0000 @@ -1477,7 +1477,7 @@ static void ide_ioport_write(void *opaqu case WIN_SPECIFY: case WIN_RECAL: s->error = 0; - s->status = READY_STAT; + s->status = READY_STAT | SEEK_STAT; ide_set_irq(s); break; case WIN_SETMULT: -- Ben Pfaff email: blp@cs.stanford.edu web: http://benpfaff.org ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch] make PCI work with Windows NT 4 guest 2004-07-14 6:18 [Qemu-devel] [patch] make PCI work with Windows NT 4 guest Ben Pfaff @ 2004-07-14 11:01 ` Johannes Schindelin 2004-07-14 15:27 ` Ben Pfaff 2004-07-15 18:45 ` [Qemu-devel] [patch] make PCI work with Windows NT 4 guest Hetz Ben Hamo 2004-10-09 16:49 ` Fabrice Bellard 2 siblings, 1 reply; 7+ messages in thread From: Johannes Schindelin @ 2004-07-14 11:01 UTC (permalink / raw) To: blp, qemu-devel Hi Ben, great work! Out of curiosity: how did you manage to find out what is going wrong? (may help others to debug similarly complicated situations...) Ciao, Dscho ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch] make PCI work with Windows NT 4 guest 2004-07-14 11:01 ` Johannes Schindelin @ 2004-07-14 15:27 ` Ben Pfaff 2004-07-15 10:03 ` [Qemu-devel] Win98 network & cirrus logic success Johannes Schindelin 0 siblings, 1 reply; 7+ messages in thread From: Ben Pfaff @ 2004-07-14 15:27 UTC (permalink / raw) To: Johannes Schindelin; +Cc: qemu-devel Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > great work! Out of curiosity: how did you manage to find out what is going > wrong? (may help others to debug similarly complicated situations...) To tell that the lack of CMOS was a problem, I tried the WNT4 install under both Bochs (in which WNT4 worked) and qemu and set up both to dump out IDE port reads and writes in the same trace format. Then I `diff'ed the outputs. There were lots of differences so I adjusted the qemu state machine until the traces were bug-for-bug identical. It still didn't work so I knew something else had to be the problem, and eventually I thought of the CMOS. I did about the same thing for figuring out how to make PCI work. I turned on lots of debug print statements, then ran installs with PCI enabled and disabled, and looked at the `diff' between the debug print outputs. There was a particular point in the PCI trace where the guest was sitting in a loop polling the IDE status register until it timed out, so I figured that it was looking for a bit that wasn't on. Adding the "seek complete" bit fixed it. -- "...I've forgotten where I was going with this, but you can bet it was scathing." --DesiredUsername ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] Win98 network & cirrus logic success 2004-07-14 15:27 ` Ben Pfaff @ 2004-07-15 10:03 ` Johannes Schindelin 0 siblings, 0 replies; 7+ messages in thread From: Johannes Schindelin @ 2004-07-15 10:03 UTC (permalink / raw) To: qemu-devel Hi, short warning at first: don't ping. It does not do what you think it does. Try looking at a web page instead. After long hours and nights, I finally got Win98 working as it should. However, it was not easy: first of all, I forgot to update the rom images in /usr/local/share/qemu. This resulted in several crashes. Even after that, I had plenty of crashes, the network card would not be recognized, and it was generally very frustrating. I then played with the device manager and kept removing devices (especially that APM device...). A few times Win98 then would "recognize" devices with very strange names (all characters > 0x80 ASCII), which I removed at once. A few times the host bridge was installed. At one time, the IDE controller was defunct, so Win98 could not detect the cdrom. After that, however, things became much more stable. Win98 recognized everything just fine. It forgot the HiColor setting a couple of times, but then it worked. Without crashing. Next came the network. I tried to ping, and it wouldn't. ipconfig showed no 169.* rubbish, but the expected 10.* address. I now think the ping fails, because the answer is not correctly routed back, being ICMP instead of TCP. When I finally had that idea and just tried to surf to www.google.de, it just worked... In hindsight, I think it would have been easier to just reinstall Windows98: The original installation was before cirrus logic and pci were present in qemu. Ciao, Dscho ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch] make PCI work with Windows NT 4 guest 2004-07-14 6:18 [Qemu-devel] [patch] make PCI work with Windows NT 4 guest Ben Pfaff 2004-07-14 11:01 ` Johannes Schindelin @ 2004-07-15 18:45 ` Hetz Ben Hamo 2004-10-09 16:49 ` Fabrice Bellard 2 siblings, 0 replies; 7+ messages in thread From: Hetz Ben Hamo @ 2004-07-15 18:45 UTC (permalink / raw) To: qemu-devel, Fabrice Bellard On Wednesday 14 July 2004 09:18, Ben Pfaff wrote: > This is the minimal patch that, combined with my previous patch, > allows a Windows NT 4 guest to boot with qemu's PCI support > enabled. It seems that WNT4 is pretty grumpy about the DSC > ("device seek complete") bit in the status register. If we don't > set it on WIN_SPECIFY, WNT4 times out and gives up on the device. Fabrice, do you plan to commit Ben's patches soon, or should I put it on my web site for now? Thanks, Hetz ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch] make PCI work with Windows NT 4 guest 2004-07-14 6:18 [Qemu-devel] [patch] make PCI work with Windows NT 4 guest Ben Pfaff 2004-07-14 11:01 ` Johannes Schindelin 2004-07-15 18:45 ` [Qemu-devel] [patch] make PCI work with Windows NT 4 guest Hetz Ben Hamo @ 2004-10-09 16:49 ` Fabrice Bellard 2004-10-09 19:22 ` Magnus Damm 2 siblings, 1 reply; 7+ messages in thread From: Fabrice Bellard @ 2004-10-09 16:49 UTC (permalink / raw) To: blp, qemu-devel Applied. Fabrice. Ben Pfaff wrote: > This is the minimal patch that, combined with my previous patch, > allows a Windows NT 4 guest to boot with qemu's PCI support > enabled. It seems that WNT4 is pretty grumpy about the DSC > ("device seek complete") bit in the status register. If we don't > set it on WIN_SPECIFY, WNT4 times out and gives up on the device. > > diff -u -p -u -r1.26 ide.c > --- hw/ide.c 25 Jun 2004 14:54:19 -0000 1.26 > +++ hw/ide.c 14 Jul 2004 06:15:40 -0000 > @@ -1477,7 +1477,7 @@ static void ide_ioport_write(void *opaqu > case WIN_SPECIFY: > case WIN_RECAL: > s->error = 0; > - s->status = READY_STAT; > + s->status = READY_STAT | SEEK_STAT; > ide_set_irq(s); > break; > case WIN_SETMULT: > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch] make PCI work with Windows NT 4 guest 2004-10-09 16:49 ` Fabrice Bellard @ 2004-10-09 19:22 ` Magnus Damm 0 siblings, 0 replies; 7+ messages in thread From: Magnus Damm @ 2004-10-09 19:22 UTC (permalink / raw) To: qemu-devel While at it, what about: http://lists.gnu.org/archive/html/qemu-devel/2004-07/msg00574.html / magnus On Sat, 2004-10-09 at 18:49, Fabrice Bellard wrote: > Applied. > > Fabrice. > > Ben Pfaff wrote: > > This is the minimal patch that, combined with my previous patch, > > allows a Windows NT 4 guest to boot with qemu's PCI support > > enabled. It seems that WNT4 is pretty grumpy about the DSC > > ("device seek complete") bit in the status register. If we don't > > set it on WIN_SPECIFY, WNT4 times out and gives up on the device. > > > > diff -u -p -u -r1.26 ide.c > > --- hw/ide.c 25 Jun 2004 14:54:19 -0000 1.26 > > +++ hw/ide.c 14 Jul 2004 06:15:40 -0000 > > @@ -1477,7 +1477,7 @@ static void ide_ioport_write(void *opaqu > > case WIN_SPECIFY: > > case WIN_RECAL: > > s->error = 0; > > - s->status = READY_STAT; > > + s->status = READY_STAT | SEEK_STAT; > > ide_set_irq(s); > > break; > > case WIN_SETMULT: > > > > > > > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://lists.nongnu.org/mailman/listinfo/qemu-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-10-09 19:22 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-07-14 6:18 [Qemu-devel] [patch] make PCI work with Windows NT 4 guest Ben Pfaff 2004-07-14 11:01 ` Johannes Schindelin 2004-07-14 15:27 ` Ben Pfaff 2004-07-15 10:03 ` [Qemu-devel] Win98 network & cirrus logic success Johannes Schindelin 2004-07-15 18:45 ` [Qemu-devel] [patch] make PCI work with Windows NT 4 guest Hetz Ben Hamo 2004-10-09 16:49 ` Fabrice Bellard 2004-10-09 19:22 ` Magnus Damm
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).