Skip to content

Why no NHI binds on the J516M #2

Closed

Description

@hungbenjamin402

Part of #1

Question

Why does no NHI bind on the J516M, and what exactly must change for each port's NHI to bind and its USB4 domain and host router to appear?

Today the three ACIOs bind (thunderbolt-apple-acio: 701ac0000.cio, b01ac0000.cio, f01ac0000.cio) and the four ATC PHYs bind, but thunderbolt-apple-nhi binds nothing, although the device tree has cio@…/nhi@f00000 under every ACIO with no status = "disabled". /sys/bus/thunderbolt is empty.

Find the cause with evidence from the source on the usb4-m3max branch and the running machine (child-node population, compatible match, power domain, reset, probe deferral, firmware or mailbox), and compare it with the path the J516S (T6030) takes. The answer is the cause plus the list of changes bring-up needs, each marked kernel or m1n1.

Activity

  1. hungbenjamin402 commented on Nov 9, 2026

    @hungbenjamin402
    OwnerAuthor

    Answer: nothing is wrong with NHI matching (apple,t8103-usb4-nhi matches). The NHI is never created because the ACIO populates its DART and NHI children only in apple_cio_start(), which runs only when the PD controller reports USB4/TBT mode entry. No partner has been on any USB-C port in any retained boot. The J516S works the same way.
    The real bring-up gap is on connect. The T6031 ACIO uses the t8103 start sequence, but the J516M ADT lists acio-cpuN as iop,mxwrap-acio at the T6030 cpu address (0xN_01100000). Without the MxWrap RUN step the M3 should fail to boot before the NHI is populated (inferred, not yet seen on hardware).
    Changes for bring-up: kernel DT (add pcie-adapter and cpu reg windows to the 3 ACIOs) together with a kernel driver change (apple_cio_t6031_hw gets mxwrap, lstx_explicit, strict_fw_ready). m1n1 needs no change for bring-up. Tunnel and DP follow-ups are listed in the findings.
    Findings: https://github.com/hungbenjamin402/linux-aurora/blob/research/nhi-bind/research/nhi-bind.md

  2. hungbenjamin402 commented on Nov 9, 2026

    @hungbenjamin402
    OwnerAuthor

    Correction from Existing Apple USB4 work and what applies to the T6034: draft omacom#406 shows another J516M bringing up a USB4 domain on ACIO2 (a Studio Display at 5K over Thunderbolt) with the stock T6031 ACIO start, i.e. without MxWrap, using m1n1 aurora22-103. The predicted RTKit failure without MxWrap was an inference; that evidence says the stock start can work. Treat the overlay plus .mxwrap change as unproven until the first plug-in (Linux behaviour today with the dock and enclosure) shows which is true.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions