Repository navigation
arm64: dts: apple: Enable J716c USB4 display routing on all ports - #1273
Conversation
7c0d653 to
b92cdd5
Compare
c335baf to
0c929dd
Compare
b92cdd5 to
722b1b8
Compare
0f76176 to
f2010ce
Compare
722b1b8 to
081122d
Compare
DjDeveloperr
left a comment
There was a problem hiding this comment.
J716c-only DT. t6050-j716c.dtb builds at this head, dt-validate reports nothing for it, and apple,dcp.yaml, apple,t8103-usb4-acio.yaml, apple,combo-phy.yaml and apple,sn201202x.yaml pass dt-doc-validate. The other T6050 boards still don't build because of the base's duplicate labels. #1308 (on top of this branch) fixes that; J716c and J775D come out byte-identical. The J714s equivalent of this routing needs its own board description of the left ports and can't be validated without a dock (ATC0 is our debug link), so I haven't written it.
Setup. 14-inch M5 Pro (J714sAP, T6050, macOS 27.0 firmware). RAM boot through aura of #1273's head (the whole stack on ewb/j716c-usb4-public-base), plus our M5 Pro GPU commit, plus #1308. #1308 is needed because the base doesn't build t6050-j714s.dtb; see there. The kit DT is the J714s one compiled on this tree. Modules: nvme, display, smc, input, gpu and usb4 (mux-apple-display-crossbar, phy-apple-dptx, atc-t6050-dp, dwc3-apple, sn201202x, thunderbolt, thunderbolt_apple). No display or dock was attached. ATC0 carries the debug link.
Whole-stack result on J714s.
- Boots to a shell with no oops, WARN or BUG.
2ab000000.phyand383000000.phy-> apple-t6050-dp-phy (phys .0-.5);2aa280000.usband382280000.usb-> dwc3-apple. typec port0 and port1 register (device/sink, no partner). The debug port is left alone and the KIS link stayed up throughout.- Internal panel:
display-subsystem-> apple-drm,card1-eDP-1connected and enabled at 3024x1890. GPU: card0 and renderD128. - ATC2 router mailbox
381108000binds and thunderbolt_apple loads.381ac0000.aciostays deferred because J714s has no boardports/DROM yet.
KUnit on the same tree (ARM64 QEMU, panic_on_warn=1, PROVE_LOCKING, DEBUG_OBJECTS_WORK): 356 tests, 354 passed, 2 skipped by design.
081122d to
5024053
Compare
|
Leaving this open: it is based on #1276 (the J716c GPU/panel tree, on #1012) and needs #1271/#1270 for the display-tunnel driver chain. #1012 isn't being merged in this round, so this waits with them. #1323, which provides the right-port and USB4 platform nodes, is going in now. 🤖 Generated with Claude Code |
5024053 to
1de9dc7
Compare
Wire both left USB-C ports, their USB and PCIe IOMMUs, router resources, power domains and display routes. Enable external display processors and four tunnel pixel-clock gates per port using the public hardware inventory. Extend the display master's scanout list while retaining the internal panel's DART first for the loader handoff. Enable each required supply domain and the board-specific boot-port USB2 handover property. Each port routes two displays through independent processors, with paired processors for high-bandwidth modes. Skip the J716c inventory copies of the two left-port PCIe DARTs when the board supplies their tunnel-bus nodes, keeping those nodes unique. Developed with Claude Code. Signed-off-by: Erik Bourget <erik@ebourget.net>
1de9dc7 to
a5054ee
Compare
dddc6e8 to
49b0a5b
Compare
Enable both left USB-C ports and display routing on all three J716c ports. Describe the PHY, USB, USB4, PCIe tunnel and display resources, their power/clock dependencies, and the reciprocal routing graph. Preserve the internal panel as the display master's first scanout.
Based directly on #1276 (
ewb/j716c-public-gpu-display-dt) for the independent GPU/internal-panel board description. Additional dependencies: #1323 for the right-port and USB4 platform nodes; #1271 for the completed display-tunnel driver chain, including #1270, #1268 and #940. The GPU runtime also needs #1275, as documented by #1276. These branches must be combined for the board DT to compile and operate; they are not copied into this PR.This PR owns the two board include files, their inclusion, and the J716c-only guards that suppress inventory copies of the left-port PCIe DARTs. Those four guard lines previously lived in the test aggregate. Shared right-port nodes retain #1323's board guards so other T6050 boards do not inherit J716c enablement.
Validation: the combined dependency tree builds Image.gz, modules and all 137 Apple DTBs, including all 11 T6050 boards. ARM64 QEMU passes 245 display KUnit tests with one existing skip, with debug mutex/work-object checks and panic_on_warn=1. All 20 affected binding documents and focused source/modeled-handoff DT checks pass; the three-port resource check and 30 reciprocal graph edges pass. Full-registry schema validation retains the documented unrelated tunable-type collision.
Hardware validation: the final combined source tree booted on J716c with clean upstream Aquamarine. The internal panel runs at 3456×2234@120 Hz, and the two external monitors were captured at 3840×2160@240 and @120 Hz. The user tested the TS5 on all three physical ports and confirmed both displays, USB input and Ethernet working. The firmware-27 swap timestamp fix that boot needed is now #1404.
The hardware image also combines the public platform PRs #936, #938, #941, #942 and #943 for storage, networking, SMC and related platform support. These are boot-test inputs, not extra ancestors of this feature branch. The combined test tree remains local and is not a PR base.
Created with GPT-6 Astra in Codex.