diff -Naur qemu-0.9.0/hw/pc.c qemu-0.9.0-ohci-patch/hw/pc.c --- qemu-0.9.0/hw/pc.c 2007-02-06 00:01:54.000000000 +0100 +++ qemu-0.9.0-ohci-patch/hw/pc.c 2007-03-29 15:43:18.000000000 +0200 @@ -695,7 +695,10 @@ cmos_init(ram_size, boot_device, bs_table); if (pci_enabled && usb_enabled) { - usb_uhci_init(pci_bus, piix3_devfn + 2); + if (use_ohci_instead) + usb_ohci_init(pci_bus, 3, -1); + else + usb_uhci_init(pci_bus, piix3_devfn + 2); } if (pci_enabled && acpi_enabled) { diff -Naur qemu-0.9.0/vl.c qemu-0.9.0-ohci-patch/vl.c --- qemu-0.9.0/vl.c 2007-02-06 00:01:54.000000000 +0100 +++ qemu-0.9.0-ohci-patch/vl.c 2007-03-29 15:44:52.000000000 +0200 @@ -155,6 +155,7 @@ int win2k_install_hack = 0; #endif int usb_enabled = 0; +int use_ohci_instead = 0; static VLANState *first_vlan; int smp_cpus = 1; const char *vnc_display; @@ -6048,6 +6049,7 @@ "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n" #endif "-usb enable the USB driver (will be the default soon)\n" + "-ohci use the OHCI controller instead of the UHCI\n" "-usbdevice name add the host or guest USB device 'name'\n" #if defined(TARGET_PPC) || defined(TARGET_SPARC) "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n" @@ -6198,6 +6200,7 @@ QEMU_OPTION_kernel_kqemu, QEMU_OPTION_win2k_hack, QEMU_OPTION_usb, + QEMU_OPTION_ohci, QEMU_OPTION_usbdevice, QEMU_OPTION_smp, QEMU_OPTION_vnc, @@ -6284,6 +6287,7 @@ /* temporary options */ { "usb", 0, QEMU_OPTION_usb }, + { "ohci", 0, QEMU_OPTION_ohci }, { "cirrusvga", 0, QEMU_OPTION_cirrusvga }, { "no-acpi", 0, QEMU_OPTION_no_acpi }, { "no-reboot", 0, QEMU_OPTION_no_reboot }, @@ -6917,6 +6921,9 @@ case QEMU_OPTION_usb: usb_enabled = 1; break; + case QEMU_OPTION_ohci: + use_ohci_instead = 1; + break; case QEMU_OPTION_usbdevice: usb_enabled = 1; if (usb_devices_index >= MAX_USB_CMDLINE) { diff -Naur qemu-0.9.0/vl.h qemu-0.9.0-ohci-patch/vl.h --- qemu-0.9.0/vl.h 2007-02-06 00:01:54.000000000 +0100 +++ qemu-0.9.0-ohci-patch/vl.h 2007-03-29 15:42:19.000000000 +0200 @@ -155,6 +155,7 @@ extern int kqemu_allowed; extern int win2k_install_hack; extern int usb_enabled; +extern int use_ohci_instead; extern int smp_cpus; extern int no_quit; extern int semihosting_enabled;