Repository navigation
J516M: drive the 16" M3 Max MacBook Pro's display and GPU by default (stacked on #372) - #405
Draft
BTNG-studio wants to merge 3 commits into
Draft
BTNG-studio wants to merge 3 commits into
BTNG-studio wants to merge 3 commits into
Conversation
The 16" binned M3 Max MacBook Pro (J516M) carries the J514M's T6034 die: its ADT names the same DCP image (F493F03E-...), and m1n1 gives it the same T6034 handoff. Its chassis and panel are the J516C's. Give it a v14 board record with the J514M's DCP, image and handoff, and the J516 panel: 3456x2234 with 74 notch rows above the 3456x2160 boot framebuffer, ProMotion allowed and bring-up logging on. As on the J514M, the panel controls stay off. The display gate starts native display by default on the J514M and J516M, and apple_t6034_display.enable=0 still keeps the boot framebuffer. The T6034 GPU link follows the display on both boards. Tests: a KUnit case for the J516M record, the T6034 display host test admits the J516M and catches dropping it from the gate or the record, and the display-order test links the J516M GPU while an unknown T6034 board (apple,j999) stays refused. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Philip Wallage <philip@btng.studio>
Include the T6034 DCP and give the J516M's DCP its panel node. The panel is the J516C's (same 16" chassis): 346 x 223 mm, 216 mm below the notch, 500 nits. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Philip Wallage <philip@btng.studio>
The J516M loads the J514M's 14.7 G15C image: on a J516M the loaded firmware measured TEXT 0x64000, DATA 0x140000, GKTS 0x5cf28 and the J514M's TEXT sha256 (4ca24b65...04b7), and the GPU reports the same B1 identity (version 0x7041100, counts 0x21040a) with 30 enabled cores in four ten-slot clusters ([8, 8, 7, 7]). Admit apple,j516m with apple,t6034 alongside the J514M, and pin the image to the J516M on a row of its own, so neither board's row admits the other. The PMP, display, record and hardware identity checks are unchanged. The profile test checks both rows, that each board pins only its own, and that a changed digest is refused on the J516M too. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Philip Wallage <philip@btng.studio>
This was referenced Nov 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The 16" binned M3 Max MacBook Pro (J516M) has the J514M's T6034 die: its ADT names the same DCP image (
F493F03E-…), it loads the same 14.7 G15C GPU image, and its chassis and panel are the J516C's. #372 explicitly leaves the J516M out. This PR admits it on the same terms, so its internal display and GPU start by default.Stacked on #372 (and through it #363). It targets #372's branch, so the diff shows only these three commits.
drm/apple iomfb_v14_7.c dcp_v14_boards T6030, J613, J615, J516C, J514C, J514M + J516M: J514M DCP/image/handoff, 3456x2234 with 74 notch rows, ProMotion, panel controls off soc/apple t6030-display-gate.c - T6034 native display by default on: J514M + T6034 native display by default on: J514M, J516M (apple_t6034_display.enable=0 still opts out) drm/apple apple_drv.c + T6034 GPU link follows the display on the J516M drm/asahi g15 + T6034 admission: apple,j516m + apple,t6034 + firmware row "J516M RTKit 2419.140.12": the J514M digest, pinned to apple,j516m dts t6034-j516m.dts + t6034-dcp.dtsi, &dcp panel (J516 panel: 346 x 223 mm, 500 nits)The GPU starts at the same profile as the J514M, including the J516C power/reference words #372 marks as unqualified. Brightness and other panel controls stay off, as on the J514M. External displays are a separate draft (#406).
Paired m1n1 change: omacom/m1n1#28 (stacked on omacom/m1n1#24) gives the J516M the T6034 display and GPU defaults. Ship order: as with #388, m1n1 must not ship before this kernel. A J516M with the new m1n1 and an older kernel gets the handoff but no board record, and stays on the boot framebuffer.
Mesa: no J516M change needed. omacom/mesa#32 admits the 30-core T6034 by its parameters, and this J516M reports exactly that contract (comment on mesa#32 with the evidence).
Evidence
Hardware: my J516M (Mac15,11, MacBook Pro 16" M3 Max, 30-core GPU), OS firmware 14.7, system firmware 27.0, Omarchy with Hyprland 0.56.2.
What ran: these changes on the previous #372 head
19b6f899f, in local buildslinux-aurora 7.2.11.aurora14-102through-108with m1n1 builds up tom1n1-aurora 1.6.1.aurora22-103and Mesa with #32's admission patch, on my machine across several boots since 2026-11-06. Rebasing onto #372's current heade585531e0ba6applied cleanly. The rebased commits are compile-tested but not booted. The only source differences from what booted are comment wording, a variable rename (j514m_board→t6034_board) and the firmware row's name string.4ca24b65…04b7):J516M RTKit 2419.140.12for this PR.) Hyprland renders onrenderD128(asahi-g15) with a high-priority context. No GPU faults in the kernel log across those boots.tools/aurora-ci/host-tests.py, full manifest, on this branch's head): 159 of 166 pass, plus the manifest's 6 known failures. The one failure is noted below. Updated for the J516M:t6034-display-tests.pyadmits the J516M, with two new mutants (J516M dropped from the gate default, J516M record lost) that are caught.g15-display-order-tests.pylinks the J516M GPU, and an unknown T6034 board (apple,j999) stays refused.g15-t6034-profile-tests.pychecks both firmware rows, that each board pins only its own row, and that a changed digest is refused on the J516M.tools/testing/selftests/drivers/gpu/apple-dcp/run.shfails the same 6 cases on Add guarded J514M/T6034 native graphics bring-up #372's unmodified head (environment), so it says nothing about this change.v14_board_j516mcase inv14-board-test.c. Not run locally; left to CI.tools/aurora-ci/compile-check.py --per-commitwith the shipped config: every commit builds, no new W=1 warnings. The Rust GPU driver,drivers/gpu/drm/apple,drivers/soc/appleandt6034-j516m.dtbwere built separately with the package's toolchain (Rust 1.85.0, LLVM 18, W=1). They build, the new firmware row is in the builtasahiobject, and the only Rust warning inboot.rsis the existing unusedparamsimport (line 49).apple,panel-j516undocumented, the string the J516C/J516S trees already use.Merge Danger
Door: two-way
Blast Radius: J516M only
Only a root with
apple,j516mandapple,t6034gets the new display record, the display default, the GPU link and the GPU firmware row. The J514M's record and firmware row are unchanged, and neither board's row admits the other. Every other Mac is untouched, and a J516M without the paired m1n1 behaves as today.🤖 Generated with Claude Code