Skip to content

drm/asahi: enable the calibrated T6040 GPU on J616s - #459

Closed
RyanTheTide wants to merge 9 commits into
integration/aurorafrom
review/j616s-gpu-integration
Closed

RyanTheTide wants to merge 9 commits into
integration/aurorafrom
review/j616s-gpu-integration

Conversation

@RyanTheTide

@RyanTheTide RyanTheTide commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

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

Carry the existing #438 prerequisite so the Fedora base preserves the
shared fragment. This common config repair is independent of GPU bring-up
and should be dropped here once #438 lands.

Link: #438

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
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>
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