Hello list. Linked is a patch that fixes a bug that occurs on
Windows XP sp1a - sp2 and perhaps earlier. Windows 2000 seems
unaffected. This patch sets the hchalted bit of the status I/O register
when the run/stop bit is unset during a write to the usb command I/O
register of the emulated uhci host controller.
To test simply start Windows XP with '-usb' option and bring up the
device manager. The 'generic usb hub' will disappear and appear over
and over again. The host controller driver expects hchalted to be set
and continues to poll status until it gives up and resets the controller
and therefore bus state. Some log output from the transaction below.
http://gnome.dnsalias.net/patches/qemu-hchalt.patch
uhci readw port=0x0006 val=0x03e5
uhci readw port=0x0000 val=0x0081
uhci writew port=0x0000 val=0x0080 (clears Run/Stop bit)
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000 ... doesn't see hchalted being set
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000
uhci readw port=0x0002 val=0x0000
uhci writew port=0x0000 val=0x0084 (perform global reset)
uhci writew port=0x0000 val=0x0080
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel