I’m pleased to announce that the eXtensible Host Controller Interface (xHCI) 1.0 specification is now publicly available on intel.com. This is the specification for the PC hardware that talks to all your USB 3.0, USB 2.0, and USB 1.1 devices. (Yes, there are no more companion controllers, xHCI is the one host controller to rule them all).
Open, public documentation is always important to the open source community. Now that the spec is open, anyone can fully understand my Linux xHCI driver (although it’s currently only compliant to the 0.96 xHCI spec; anyone want to help fix that?). This also means the BSD developers can implement their own xHCI driver.
Curious what a TRB or a Set TR Deq Ptr command is? Want to know how device contexts or endpoint rings work? Go read the spec!
My Linux Conference AU slides are now posted on my server. The USB 3.0 talk went really well, and I look forward to sharing it when the LCA videos go up in the next couple weeks.
LCA was a total blast! The speakers were wonderful, and I really felt integrated into the conference and social events by the techie women of LCA. Thank you to Sara, Jo, Jacinta, Liz, and all the other Haecksen of LCA2010!
The only downside is the weather. It’s really quite rainy here, although it’s 10-15 degrees warmer than Portland. I think Jamey and I are going to skip the Tongariro Crossing and go straight to the glow worm caves at Te Kuiti/Waitmo. At least we’ll be in a cave while it’s raining!
*tap tap* Is this thing on?
Choose your excuse:
I haven’t posted in about six months, because
a. I bought a house,
b. I acquired two cute kittens (Derek and Elisa),
c. The acquired house needed a ton of work, including taking down a 30 foot “hedge” in the backyard,
d. I’ve been experimenting with all kinds of cooking,
e. I’m lazy.
What’s next for me?
I’m presenting about Linux USB 3.0 support at Linux Conf AU 2010. If you’re going to LCA next week, you can check out my talk at Friday at 10:30am in the Ilott Theatre. I’ll have a USB 3.0 demo for the brave souls that make it to morning talks. ^_^ If you miss it due to being hung over or not being able to attend LCA, I believe they’ll be video taping it.
LCA is being held in Wellington, New Zealand, this year. Jamey and I are going bike camping for two weeks afterwards. As Martin Short put it, “I planned a spontaneous adventure.” Let’s hope Captain Ron doesn’t screw it up. 😉
Any suggestions of cool things to see on the North Island? We’re probably going to National Park, Te Kuite, Auckland, and the Coromandel Peninsula. Anything else in that general area?
This documents my personal flow for downloading and installing a Linux kernel with my xHCI and USB 3.0 code. Until the code is in the upstream kernel and shipping in Linux distributions, you’ll have to follow these directions to get Linux USB 3.0 support.
#tags usb,usb3,linux,open source
The xHCI (USB 3.0) host controller driver and initial support for USB 3.0 devices is now publicly available on my kernel.org git tree. Greg Kroah-Hartman has queued the patches for 2.6.31, so Linux users should have official USB 3.0 support around September 2009. This is impeccable timing, since NEC recently announced they’ll be producing 1 million xHCI PCI express add-in cards in September.
This means that Linux will be the first operating system with official USB 3.0 support. I’m working with Keve Gabbert (the OSV person in my group at Intel) to make sure that Linux distributions like Ubuntu and Red Hat pick up the xHCI driver. Advanced users can always compile their own kernel on a standard distro install.
I hope that some USB 3.0 vendors who have prototypes will test with my driver. Instructions on how to compile a kernel using my git tree will follow.
This is a giant project that I’ve been working on for the past year and a half. It’s gratifying to see the code finally released, and exciting to know that hardware is on its way.