Repository navigation
Conversation
d8686de to
66896ea
Compare
|
Per |
e539e32 to
6b4f1ee
Compare
|
Rebased onto the latest integration/aurora and removed the observed voltage endpoints from the commit message. Repeated J713 voltage values in the tests now use synthetic bins; existing base fixtures are unchanged. The rewritten commits remain unsigned. CI is running on the new head. |
bcd5763 to
bb1286d
Compare
RyanTheTide
left a comment
There was a problem hiding this comment.
-
Rebase onto the current integration/aurora. It conflicts in:
- drivers/gpu/drm/asahi/hw/t6041.rs, with 579bcc3 ("drm/asahi: run the 25G83 build on the 40-core M4 Max"). That commit splits the file into a shared
BASEand two firmware builds, and each of theirFirmwareBuilds needsboot_fields: &[]. - drivers/soc/apple/pmp-display.c and include/linux/soc/apple/pmp-display.h, with 6fde3b9 ("soc: apple: pmp-display: let the J713 DCP release its DISP vote").
- drivers/gpu/drm/asahi/hw/t6041.rs, with 579bcc3 ("drm/asahi: run the 25G83 build on the 40-core M4 Max"). That commit splits the file into a shared
-
The kunit failure on this head is not caused by this diff. It is
error[E0615]at drivers/gpu/drm/asahi/g17/buffer.rs:482 (ids.usedwhereQosIds::usedis a method), which comes from the old base. Re-run CI after the rebase. -
The description says the rewritten series has not been booted. Please add the J773g result for the rebased head that your test plan lists: PMP readiness, the AGX vote, firmware READY and a compute job.
bb1286d to
370ad38
Compare
|
Rebased onto integration/aurora 63be486; the head is now 370ad38.
|
|
J773g result for the rebased head What was booted. Boot
The DVFS rows and voltages match what our older J773g tree reports on the same unit. Why the handoff was limited to the Airs. The cause is our DTB. It is not this PR, and #1171 (31c3ec3, already in the base) behaves as designed. The DTB we boot was built before #1171. It wires Not covered yet: that rerun; exact |
The existing telemetry predicate already selects firmware-qualified T8132, including J773g, for endpoint 7. Name that condition for reuse by the PMP and GPU paths; this is a refactoring, not a change in admission. The misleading J713-only comments are corrected. A prior J773g bring-up stack required endpoint 7 to complete PMP probe; the current base already enables it on qualified T8132 machines. Assisted-by: LLM checkpatch Signed-off-by: Sean Dolbec <sdolbec1@gmail.com>
Use the shared retained T8132 predicate for the report readiness path. The prior test already selected the T8132 report for a compatible T8132 supplier on the qualified firmware path. The new predicate additionally requires the machine compatible apple,t8132; it does not newly enable J773g. Update the host fixtures to provide the same helper. A prior J773g bring-up stack sent and received an AGX request with its PMP report present. This refactoring has not been isolated on hardware. Assisted-by: LLM checkpatch Signed-off-by: Sean Dolbec <sdolbec1@gmail.com>
The existing bridge treats every firmware-qualified T8132 machine as J713 and requires a DISP record. Select J773g by its machine compatible and require its AGX record instead, so the GPU can use the retained PMP vote bridge without a DISP record. Reject display consumers on J773g; other T8132 boards retain their existing behavior. The fixed table shape and exact supplier checks remain in place, and an accepted AGX vote is retained until reboot. The exported functions keep their apple_pmp_j713_gpu_*() names to avoid Rust driver churn. A prior J773g bring-up stack logged bridge registration and acknowledged AGX requests on ten boots. That was a different implementation; this change has not been booted on hardware. Assisted-by: LLM checkpatch Signed-off-by: Sean Dolbec <sdolbec1@gmail.com>
Use the shared retained T8132 predicate at the G16 board check. The old apple_pmp_j713_board() already selected firmware-qualified T8132 machines, including J773g, so this is a rename with no admission change. The later handoff, firmware identity, DMA and hardware identity checks remain. A prior J773g bring-up stack admitted the handoff and reached firmware READY with subsequent changes; this rename was not isolated on hardware. Assisted-by: LLM checkpatch Signed-off-by: Sean Dolbec <sdolbec1@gmail.com>
The G16 driver builds its firmware DVFS table from the sixteen performance states of the original ADT, using a list of qualified ten-row index layouts: J713's (four single states, then six equal-voltage pairs) and J604's. The M4 Mac mini (J773g) has the J604 shape: five single states, five equal-voltage pairs and a single top state at 1578 MHz. That is eleven distinct rows, and the J604 layout drops the fifth low state to fit in ten. Keep every state on J773g. Add an eleven-row J773g layout and give each layout its row count. The board pins the row count it is qualified for, ten on J713 and J604 and eleven on J773g, and only layouts with that count are tried, so the J604 and J773g layouts of the same shape cannot be confused. The table holds up to eleven rows with a count, Main 0xfc0 carries that count instead of a constant 10, and the encoder's ceiling is the last row. Nothing changes on J713 or J604: their layouts and order are kept, the host tests' measured J713 ADT gives the same ten rows, the J604-shaped case still selects the J604 layout on a ten-row board, and the qualified initdata goldens still match at ceilings 1, 4 and 9. The host tests use synthetic voltage bins rather than a measured chip's, and substitute them into those goldens before comparing; every other byte is compared unchanged. The runtime ceiling policy is unchanged: it publishes at most S9, and the hardware performance state is still refused above 9. On J773g the top row (S10, 1578 MHz) is in the tables but never requested; using it needs evidence of its own. The reported maximum frequency is the top row's. Tested on a J773g, on an earlier integration/aurora (19f71a1), with a voltage-grouping selection that gives the same rows as the J773g layout: the live ADT gave eleven rows, main/auxiliary 0/0, 338/338, 618/618, 796/796, 928/928, 1056/952, 1170/1053, 1278/1152, 1338/1204, 1470/1326 and 1578/1578 MHz. Voltage bins differ per chip; the table is selected from its ADT. The firmware accepted these tables, reached READY and completed a compute job. This layout-based version has not been booted on hardware. Assisted-by: LLM checkpatch Signed-off-by: Sean Dolbec <sdolbec1@gmail.com>
The M4 Mac mini (J773g) loads the 25G83 G16 firmware with the TEXT and DATA sizes and entropy record offsets of the qualified image, but its normalized TEXT changes from boot to boot. Comparing loaded images from several boots, besides the GKTS and ECAP entropy bytes, iBoot rewrites the 8 bytes of a record tagged DILS at 0x5c90f and the 32-bit header word at 0x224 on every boot. Nothing else differs. Add the J773g image with those two boot-filled ranges, the header word (0x224, 4 bytes) and the DILS record's bytes (0x5c917, 8 bytes), which fwid zeroes with the entropy bytes before hashing. The DILS tag and length stay in the digest, so a record elsewhere does not match. The existing T8132 builds name no boot-filled ranges, so their digests and identification are unchanged. An unknown T8132 image is now reported normalized with these two ranges, as fwid does for the first build of its TEXT size that names any. Measured on one J773g: the normalized SHA-256 9154c7f8...e85a matched on fifteen boots under Aurora and on three offline TEXT dumps. That measurement zeroed the same bytes, via an earlier per-build field list that fwid's boot-filled ranges have since generalized. Not yet compared with build 2 of the signed 25G83 armfw_g16g.im4p. The normalized digest differs from both J713 images, and only that comparison shows whether the difference is confined to what iBoot fills in, that is, whether the firmware code is the qualified one. Assisted-by: LLM checkpatch Signed-off-by: Sean Dolbec <sdolbec1@gmail.com>
370ad38 to
1c60450
Compare
|
Rebased onto current integration/aurora (3a7a3f9); no functional change. The only conflict was in |
Summary
This six-patch series carries J773g through the retained PMP and G16 firmware interface: PMP endpoint/report readiness, the retained AGX vote, board admission, the J773g DVFS table shape, and validation of the loaded 25G83 image after normalizing boot-filled fields.
The first, second and fourth patches name the existing firmware-qualified T8132 admission rather than newly enabling J773g. The bridge patch selects J773g explicitly for the AGX table and rejects its display consumer; other T8132 behavior is retained.
Provenance
The facts used here were observed in our own witness runs, public code, original live-ADT interface behavior, and the behavior of the loaded firmware interface. No Apple source code was copied. No raw ADT/device-tree dump, per-unit firmware image, or calibration bytes are included in the series. Added and repeated voltage test values are synthetic; model-wide frequencies remain unchanged.
The notes-repo audit
aurora/upstream/mesa/PROVENANCE-NOV1-20261107.mdconcludes that no constants, encodings, or behavior in these changes came from the November 1 G16G firmware disassembly; that work concerned the GPU control coprocessor, not the shader ISA or the public interfaces implemented here.Results
Hardware test plan
Before this leaves draft: boot the exact head on J773g; verify PMP readiness and AGX vote; run a known compute job; check the kernel log for firmware/GPU faults; repeat cold and warm; and run the available J713/J715 regression coverage. This PR stays draft until those affected-hardware checks are recorded.
The commits intentionally have no
Signed-off-byyet. The human submitter will add his own DCO sign-off after review, as required byDocumentation/process/coding-assistants.rst.