Live data from Hacker News

M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

eclecticlight.co

31–40 of 333 posts

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#31

Earlier quoted context omitted.

Same thing happened with HDMI 2.1, all new features were defined as optional so everyone who only supports the 2.0 feature set can claim HDMI 2.1 compliance

Not just can, they're only certifying "2.1" now or something like that.

Yes, they said that 2.0 doesn't exist anymore:

1. HDMI 2.0 no longer exists, and devices should not claim compliance to v2.0 as it is not referenced any more

2. The features of HDMI 2.0 are now a sub-set of 2.1

3. All the new capabilities and features associated with HDMI 2.1 are optional (this includes FRL, the higher bandwidths, VRR, ALLM and everything else)

4. If a device claims compliance to 2.1 then they need to also state which features the device supports so there is “no confusion” (hmmmm)

https://tftcentral.co.uk/articles/when-hdmi-2-1-isnt-hdmi-2-...

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#33
post #19

The inability of the USB standards body to stick to a versioning scheme beggars belief: what in the world could "USB 3.1 Gen 2" possibly mean? Versions are free, why not simply name it "USB 3.2" and make the next one 3.3? "Gen 2" strikes me as the "Essay FINAL (final version 2).docx" of standards revisions.

But then you wouldn't be able to label-engineer your old chips into "the latest version" (of the old feature subset). Isn't "USB 3.1 Gen 2" the usb 2 performance level as (re)specified in the USB 3.1 document set? I'm deliberately writing without involving a search engine, to make my reply an authentic sample of the resulting confusion. My memory is probably wrong - and if it isn't, the lack of confidence still serve…

The generations start with USB 3.0.

But for bonus confusion they don't refer to connection speed. They refer to single lane speed, and a connection can have 1 or 2 lanes.

Gen 1 is 5Gbps, gen 2 is 10Gbps. Gen 2x2, sigh, is 20Gbps total. If they weren't trying to obfuscate things, those would simply be 3.0, 3.1 and 3.2.

There's also Gen 1x2 in theory, but I've never seen mention of anything using it.

And then after USB 3.2 you have USB4[sic] which adds Gen 3 and 3x2.

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#34
post #2

My initial suspicion would be the user used bad cables. There's many cables that say they're capable of a speed when they are not in fact capable.

I really like (careful, sarcasm) that about USB-C and HDMI. You have a port, you have a cable. But if you're not a Syadmin you have no idea why it does not work as you think it should.

I can't understand why they did not put some kind of capability mark for cables/ports into the spec.

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#35
post #2

My initial suspicion would be the user used bad cables. There's many cables that say they're capable of a speed when they are not in fact capable.

The issue is not a cable thing. I have experienced the same behaviour on both a 2020 intel MBA and a 2021 M1 Pro; a 10GB/s rated Samsung T5 SSD only connects to either Mac at 5GB/s, despite being rated for 10GB/s. The same SSD (and cables) connects to Linux & Windows boxen at 10GB/s.

Equally, a Crucial X8 SSD rated for the same 10GB/s connects to both Macs at its rated speed.

This behavious has persisted across OS updates since Big Sur.

My current thinking is that there's some undocumented quirks in place in MacOS that scales speeds down with certain USB controllers.

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#36
post #27
post #11

Earlier quoted context omitted.

I'm fine with devices offering different capabilities. But the cables should be marked clearly... I have one of the chinese drawing tablets, which has a convoluted "to USB-C" adapter. Apparently you can also drive it with USB-C directly, however only a manufacturer-provided cable (supershort) fits the port. Noone know what cable you can use alternately...

> But the cables should be marked clearly... How about by using different ports? Imagine if instead of playing whack a mole with 4 usb-c ports on my laptop, 2 usb c ports on my monitor and a bag of cables, I could plug a cable that fits into the port it fits into?

> How about by using different ports?

That would just be worse: the port being backwards compatible is a feature, being able to plug a 5Gbps device into a 20G-capable-port is a good thing, so is being able to plug a self-powered device into a PD-capable port.

The issue is the difficulty of matching the cable with the device (and port) to ensure the upper bounds match. Obviously you could get the highest-rated cables but there are tradeoffs in length and flexibility, using a 2x2 PD 3.1 cable to plug in a keyboard is just a waste of money and simply results in lower convenience (as the 2x2 PD 3.1 cable will be shorter and more rigid than a USB 2.0 low-power cable).

That could be an argument for "different ports" being backwards-compatible "poka-yoke" (mistake-proofing) ports, but historically these have had really shitty design (e.g. m.2 tabs are plain misdesigned) and they would have required significantly increasing the size of the plugs to make room for the hardware features.

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#37
post #19

The inability of the USB standards body to stick to a versioning scheme beggars belief: what in the world could "USB 3.1 Gen 2" possibly mean? Versions are free, why not simply name it "USB 3.2" and make the next one 3.3? "Gen 2" strikes me as the "Essay FINAL (final version 2).docx" of standards revisions.

But then you wouldn't be able to label-engineer your old chips into "the latest version" (of the old feature subset). Isn't "USB 3.1 Gen 2" the usb 2 performance level as (re)specified in the USB 3.1 document set? I'm deliberately writing without involving a search engine, to make my reply an authentic sample of the resulting confusion. My memory is probably wrong - and if it isn't, the lack of confidence still serve…

As far as I know - 3.1 Gen 2 is what 3.1 would have been called if they named it properly, 3.1 Gen 1 is equivalent to 3.0. (the 3.0 line is 3.2g1/3.1g1/3.0, the 3.1 line is 3.2g2/3.1g2, and 3.2 is 3.2g2x2?)

At this point I'm certain the confusion is intentional

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#38
post #2

My initial suspicion would be the user used bad cables. There's many cables that say they're capable of a speed when they are not in fact capable.

I really like (careful, sarcasm) that about USB-C and HDMI. You have a port, you have a cable. But if you're not a Syadmin you have no idea why it does not work as you think it should. I can't understand why they did not put some kind of capability mark for cables/ports into the spec.

> I can't understand why they did not put some kind of capability mark for cables/ports into the spec.

You're talking about a completely different thing from cables that claim to handle a certain speed but aren't built well enough to actually do so.

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#39
post #6

USB went from being the universal bus, to just being the universal connector. There are never any guarantees that your device (or cable!) actually supports the operation you’re trying

> (or cable!)

Recently, I tried to find a Displayport-compatible cable and went through three (admittedly on the cheap side) cables that claimed to support it but didn't - in the end, I just bought a certified Thunderbolt 3 cable to avoid any ambiguity in whether they included all the wires or not

Re: M1 Thunderbolt ports don’t fully support USB 3.1 Gen 2

#40

> In normal testing, 5 Gb/s should yield around 500 MB/s Wow 90% overheads?

Bits to bytes means dividing by 8.

I'm old enough to remember parity bits and FEC, so I know that the number of bits per data byte might be 8, but the number of bits required to transmit a single byte might be more than 8, and the number of bytes needed to transmit a frame of data might also be higher than the number of bytes of payload within the frame.

I know next to nothing about modern serial protocols, but nevertheless as a rule of thumb, and absent any other information, I tend to use 10 bits per byte when converting bits per second to bytes per second.

Saves disappointment if nothing else.

Post reply on HN