Skip to content

arm64: apple: Wire native APIF guest providers and validate DT handoffs - #244

Closed
DjDeveloperr wants to merge 1 commit into
apif-pmpfrom
apif-guest-wiring
Closed

DjDeveloperr wants to merge 1 commit into
apif-pmpfrom
apif-guest-wiring

Conversation

@DjDeveloperr

Copy link
Copy Markdown
Contributor

Add an explicit native APIF guest config fragment and a checked migration utility for boot-producer DTBs. Enable the transport and non-GPU providers, including the APPLE_SART=y dependency of the alternate SART backend.

Migration preserves DART unit IDs, DMA apertures, force masks, retained SIDs and provider phandles; repairs standard path aliases; declares the PMP final-page guard; and creates the separate version-2 register page at 0x61ff0000. It does not change unrelated opaque device data or activate GPU drivers.

ANS migration requires an already coherent, quiesced producer handoff with four distinct pinned queue reservations. PCIe requires explicit layout/resources/routing metadata. Missing ownership is an error before any output is written. The original DTB is preserved. No machine-name inference, replacement queue allocation, hardware writes, install or reboot are performed.

Stack: apif-mmio #238 → NVMe #241 → PCIe #242 → PMP #243 → this PR.

Validation: native provider fragment merged after the public Asahi fragment and passed olddefconfig; production-DTB migration tests preserve metadata and unrelated data and reject live RTKit, duplicate queue reservations and CPU resource overlap; preceding APIF/PMP fault tests pass. The underlying provider stack has a native linked Image build; see #243 for the external bindgen validation adjustment.

This is boot-description integration, not a static board DT or hardware qualification. The producer still must actually stop firmware and supply its native grants, pinned queue addresses, calibration and PCIe routing. Existing live-session M5 Pro DTBs lacking those contracts cannot be made safe by changing property names alone. The expanded non-GPU M5 Pro audit continues in further PRs.

Enable the native transport and its non-GPU consumers in an explicit
config fragment, including the built-in SART dependency. Preserve board
addresses and ownership in producer-generated descriptions rather than
inventing a new static M5 board tree.

Migrate version-1 DART/SART providers while retaining apertures, firmware
streams and stable phandles. Repair standard provider aliases, declare
the PMP aperture guard explicitly, and use the separate native MMIO page.
Refuse incomplete ANS queue ownership and undescribed PCIe layouts before
writing a new output file. Leave unrelated device data unchanged.

Document boot-producer responsibilities and qualification limits. Host
DT tests cover preserved metadata, duplicate queues, live handoffs and
CPU resource collisions. The provider config merge passes olddefconfig;
this utility does not install or qualify hardware.

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

Copy link
Copy Markdown
Contributor Author

Superseded by #476, refreshed from the current T6050 source onto Linux 7.3 integration. The new shared base is #472; all feature PRs now target t6050/base. Closing this stale chained version and keeping its branch for history.

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