On Thu, Apr 19, 2012 at 04:42:04PM -0400, Mike Vlad wrote: > Hello Sarah, > > I've been trying to get answers to some questions from Intel and elsewhere and it proved unsuccessful. Long story short, I discovered you and your involvement in xHCI. I don't know much about hardware/software inner workings, and am looking for a little clarification: > > 1a) Can a controller compliant to xHCI rev. 0.96 be updated to 1.0? (i.e. via firmware/bios/Linux kernel update?) No, the hardware registers are different. A 0.96 or 1.0 chipset is certified to that particular specification revision, and the vendor has no incentive to provide an upgrade. > 1b) Or are these revisions hardware based? (Meaning whatever revision it comes with, it has to stay that way) Yes. > 2) Does it look like there's a revision after 1.0 on the horizon? Let me explain what the 0.96 and 1.0 revisions mean before I answer that question. > The thing I don't understand is what xHCI really is, in simple terms. A driver? A hardware architecture? xHCI is a spec that defines the interface between the eXtensible Host Controller (xHC) and software. So it's an interface specification, that defines both the registers that the hardware needs to expose, and the data structures and behavioral model that a software driver needs to use in order to communicate with the hardware. Basically, the 0.96 spec was released to allow third-party host vendors to create PCIe add-in cards or stand-alone chips that OEMs could add to their motherboard. You can only integrate an xHC into a chipset (making the hardware physically part of the chipset package) if you comply with the xHCI 1.0 spec. Think of the 0.96 spec as a test run. Intel wanted to make sure the interface architecture is correct before we allow anyone (including ourselves) to integrate it into chipsets that are harder to swap out than a stand-alone chip. There were architectural issues that were fixed in the 1.0 spec that were found in the 0.96 spec. I can't remember too much about what got fixed though. Some registry tweaks, maybe some bulk streams hardware behavioral fixes for the new USB storage class, USB attached SCSI (UAS), and some updates for the USB 2.1 low power states (link PM). If Intel were ever to have a "1.1" xHCI spec, it would probably be a compilation of the errata that's currently available against the 1.0 spec. But it's not a big leap, like from discrete hosts to integrated hosts like the 0.96 to 1.0 spec is. > I'm looking to buy a 7 series Intel motherboard soon (which complies to rev. 1.0 according to an Intel datasheet for OEMs) and all the ones I wanted have 3rd party USB 3.0 controllers (ASMedia ASM1042) that comply to 0.96, even though the latest is 1.0. So my thinking is that I don't want to get controllers with "old standards" and have a feature(s) missing that I may need in the future when USB 3.0 matures, assuming no updates are possible. Back at IDF, Intel announced that our Ivy Bridge chipset (Panther Point) will have an integrated (1.0) xHCI host controller. If you really want a 1.0 host, then you should wait for an Ivy Bridge system. I'm using a discrete 0.96 NEC xHCI in my personal x220 laptop, but that's because I'm a crazy early adopter who couldn't wait to get a new computer with USB 3.0. :) I have to say, I wish I had waited for the Ivy Bridge ultrabooks instead, since those will be much thinner and lighter, and have an Intel 1.0 xHCI host. I've been waiting to upgrade my work laptop until Ivy Bridge comes out, of course. Bit of legalize: The above paragraph is designed to express my personal preference, and should in no way be construed as being the opinions of my employer, Intel. Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html