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

Reply via email to