Repository navigation
J516M (16" M3 Max): native display and GPU, on by default - #429
Merged
Merged
Conversation
Reuse the ADT-confirmed T6031 display layout on the J516M/T6034, with its exact board/SoC and pinned 14.7 DCP image. Retain the working T6031 handoff namespace separately from J514M and require an explicit display owner choice. Enable the existing swap timestamp behavior for the 120 Hz internal panel and carry the J516M panel admission cases into the existing host fixture. Other boards and their default policy are unchanged. Assisted-by: Codex:GPT-6 Signed-off-by: Daniel Lemky <daniel@quantumfirelabs.com> (cherry picked from commit 727efc7) [Carried without the dcpext/HDMI admission (apple_t6034_display.dcpext, the dcpext and HDMI device-tree includes, and the fabric, crossbar and ATC tunnel matches), which depend on the unmerged #292.] Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Scott Jones <scottajones@gmail.com>
Share the existing six-channel T6034 G15C hardware layout while keeping J516M machine and full firmware admission independent of J514M. Require the measured 30-core fused identity 0x7b5ed7f5fd and retain strict refusal of the generic firmware-prefix override. Link J516M GPU startup to its T6031 display supplier; keep J514M on its separate T6034 supplier. Extend the existing profile and display order fixtures with the prior J516M admission cases. Inherited J516C power/reference values remain thermally unqualified. Assisted-by: Codex:GPT-6 Signed-off-by: Daniel Lemky <daniel@quantumfirelabs.com> (cherry picked from commit 272cd80) Signed-off-by: Scott Jones <scottajones@gmail.com>
J516M uses the T6031 PMP report layout, whose fallback tells users to boot with apple_t6031_display.enable=0 after startup fails. Its display gate only honors apple_t6034_display.enable, so that advice can leave a retained T6034 enable active and retry the failed startup. Select apple_t6034_display.enable=0 for the exact J516M/T6034 machine pair. Keep other report profiles' recovery switches and the nomodeset alternative unchanged. No PMP startup or report protocol changes. Fixes: 727efc7 ("drm/apple: add opt-in J516M native panel and HDMI admission") Assisted-by: Codex:GPT-6 Signed-off-by: Daniel Lemky <daniel@quantumfirelabs.com> (cherry picked from commit 721a41c) Signed-off-by: Scott Jones <scottajones@gmail.com>
The J516M record already pins the J516C 14.7 image and J516 panel geometry. Admit this board to the existing nits backlight path, retaining the 500-nit bound, lifecycle and external-display exclusion. No protocol, raw register or boot-brightness changes are required. The original working kernel was physically qualified: apple-panel-bl registers and the brightness keys visibly dim and brighten the panel. The rebased branch has not been booted; suspend, DPMS cycles, the full range and photometric accuracy remain unqualified. Link: #259 Assisted-by: Codex:GPT-6 Signed-off-by: Daniel Lemky <daniel@quantumfirelabs.com> (cherry picked from commit e9e02dc) Signed-off-by: Scott Jones <scottajones@gmail.com>
The J516M profile pinned the exact fused core mask of the first Mac it was measured on (0x7b5ed7f5fd). That is fine while the GPU is opt-in, but other 30-core J516Ms fuse off different cores and would be refused once it is on by default. Require the G15C version and counts and exactly 30 enabled cores instead, as Mesa does; start()'s per-cluster plausibility check still applies. Log the identity on a refusal. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Scott Jones <scottajones@gmail.com>
…ormal boots Give the J516M the J514M policy: the native display is on unless apple_t6034_display.enable=0 is on the command line, and only on the exact apple,j516m + apple,t6034 pair. Its external displays stay off: the J516M profile hands over no dcpext. The "not requested" message read the T6031 switch for every opt-in SoC; read the T6034 one for the T6034 profiles. Extend t6034-display-tests.py to the J516M: the default, the owner's 0 and 1, the exact root pair, its T6031-layout DCP record and pinned image, with mutants for an unpinned SoC and an opt-in default. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Scott Jones <scottajones@gmail.com>
The J516M GPU profile adds a j516m module to hw.rs and a profile swap to the G15 probe. g15-zero-words-tests.py pins hw.rs for its golden T6030 profile and now skips that module line, as it does for t6034. g15-probe-init-tests.py compiles probe() with stubs, which now need Config.chip_id, hw::j516m::CONFIG, boot::glue::machine() and c_str!. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Scott Jones <scottajones@gmail.com>
The J516M panel record admits the T6031-layout DCP on apple,j516m with apple,t6034, so v14_board_t6031_other_boards no longer holds: it expected that pair to be refused. Add a v14_board_j516m case, like the J516C and J514M ones: the record, its J516C image, panel, nits and stamps, and that it is neither the J516C nor the J514M record. Its name on a T6031 root is still refused. The refusal case now uses another T6034 board and the J514M. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Scott Jones <scottajones@gmail.com>
maralcbr
approved these changes
Nov 10, 2026
maralcbr
left a comment
Member
There was a problem hiding this comment.
Reviewed at 44ef4d9. Admission, GPU probe override, admit/start checks and PMP fallback are all J516M-only; J514M and other T6034/G15 paths unchanged; kernel stays on the boot framebuffer until m1n1 sets apple,t6031-handoff. Accepting J516M on by default with J516C power/thermal data (not yet measured on J516M), as with J514M in #408; edge qualifies it.
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
Native display and GPU on the 16" M3 Max MacBook Pro (J516M, T6034, 30-core G15C), on by default. This carries Daniel Lemky's J516M commits from #415 and #416, without the external-display parts that depend on #292.
The following are left out:
Paired m1n1 change: omacom/m1n1#42. No Mesa change is needed beyond #33.
The power data is borrowed. The board reference is J516C's, and none of it is measured on a J516M.
Evidence
Hardware: Daniel's J516M in the lab (daniel-m3max-16), kernel built at
4f58c0cdacc(same code; the last commit only changes host-test fixtures). The opt-ins on his command line were stripped for every run.apple_t6034_display.enable=1and his loader's opt-in lines.t6034-dcp=1andt6034-gpu=1itself.apple_t6034_display.enable=0keeps the boot framebuffer, and the GPU waits for the display, as on J514M.Merge Danger
Door: two-way
Blast Radius: J516M only
Only
apple,j516monapple,t6034is admitted. J514M's path is unchanged, and owners can turn the display off withapple_t6034_display.enable=0.🤖 Generated with Claude Code