Skip to content

USB-C hub's built-in NVMe enclosure (RTL9210) is not powered on hot-plug; works on cold-plug and in macOS (MacBookPro16,2) #212

Description

@Nazari

Hardware: MacBook Pro 13" 2020, MacBookPro16,2 (i7-1068NG7, T2). Ubuntu 26.04.1 LTS, stock kernel 7.0.0-30-generic. Kernel cmdline: intel_iommu=on iommu=pt pm_async=off (no t2-specific parameters). ORICO USB-C hub with an integrated M.2 NVMe slot (Realtek RTL9210B-CG bridge), hub's external power attached.

Hot-plug (hub connected while Linux is running, either USB-C port):
The hub itself enumerates fine (Realtek 0bda:0432, SuperSpeed Plus Gen 2x1, self-powered), together with its microSD reader (05e3:0751, shows as an empty /dev/sda) and the ITE billboard (048d:5212). The NVMe bridge (0bda:9210) never appears — not even as a USB 2.0 fallback. uhubctl shows all four downstream ports powered but idle:

Current status for hub 2-2 [0bda:0432 Generic 4-Port USB 3.0 Hub, USB 3.20, 4 ports, ppps]
  Port 1: 02a0 power 5gbps Rx.Detect
  Port 2: 02a0 power 5gbps Rx.Detect
  Port 3: 02a0 power 5gbps Rx.Detect
  Port 4: 02a0 power 5gbps Rx.Detect

dmesg only shows the hub, card reader and billboard; there is no enumeration attempt or error for the bridge. Tried without success: uhubctl -l 2-2 -a cycle, -a off / -a on, echo on > /sys/bus/usb/devices/2-2/power/control (the hub was auto/suspended), unbind/bind of the hub, the other USB-C port. No typec class is exposed on this machine, so there is no PD information to inspect.

Cold-plug (hub connected before powering on the Mac): works immediately.

[    1.439198] usb 2-2.2: new SuperSpeed Plus Gen 2x1 USB device number 3 using xhci_hcd
[    1.464335] usb 2-2.2: New USB device found, idVendor=0bda, idProduct=9210, bcdDevice=f0.01
[    1.464347] usb 2-2.2: Product: RTL9210B-CG
[    1.464358] usb 2-2.2: Manufacturer: Realtek
  Port 2: 0203 power 5gbps U0 enable connect [0bda:9210 Realtek RTL9210B-CG 012345678944]

Driver uas, 10 Gbps, partitions mount normally.

Control tests: the same hub and cable hot-plugged into a desktop Linux machine (Ubuntu, conventional USB-C port) enumerate the RTL9210 right away. The same MacBook booted into macOS detects the SSD hot-plugged.

Interpretation: the hub seems to gate the SSD power rail on a USB-C (PD) negotiation. On T2 Macs that negotiation is done by the T2 firmware at boot, and Linux does not redo it on hot-plug, so devices behind the hub that need it stay unpowered. This looks like the same pattern as the Thunderbolt report in #207 ("connect the external SSD before turning on the Mac").

Workaround: connect the hub before booting (or reboot with it attached).

Reporting mainly for documentation — a note in the wiki's device state page (USB-C docks / PD) or a known-issue entry may save others the debugging.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions