Skip to content

scripts/dtc: ratchet Apple device inventory coverage in DT checks - #1111

Merged
RyanTheTide merged 27 commits into
integration/aurorafrom
ctl/t-5549-adt-vs-dts-coverage-tool-ci-check-every-adt-devi
Nov 7, 2026
Merged

RyanTheTide merged 27 commits into
integration/aurorafrom
ctl/t-5549-adt-vs-dts-coverage-tool-ci-check-every-adt-devi

Conversation

@RyanTheTide

@RyanTheTide RyanTheTide commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Add a GPL-2.0-only checker for public device inventories and compiled Apple DTBs, and run its base-versus-head ratchet in dt-checks. It rejects a per-board MISSING increase, newly broken DT paths, and removed inventory devices. Disabled nodes count as represented, not operational.

The four fleet manifests now use each board's saved live source: complete live ADTs for J616s and Neo, and live IODeviceTree captures for M1 Pro and M2. Runtime IOKit services and mirrored PCI enumeration entries are excluded. This removes template-only pruned instances while retaining every static device observed in those sources. The generator, inputs and mapping/source audits remain private; the public export contains only reviewed device names, addresses, DT paths and waiver reasons.

All remaining records map to a DT node or an exact reasoned waiver. The 84 added waiver rules are board/path-specific, with zero new wildcard rules: live-table virtual PMGR votes without power-state registers, internal DP855 firmware access/write-protection views, and logical accessory-port relationships. Driver absence is not a waiver. RSM/dart-rsm are absent from the selected saved live J616s source and are not inferred from a different template.

Merge #1172 first. This branch merges the same describe-only DTS prerequisite so the inventories can be checked independently while that PR is reviewed. All published history is preserved through merges; no force push was used.

Validation on the buildbox, with dtschema on PATH and the required apple-dt-check.sh, against integration bd8602eeb268 and the merge of posted head ac3dff954872 (811dc602a263):

new warnings: 0, removed: 0
binding ok: Documentation/devicetree/bindings/misc/apple,avellino.yaml
binding ok: Documentation/devicetree/bindings/misc/apple,radio-pmu.yaml
binding ok: Documentation/devicetree/bindings/net/nfc/apple,stockholm-spmi.yaml
binding ok: Documentation/devicetree/bindings/pci/apple,pcie.yaml
binding ok: Documentation/devicetree/bindings/phy/apple,atcrt.yaml
binding ok: Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml
binding ok: Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml
new status = "okay" lines: 0
new cpu-idle-states lines: 0

The coverage CI command and strict mode both pass:

t6000-j316s: MISSING=0 mapped=481 waived=231 broken=0 total=712
t6040-j616s: MISSING=0 mapped=595 waived=307 broken=0 total=902
t8112-j413: MISSING=0 mapped=398 waived=216 broken=0 total=614
t8140-j700: MISSING=0 mapped=356 waived=232 broken=0 total=588

All 18 public checker tests and 14 private generator regressions pass. The committed manifests match regeneration from all four saved live sources; the public export check and 40/40 independently decoded source/DTB MMIO samples pass. Compiled enabled-CPU idle-state references are unchanged on all four boards. No target hardware was changed.

DT3 confirmed the published #1172 head merges cleanly into integration f8273fb7a148; the handoff order is #1172, then #1111.

Check reviewed hardware inventory paths against board DTBs, report unresolved entries, and reject missing devices in strict CI beside dtbs_check. Add initial inventories for four Apple boards and synthetic regression tests. Inventory generation remains separate from the public tree.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Normalize bridge and flash child addresses within their bus namespace. Leave the address unset when a register encoding has no known physical or local bus translation; retain the device as MISSING. Coverage counts are unchanged.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Discover all soc-board manifests and validate their board identity, including identifiers outside the J family. Add a synthetic K-board regression so a future inventory cannot silently escape CI.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Apply the same DT validation to direct integration updates and pull requests targeting integration/aurora.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Keep name-based child matching inside a known controller subtree. An unresolved bus must not acquire a similarly named node elsewhere in the DTB; retain those entries for explicit mapping review.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Prevent a removed inventory from silently disappearing from automatic manifest discovery while continuing to check every additional manifest.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
…549-adt-vs-dts-coverage-tool-ci-check-every-adt-devi
Compare committed inventories and DTBs at base and head, retaining existing gaps while rejecting coverage regressions. Reconcile logical streams, firmware endpoints and PMGR power-state records in fleet inventories, with explicit policy waivers for virtual records.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>

