I'm playing with the USB code, but I cannot get the USB mouse emulation
to work with the guests I have tried (NetBSD and Win2k). Attached are
two patches that improves the situation somewhat.
* hw/usb-uhci.c
The PCI configuration registers are set up with an incorrect
offset for USBBASE and uninitialized SBRN. This makes NetBSD
complain that this is not a valid UHCI controller.
* hw/usb.c
The length field of the returned descriptor strings are
incorrect, which trunkates the returned strings.
There are some additional problems with the hub emulation that I hope
to get the time to fix during the weekend.
/Krister
Index: usb-uhci.c
===================================================================
RCS file: /sources/qemu/qemu/hw/usb-uhci.c,v
retrieving revision 1.4
diff -b -u -p -r1.4 usb-uhci.c
--- usb-uhci.c 19 Nov 2005 17:43:37 -0000 1.4
+++ usb-uhci.c 16 Feb 2006 20:02:52 -0000
@@ -654,6 +654,7 @@ void usb_uhci_init(PCIBus *bus, USBPort
pci_conf[0x0b] = 0x0c;
pci_conf[0x0e] = 0x00; // header_type
pci_conf[0x3d] = 4; // interrupt pin 3
+ pci_conf[0x60] = 0x11; // USB 1.1
for(i = 0; i < NB_PORTS; i++) {
port = &s->ports[i];
@@ -666,6 +667,6 @@ void usb_uhci_init(PCIBus *bus, USBPort
uhci_reset(s);
- pci_register_io_region(&s->dev, 0, 0x20, +
pci_register_io_region(&s->dev, 4, 0x20,
PCI_ADDRESS_SPACE_IO, uhci_map);
}
Index: usb.c
===================================================================
RCS file: /sources/qemu/qemu/hw/usb.c,v
retrieving revision 1.3
diff -b -u -p -r1.3 usb.c
--- usb.c 6 Nov 2005 16:13:29 -0000 1.3
+++ usb.c 16 Feb 2006 20:02:55 -0000
@@ -183,7 +183,7 @@ int set_usb_string(uint8_t *buf, const c
q = buf;
len = strlen(str);
- *q++ = 2 * len + 1;
+ *q++ = 2 * len + 2;
*q++ = 3;
for(i = 0; i < len; i++) {
*q++ = str[i];
_______________________________________________
Qemu-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/qemu-devel