Repository navigation
Conversation
Keeps the curated per-board matrix in boards.json, records the device-tree evidence in scan.json, and builds the page and the Basecamp document from them so the matrix can be refreshed each release candidate.
[Low impact] The changes affect matrix readers and the maintainers who refresh it, not MacBook runtime behavior. The PR has no blocking runtime defect, but the scan check, shared page text, and evidence links need cleanup. Findings
SummaryAdds a repeatable MacBook support matrix workflow:
The review found a missed combined-feature check, duplicated release text that can go stale, and two evidence-link issues. Browser capture was blocked because the browser executable was unavailable.
|
| v = b["r"][col] | ||
| if col in b["boot_enables"] and "dt-off" in states: | ||
| continue | ||
| if v["s"] == "on" and "driver" not in states: |
There was a problem hiding this comment.
Bluetooth failures pass the check
disagreements() accepts an On network cell when either Wi-Fi or Bluetooth has a driver. If Bluetooth changes to no-driver while Wi-Fi stays at driver, build --scan reports no disagreement. Maintainers can therefore miss a broken half of the combined feature. Require every listed feature to pass, with explicit exceptions for boards that need them.
| [`${counts.full} boards: M1 to M2 Max`, "Every device described with a driver, display and GPU on by default. The gap is external display on M2."], | ||
| [`${counts.m3on} of ${counts.m3all} M3 boards`, "Native display and GPU on by default: J504, J613, J615, J514S, J516S, J516C, and J514C since m1n1#31 (unqualified power values). On M3 Pro only the 12-core CPU / 18-core GPU bin gets the GPU; the 14-core GPU bin is in linux-aurora#366 and #390."], | ||
| ["Sleep is s2idle only", "No board has deep sleep. Measured sleep drain: M1 Pro J314S 2.25 W, M3 Pro J514S 1.35 W, about 2 W on an M2 Pro, against 0.25 W for macOS on the same M1 Pro. Neo does not resume from s2idle yet."], | ||
| ["Binned M3 Max (T6034)", "J514M display and GPU are merged in the kernel and Mesa; on by default once m1n1#32 merges. J516M has nothing yet and boots on the framebuffer."], |
There was a problem hiding this comment.
Refreshed pages keep old claims
The standalone page repeats release-specific summaries and evidence instead of reading them from boards.json. Following the refresh guide updates the table and Basecamp text but leaves these statements unchanged. For example, changing J514M to On still leaves the page saying it is waiting for m1n1#32. Generate the shared text from one source, or include the template in the required refresh steps.
| ], | ||
| "gpu": [ | ||
| "pr", | ||
| "m1n1 hand-off m1n1#37; no kernel driver in #404" |
There was a problem hiding this comment.
Kernel evidence links elsewhere
This note turns #404 into a link to m1n1/pull/404, because link() carries forward the repository from m1n1#37. The kernel change is linux-aurora#404. Spell out that repository here so both published outputs point to the right evidence.
| "m1n1 hand-off m1n1#37; no kernel driver in #404" | |
| "m1n1 hand-off m1n1#37; no kernel driver in linux-aurora#404" |
|
|
||
| document.getElementById("summary").innerHTML = [ | ||
| [`${counts.full} boards: M1 to M2 Max`, "Every device described with a driver, display and GPU on by default. The gap is external display on M2."], | ||
| [`${counts.m3on} of ${counts.m3all} M3 boards`, "Native display and GPU on by default: J504, J613, J615, J514S, J516S, J516C, and J514C since m1n1#31 (unqualified power values). On M3 Pro only the 12-core CPU / 18-core GPU bin gets the GPU; the 14-core GPU bin is in linux-aurora#366 and #390."], |
There was a problem hiding this comment.
Summary evidence is not clickable
The standalone summary inserts PR references as plain text, so m1n1#31, linux-aurora#366, #390, and m1n1#32 are not clickable. Readers must find those PRs themselves. This misses the guide's requirement to link every PR and commit. Pass these strings through the same link expansion used for cell notes and Basecamp text.
Summary
Commits the generator behind the MacBook support matrix so it can be refreshed each release candidate instead of rebuilt by hand.
Placement: the repo has no
reports/, so code and data sit beside the other collectors inscripts/, and the procedure goes inagents/skills/per the documentation layout in AGENTS.md. Bare#Nandrepo#Nin notes become omacom PR links.boot_enablesrecords nodes m1n1 turns on at boot (kboot.c:407-419, M3 Pro dispext, Neo), andtree_in_prmarks J714C, whose tree exists only in linux-aurora#404.Evidence
After:
buildreproduces the published data: 42 boards, every cell's status and note text identical to the currentmatrix-data.json. The one change is the M5 Pro / Max family note, nowm1n1#30instead ofm1n1 #30so the link points at m1n1. The page renders 42 boards in 13 families with no console errors.scanat linux-aurora 8eddf5ae (27 trees) matches the earlier scan on 566 of 567 cells. The other one is the new disabled J514M DCP node from linux-aurora#408, which the matrix already shows as In PR until m1n1#32.build --scan: 0 disagreements.tests/test-macbook-support-matrix.sh: 9 tests pass (link expansion, kind expansion for all 42 boards, effective DT status, build outputs, committed scan agrees with boards.json). They run intests/alland need no dtc.Merge Danger
Door: two-way
New files plus one AGENTS.md line; nothing at runtime or install time reads them.
Blast Radius: none
tests/allgains one suite, and it is stdlib only.