With legacy free systems serial ports have stopped being an option to get early boot traces and other debug information out of a machine.
EHCI USB controllers provide a relatively simple debug interface that can control port 1 of the root hub. This interface is limited to 8 byte packets so it can be used with most USB devices. But with a USB debug device this is sufficient to talk to another machine.
When the special feature of the EHCI is not enabled the port 1 of the root hub acts just like any other USB port so machines with the necessary support are widely available.
This debug device can be used to replace serial ports for kgdb, kdb, and console support. And gregkh has a simple usb serial driver for it so user space applications that control serial ports should work unmodified.
Currently there only appears to be one manufacturer of debug devices see: http://www.plxtech.com/products/NET2000/NET20DC/default.asp
I think simple RS232 serial ports provide a nicer and simpler interface but the usb debug port looks like a functional alternative when you don't have that.
My code likely doesn't handle all of the corner cases yet, and needs a little more work to integrate cleanly into the build. But this is getting it out there so other people can look and help make clean drivers. When writing a polling driver you do have to be careful with your logic, because if you do things like reset a usb device at the wrong time you can completely confuse various EHCI controllers.
My driver should be sufficient to work with any EHCI in a realatively clean state, and needs no special BIOS support just the hardware. This appears to be different than the way the windows drivers are using these debug devices.
Eric