From: johan verreptTo: user-mode-linux-devel Subject: [linux-usb-devel] [ANNOUNCEMENT] User Mode Linux USB HCD driver (alpha release) Date: Sun, 15 Apr 2001 21:53:03 +0200 Cc: linux-usb-devel hello, I would like to announce the existance of a UML USB Host Controller. This HC allows the usage of usb devices in uml. This would give uml direct access to keyboards, mice, serial ports, modems, ethernet dongles, SCSI hardware, camera's, printers and everything else the usb subsystem can support without adding specific support in either the uml or host kernel (except for the HC). For the USB subsystem, this HC allows debugging of the USB core and drivers in a user-mode kernel. This means no more time-consuming reboots and cryptic ksymoops messages, corrupted file systems, and so on. It means using debuggers like gdb on a 'normal' process. The code is in a very early alpha stage. At the moment, when uml boots all present devices on the available busses are detected and enumerated by the usb device system. Plugging and unplugging of devices should work, but has not been tested. There is support available for control (obviously), bulk and interrupt tranfers. The last two have seen very little testing. Also, the code is still rather dirty. It contains unused code, lots of warnings and a huge amount of tracing. Apparantly there is also a bug when shutting the system down. The attached patch is against 2.4.3 with uml-patch-2.4.3.bz2 (For those who do not have experience with uml, see http://user-mode-linux.sourceforge.net/ ) If you want to try a driver in uml, make sure this drivers are not loaded in the host kernel and the other way around (Except the HC drivers and the hub driver). Major issues to be solved: - Add a ghost driver to lock all devices which are in use by the host kernel. - Solve issue of hub race. (see umusb_kern.c) - Add isochronous transfers - Make return values consistent with existing HCD's. - export the events flag of the irq_user.c poll() patch and use it to do asynchronous usb completion iso timer based polling. (the poll() patch is integrated in this patch) - code clean up enjoy, J.