← Back to context

Comment by lxgr

2 years ago

Speaking of USB-C 10 Gbit/s cables, I've noticed something odd about the iPhone 15 Pro:

I have a USB-C cable that has been yielding 10 Gbit/s speeds (i.e. USB 3 Gen 2x1 or possibly but very unlikely 1x2) when used at my Mac with various devices (mostly SSDs).

However, that same cable only gets USB 2 speeds when connecting the iPhone to my Mac. The iPhone itself also seems to only get USB 2 speeds using the SSD and that cable. Yet with another, newer USB-C 10 Gbit/s cable, I get 10 Gbit/s throughout all scenarios.

What's going on here? Is the iPhone overly strict about supporting USB 3 speeds over USB-C cables, i.e. is my old cable possibly not electronically marked properly, and the Mac is just more tolerant of that?

And something else I've noticed: The iPhone also does not get 10 Gbit/s using a somewhat monstrous adapter construction (USB-C to USB-A adapter, USB-A to USB-C cable) that should however be fully standards-compliant without any active e-markers (i.e. a resistor-marked A-to-C cable and a resistor-marked C-to-A adapter).

I really wish there was an easy way to dump the cable's SOP' communication on macOS and look into whether a given cable is actually e-marked, and if so, with what capabilities. Alternatively, just showing this in "System Information" would really help, i.e. indicating whether a connection is only using USB 2 speeds due to the cable or the device not supporting more.

There is no such thing as a compliant USB A to USB C adapter and some combination may fry your device.

https://hackaday.com/2022/12/27/all-about-usb-c-illegal-adap...

  • Your article says USB A male to USB C female is noncompliant.

    It doesnt say USB A female to USB C male is noncompliant. These are reasonably common and I had one included with both my current laptop and my current smartphone, for example.

    • Yes, I meant female A to male C. These are compliant and even have specific resistor coding so that dual-role USB-C devices know what they have to do, since USB-A ports are directional.

I think a good step in debugging this would be to download Apple’s “Additional Tools for Xcode 15”, and then open up IO Registry Explorer. There’s a lot more info to see there about attached devices than the standard system profiler.

  • I'll give that a try, thank you!

    There are already some SOP-related messages in the system debug logs (although almost completely redacted), so I'm at least optimistic that this is handled by the OS, and not e.g. purely in firmware in the USB-C controller.

Apple tends to be very picky about spec compliance in some things.

I wonder: is your Mac an Intel model or an Apple Silicon model? Perhaps the Intel powered ports are more lenient?

It would be interesting to know of a high quality cable tester showed some other difference in capabilities between the cables that may explain it.

  • Both my current M1 Mac and my previous Intel Mac were fine with the cable!

    > It would be interesting to know of a high quality cable tester showed some other difference in capabilities between the cables that may explain it.

    I'm fairly certain that the cable itself is perfectly fine, but that the iPhone insists on a specific bit being set on the e-marker chip insider the cable, while Macs are more tolerant and will just attempt a USB 3 connection anyway, especially since they need to support unmarked USB 3 for use with USB-A adapters anyway.

  • You mean malicious on purpose so people buy Apple branded ones when something that should work doesn't

iPhone 15 USB 10Gbps support seems to be picky about USB-PD version. Although I dont have time to test out this theory.

I figure the reason the Apple USB-C cable has a complex PCB embedded in the head-end of the cable is to detect Apple-certified devices and ensure top speed only when paired with an Apple-certified cable. Both the device and the cable have to recognize each other as properly licensed devices, otherwise you get sub-standard performance.

  • Apple has denied this.

    From their support page https://support.apple.com/en-us/HT213839

    > The USB-C cable that comes with your iPhone supports charging and USB 2 speeds. If you want to use a USB 3 device, use a compliant USB 3 cable that supports 10Gbit/s.

    Note that this is only the 15 Pro. The "vanilla" 15 uses last year's A16 SoC and doesn't have a USB 3.x-capable PHY.

  • No.

    Doing 40Gbps data is really hard because physics. Once you get beyond about 100cm, the signal loss basically requires you to add a repeater or retimer. This has been part of the USB-C specification since the very beginning, and any cable of this length doing 40Gbps will feature a similar PCB.

    • Sure, but I'm trying to do 10 Gbit/s on a <1m cable. That's definitely possible passively.

      The USB specs say that C-to-C cables need an e-marker for that, and A-to-B or other non-C-to-C cables need nothing at all (apart from one or two resistors in case of an A-to-C or C-to-micro-B adapter).

  • If that were true, my fairly cheap ($10) newer cable also shouldn't work at 10 GBit/s, but it does.