Skip to content

drm/asahi: describe the T8122 extended firmware profile and owned IO records - #303

Closed
satchlj wants to merge 5 commits into
omacom:integration/aurorafrom
satchlj:gpu26-profile-20261030
Closed

satchlj wants to merge 5 commits into
omacom:integration/aurorafrom
satchlj:gpu26-profile-20261030

Conversation

@satchlj

@satchlj satchlj commented Oct 31, 2026 •

Copy link
Copy Markdown

Part 1 of 5 of the T8122 (M3) GPU support series for macOS 26.6.2 firmware ("GPU26"). The parts are stacked: this PR contains parts 1 to 1, so review only its last commit; earlier commits are reviewed in the earlier PRs. The series is now based on #301 and #302 (merged in by the first commit below them, with both host-test registrations kept), so it includes their commits until they land; a working boot also needs omacom/m1n1#20. Extended firmware support stays switched off until part 5.

Hardware: on 2026-11-03 these exact layers (#303–#307 heads, including the MMU alias fix now in #307) ran on a J613 MacBook Air with 26.6.2 firmware as part of our C13k kernel, which is now that machine's daily kernel. Results: native Apple M3 (G15G C0) rendering with OpenGL ES 3.2, OpenGL 4.6 and Vulkan; glmark2 and vkcube completed; 5,162 render-cache evictions with no MMU failure; no GPU faults or timeouts; suspend/resume, DPMS and external display all clean. The full kernel package build passes and KUnit passes on the stack. The same code, tested as one combined kernel on a J613 MacBook Air with 26.6.2 firmware, gave native Apple M3 (G15G C0) rendering through Mesa and the internal display.

Separate firmware identity, HAL metadata and VM bounds from physical G15G stream selection. Add checked root and owned IO descriptor encoders. Introduce slot 28 at SGX+0xd50000 with a production-writer regression; the shifted T8132 bank is never introduced. Keep VM padding zero.

Validation:production runtime/firmware host tests pass in debug and optimized builds at this layer. The full Linux build and KUnit, paired-header suite and hardware retest on this upstream tree remain pending. IO slot 28 is introduced at SGX+0xd50000; reverting the selector is caught by the production-writer test. Depends on the preceding GPU26 review layer and the #301/#302 manifest integration; successful GPU26 boot also needs m1n1#20.

Use the PMGR provider active-state predicate when checking inherited
display power. DISP_CPU can report ACTUAL=4 with AUTO_ENABLE and
TARGET=15 after automatic clock gating. Keep the checks read-only and
preserve all other handoff requirements.

Test all actual, target and automatic-state combinations and the
captured J613 state through the production helper.

Signed-off-by: Satya Benson <satya@benson.earth>
The 25G83 device tree advertises the AGX-specific compatible followed by
asc-mailbox-v4. Both bind the same mailbox operations. Admit this exact
pair while retaining all resource and identity checks.

Exercise the production rejection predicate with public-DTS fixtures and
resource mutations; allow optional local DT captures for reproduction.

Signed-off-by: Satya Benson <satya@benson.earth>
Cross all 512 ACTUAL/TARGET/AUTO combinations with zero, all-set,
alternating and individual unrelated-bit patterns. This verifies that
readiness ignores every bit outside the three PMGR fields.

A temporary ACTUAL mask widened from GENMASK(7, 4) to GENMASK(8, 4)
passes the old cases but fails the new ones at both -O0 and -O2.
Make the unoptimized compiler flag explicit and report failing words.

Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
…records

Separate firmware identity, HAL metadata and VM bounds from physical
G15G stream selection. Add checked root and owned IO descriptor encoders.
Introduce slot 28 at SGX+0xd50000 with a production-writer regression;
the shifted T8132 bank is never introduced. Keep VM padding zero.

Signed-off-by: Satya Benson <satya@benson.earth>
@satchlj

satchlj commented Oct 31, 2026

Copy link
Copy Markdown
Author

Hardware result for the series (#303–#307 on top of #301 + #302), MacBook Air M3 (J613), macOS firmware 26.6.2, 2026-10-31:

Booted the series head 99b74c9a (linux-aurora 7.2.11.aurora11 + this stack) with m1n1 ad5aa25c (aurora-silicon/m1n1#20) generating the J613 defaults, and the uboot-aurora recipe plus aurora-silicon/u-boot#26. No manual chosen switches or config opt-ins.

  • /chosen has asahi,t8122-dcp, t8122-gpu, t8122-gpu-power-standin and t8122-gpu-fuse-leakage = 1, all generated by m1n1.
  • M3: mailbox resource accepted, then extended firmware ready; native controllers and idle policy admitted. InitData accepted; asahi owns renderD128; the internal display works via apple-drm.
  • glmark2-es2-wayland (headless sway, 1280x800, vblank off, shader cache off): build 1164, texture 1145, phong 1200, jellyfish 1167 FPS, score 1168. job-completed: the first render job finished. vkcube ran 20 s; Vulkan reports Apple M3 (G15G C0) on Borealis.
  • No RTKit crash, fault or timeout in the full log.

Not covered by this run: a compute workload (render only), sustained load, and suspend/resume. The built-in keyboard was not available in Linux on this boot; that's a separate MTP helper issue, not this series.

Written by Claude on @satchlj's behalf.

@satchlj

satchlj commented Nov 11, 2026

Copy link
Copy Markdown
Author

Claude Fable 5.2 on @satchlj's behalf

Closing in favour of aurora-silicon/linux#965, which carried this change to aurora-silicon/linux integration/aurora and is merged.

@satchlj satchlj closed this Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant