Repository navigation
drm/asahi: enable the calibrated T6040 GPU on J616s - #459
Closed
RyanTheTide wants to merge 9 commits into
Closed
RyanTheTide wants to merge 9 commits into
RyanTheTide wants to merge 9 commits into
Conversation
Carry the separate Wi-Fi schema prerequisite for complete T6040 DT validation. It is independent of GPU enablement. Keep the PCI device identity and family fallback, and omit the redundant root-port compatible. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Treat the OS version as a candidate-order hint and continue to require an exact admitted loaded TEXT image. Preserve #453's images list, including the alternate T6040 image. This extends the shared identity work by Jonathan Goyvaerts. Originally-by: Jonathan Goyvaerts <jonathan.goyvaerts@gmail.com> Link: #428 Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Require version 2 of the per-chip handoff, sixteen raw OPPs and selector slots, eleven populated selectors, zero tails, and base state 1. Validate OPPs and enabled cores before firmware starts. There is no single-unit fallback. Keep the Neo path unchanged. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Use the validated performance maps, leakage and power ceiling in the 25G83 objects. Replace bin-specific runtime output hashes with layout and host encoder checks. Keep the GPL-2.0-only licence for Gravity-derived encoder constants and their existing attribution. The original T6040 implementation and identity work are by Jonathan Goyvaerts. The encoder constants derive from Gravity Linux work by Cody Ho and Niklas Sheth. Originally-by: Jonathan Goyvaerts <jonathan.goyvaerts@gmail.com> Link: #428 Link: https://github.com/GravityLinux/Linux Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Keep the structural hardware description while requiring the per-chip loader maps and power ceiling in the 25G83 builder. The inert defaults cannot substitute for a missing calibration handoff. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Describe the versioned calibration binding and use loader-filled regions and OPPs. Enable the GPU mailbox and keep the firmware domains powered while the loaded image lives. The GPU consumer owns the PMP report vote. Booting requires the matching T6040 m1n1 handoff. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Use the current shared firmware type and extracted MMU helpers. Compare the immutable ABI prefix while independently checking the additive tail size and offsets. Keep golden fixture bytes unchanged. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Exercise the production calibration reader with synthetic properties, including invalid selector tails and OPPs. Cover candidate ordering and exact image refusal, and update G17 fixtures for current queue ownership. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
This was referenced Oct 25, 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.
Superseded by #461. The replacement has the same final source tree, with the calibration wiring and hardware-default removal arranged to keep the review prefixes buildable. The branch and validation evidence remain preserved.
This enables the calibrated T6040 GPU on the J616s. m1n1 supplies the running chip's OPPs, selector maps, leakage, core mask and power ceiling. The kernel validates the complete handoff before starting the GPU and uses those values in its 25G83 initdata. Missing or invalid calibration refuses the GPU. Firmware admission still requires an exact loaded image, including both images from #453.
The series is rebased onto integration/aurora at 421e314. It is split into firmware selection, calibration, initdata, hardware defaults, DT and bindings, host selftests and tools. #453's image admission work is kept from the base rather than replayed.
The m4pro agent proved the preceding m4p11/m4p12 stack on a J616s with m1n1 c2515d6571fe2165fbc15f6c19cc606b7d296956. Firmware was admitted, Vulkan reported Apple M4 Pro (G16S B1), vkcube ran, glmark2-es2 scored 6271, and a ten-minute soak had no Asahi or DART faults. The sampled peak was 77.5 C. The tested stack used integration ff1510c, #394, the GPU branch at eda1292 and #453. Those results belong to that earlier stack. The m4p13 build of this PR head is for the final hardware gate before merge.
Two independent prerequisites are included as separate commits so the full gate can run. The thermal config repair is already #438; the extra default-governor overrides from the development branch were dropped. The Wi-Fi binding and PCI description are #458. Neither enables the GPU. Merge those PRs first and these prerequisite diffs disappear from this PR without changing the tested head.
The companion m1n1 PR is required. It publishes the version-2 T6040 handoff; older loaders leave the GPU unable to probe. The firmware domains stay powered while the loaded GPU image lives.
J616s CTS is still open. #455 changes the G16 governor and PMP idle floor; its interaction with this T6040 G17 path still needs a combined test. This PR does not claim that qualification.
Jonathan Goyvaerts' original T6040 bring-up and shared loaded-image identity work, including #428, are retained. The 25G83 encoder constants derive from Gravity Linux work by Cody Ho and Niklas Sheth. That file retains its attribution and uses GPL-2.0-only.
Validation on this head is running. Required gates are universal and Fedora-base Image/modules/DTBs with fatal C, Rust and DRM warnings, Asahi KUnit in ARM64 QEMU, full T6040 DT validation, all 23 asahi-m4 host groups and all 63 apple-dcp host groups with GNU make 4. No hardware is used by these gates. The build and test results will be added here before marking this ready.
Companion PR aurora-silicon/m1n1#52