OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 1:29 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: What HCI does USB4 use?
PostPosted: Sun Oct 24, 2021 7:21 pm 
Offline
Member
Member

Joined: Sun Jun 23, 2019 5:36 pm
Posts: 618
Location: North Dakota, United States
I know that USB 1 uses UHCI and OHCI, USB 2 uses EHCI, and USB 3 uses xHCI. However, there does not appear to be a specification for any HCI used by USB 4 (that I can find, anyway). Does USB4 just use xHCI? (According to Wikipedia it might use Thunderbolt 3 but I don't know if just supporting Thunderbolt3 would make it possible for me to use USB 4.) I'm mainly asking out of curiosity at this point.


Top
 Profile  
 
 Post subject: Re: What HCI does USB4 use?
PostPosted: Sun Oct 24, 2021 11:03 pm 
Offline
Member
Member
User avatar

Joined: Sat Nov 22, 2014 6:33 pm
Posts: 934
Location: USA
Ethin wrote:
I know that USB 1 uses UHCI and OHCI, USB 2 uses EHCI, and USB 3 uses xHCI. However, there does not appear to be a specification for any HCI used by USB 4 (that I can find, anyway). Does USB4 just use xHCI? (According to Wikipedia it might use Thunderbolt 3 but I don't know if just supporting Thunderbolt3 would make it possible for me to use USB 4.) I'm mainly asking out of curiosity at this point.

You have given a good example of the very common misconception of most people starting out using USB. USB 1 is not UHCI or OHCI, USB 2 is not EHCI, etc.

A USB 4 device, with the acceptable Type-A socket, is completely UHCI/OHCI compatible. It also goes the other way around, a UHCI/OHCI controller is USB 4 compatible. The version of the USB specification has nothing to do with the version of the xHC controller.

A USB 1 device plugged into an xHCI is fully compatible. In fact, this direction, the USB 1 device is fully capable of anything it could have done when plugged into a UHCI/OHCI.

The other way around, if you plug a USB 4 device in to a UHCI, it should, at the very least, enumerate and let the OS know what it is. It may not be usable, in a sense, but it is fully USB 4 compatible. I have a Super-Speed thumb drive that uses streams and is extremely fast at large transfers when plugged into a stream capable xHCI controller. However, that exact same thumb drive, when plugged into an UHCI still functions and allows me to read or write to it, just not as fast (UAS Protocol using streams verses BBB protocol).

The USB specification version is usually the first released while the xHC controller is then released to accommodate the new features in the new USB specification. It just so happens, at the moment, that the latest release of the xHCI specification (revision 1.20) is/will be USB 4.0 capable.

Hope this makes sense.
Ben
- http://www.fysnet.net/the_universal_serial_bus.htm


Top
 Profile  
 
 Post subject: Re: What HCI does USB4 use?
PostPosted: Mon Oct 25, 2021 1:00 am 
Offline
Member
Member

Joined: Sun Jun 23, 2019 5:36 pm
Posts: 618
Location: North Dakota, United States
BenLunt wrote:
Ethin wrote:
I know that USB 1 uses UHCI and OHCI, USB 2 uses EHCI, and USB 3 uses xHCI. However, there does not appear to be a specification for any HCI used by USB 4 (that I can find, anyway). Does USB4 just use xHCI? (According to Wikipedia it might use Thunderbolt 3 but I don't know if just supporting Thunderbolt3 would make it possible for me to use USB 4.) I'm mainly asking out of curiosity at this point.

You have given a good example of the very common misconception of most people starting out using USB. USB 1 is not UHCI or OHCI, USB 2 is not EHCI, etc.

A USB 4 device, with the acceptable Type-A socket, is completely UHCI/OHCI compatible. It also goes the other way around, a UHCI/OHCI controller is USB 4 compatible. The version of the USB specification has nothing to do with the version of the xHC controller.

A USB 1 device plugged into an xHCI is fully compatible. In fact, this direction, the USB 1 device is fully capable of anything it could have done when plugged into a UHCI/OHCI.

The other way around, if you plug a USB 4 device in to a UHCI, it should, at the very least, enumerate and let the OS know what it is. It may not be usable, in a sense, but it is fully USB 4 compatible. I have a Super-Speed thumb drive that uses streams and is extremely fast at large transfers when plugged into a stream capable xHCI controller. However, that exact same thumb drive, when plugged into an UHCI still functions and allows me to read or write to it, just not as fast (UAS Protocol using streams verses BBB protocol).

The USB specification version is usually the first released while the xHC controller is then released to accommodate the new features in the new USB specification. It just so happens, at the moment, that the latest release of the xHCI specification (revision 1.20) is/will be USB 4.0 capable.

Hope this makes sense.
Ben
- http://www.fysnet.net/the_universal_serial_bus.htm

Yeah, this helped. Thanks. What about the other way around (using Type-C sockets)? And how will xHCI accommodate the extra features of USB 4.0 (USB 3/PCIe/display port/host-to-host tunnelling)? Like I think its awesome that I can now plug in a device and it shows up on my PCIe bus, but how would I even know that somebody has attached a device that tunnels PCIe? Would that appear as a hot-swappable device? (I presume that the host-to-host and display port tunnelling mechanisms require their own device drivers.)


Top
 Profile  
 
 Post subject: Re: What HCI does USB4 use?
PostPosted: Mon Oct 25, 2021 2:28 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 5100
USB4 defines a new host interface adapter that's responsible for configuring tunnels for the different kinds of traffic USB4 supports. When the traffic in question is USB, you'll configure the USB4HIA to route it to an xHCI controller. Different types of traffic (PCIe/DisplayPort/host-to-host) will be routed elsewhere.


Top
 Profile  
 
 Post subject: Re: What HCI does USB4 use?
PostPosted: Mon Oct 25, 2021 8:59 am 
Offline
Member
Member

Joined: Sun Jun 23, 2019 5:36 pm
Posts: 618
Location: North Dakota, United States
Octocontrabass wrote:
USB4 defines a new host interface adapter that's responsible for configuring tunnels for the different kinds of traffic USB4 supports. When the traffic in question is USB, you'll configure the USB4HIA to route it to an xHCI controller. Different types of traffic (PCIe/DisplayPort/host-to-host) will be routed elsewhere.

I assume that the HIA's configuration registers are defined in chapter 8 of the USB4 spec, but how do you actually discover the HIA to begin with?


Top
 Profile  
 
 Post subject: Re: What HCI does USB4 use?
PostPosted: Mon Oct 25, 2021 9:27 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 5100
I think chapter 8 might be the registers for USB4 hubs. The HIA is defined in chapter 12. You can detect it from the PCI class code 0C 03 40, similar to other USB host controllers.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: Kamal123 and 59 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group