Assisted-by: LLM
@RyanTheTide RyanTheTide changed the title arm64: dts: apple: track device inventory coverage in CI scripts/dtc: ratchet Apple device inventory coverage in DT checks Nov 7, 2026
RyanTheTide and others added 4 commits November 8, 2026 01:54
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>

Assisted-by: LLM
Bootstrap the MISSING backlog only. A newly added inventory must not establish a baseline for invalid node paths absent from both trees.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>

Assisted-by: LLM
Use the source region that matches the compiled DT node for split apertures. Independent source/DT spot checking exposed entries whose printed primary ADT base belonged to a different region of the same controller.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>

Assisted-by: LLM
…check-every-adt-devi

Brings in #1142, #1141, #1144, #1094, #1151, #1140, #1161, #1097 and
#1163. No conflicts. The four inventories still resolve against the
merged DTBs: J316s, J616s, J413 and J700 keep their MISSING counts with
no broken paths.

Signed-off-by: Diljit Singh <hey@djdev.me>
@DjDeveloperr

Copy link
Copy Markdown
Contributor

Merged integration/aurora (95e30d5) into this branch as 603ad6c, with no conflicts. Against the merged DTBs the checker tests pass 18/18 and all four inventories still resolve (J316s 71, J616s 80, J413 63, J700 0 MISSING; 0 broken paths). The DTBs are identical to integration.

Describe the CPU and cluster power states, Type-C retimer interfaces and J413 panel control clients while keeping them disabled. Reuse the T6040 USB4 resource tree and bindings from the Thunderbolt lane; move its existing DART descriptions into that controller scope.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Reuse the generic radio PMU and Stockholm SPMI bindings for the populated followers. Both endpoints and their parent controllers remain disabled.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Keep coverage manifests and their describe-only DTS prerequisite in sync; the standalone DTS change is reviewed separately before the coverage checker lands.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
T6040 USB4 resource description from linux#1052. Only DT and binding description content is reused; no PCI or Thunderbolt driver changes are included. Keep the tunnel containers explicitly disabled along with their physical child devices.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Normalize the aliases in the description from linux#1052 to the lowercase, digits and hyphens required by the core schema. Node labels and all resource references stay the same; every router and PCIe tunnel remains disabled.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Use live J616s and Neo ADTs and live M1 Pro and M2 IODeviceTrees. Remove pruned template instances and runtime IOKit enumeration mirrors. Resolve every retained record to a DT node or an exact reasoned waiver for a virtual vote, firmware service view, or logical relationship. Keep the generator and source audits private.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Retain the integration scaler enable and the disabled retimer descriptions. No new idle-state links or device enables are introduced relative to integration.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Preserve the integration scaler status and the separate disabled fleet resource descriptions.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Preserve the published integration merge and all local live inventory work. The source tree is identical to the preceding validated candidate; this is a history-only merge for a fast-forward push.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Retain the describe-only fleet additions on the #1149 integration tip. No driver changes, new enables or CPU idle-state links are added relative to integration.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
@RyanTheTide
RyanTheTide marked this pull request as ready for review November 7, 2026 19:19
@RyanTheTide
RyanTheTide merged commit 0fbe09e into integration/aurora Nov 7, 2026
2 checks passed
@RyanTheTide
RyanTheTide deleted the ctl/t-5549-adt-vs-dts-coverage-tool-ci-check-every-adt-devi branch November 7, 2026 19:33
RyanTheTide added a commit that referenced this pull request Nov 7, 2026
Brings aurora-wip up to the 11-08 morning integration tip: DT
descriptions for every Mac family (#1094, #1097, #1111, #1131, #1132,
#1148, #1149, #1155, #1156, #1157, #1172), the J616s scaler (#1168), the
panel primaries from boot data (#1105), AVD macOS command parity
(#1116), AVD dma-coherent (#1169), the M2 PMU RTC alarm (#1151), G17
admission without spinning (#1146) and the AOP map wait (#1147).

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
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.

2 participants