Repository navigation
Rebase onto Asahi 7.2.10: one kernel carrying integration/aurora and aurora-wip - #139
Merged
RyanTheTide merged 10000 commits intoOct 19, 2026
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ready for review. Build, KUnit, dtbs and hygiene gates pass, and the hardware is qualified on the MacBook Neo (J700), the M1 Pro (J316s) and the M2 (J413). One known regression is listed under Known issues. Any further updates will be fast-forward pushes to this branch. This branch moves
integration/aurorato Asahi Linuxasahi-wipv7.2.10 (6d20a3172ffe). On top of that base it carries both:integration/aurora, through its current head168dc647cc51(arm64: handle Apple M4+ wait state without boot flags #147), which is a parent of this branch, so the PR merges cleanly;aurora-wip(through070c8e4d43a4).The result is one kernel for Apple Silicon Macs from M1 to the MacBook Neo (J700).
Layout
The branch is
asahi-wipv7.2.10 plus one merge commit per topic, in dependency order (assemble.sh): at update #10 (b4c606fb1c51), the canonical assemblyb4c606fb1c51^2carried 2,306 non-merge commits over Asahi6d20a3172ffe(2,208 unique subjects). Counted as non-merge commits in the head outside both Asahi andintegration/aurora168dc647cc51, the head adds 3,107; the extra 801 are earlier versions of rewritten commits that the fast-forward publishes keep in history. Each topic is reviewable on its own:000-devicetree·010-soc·020-dart·050-nvme·060-power-thermal·070-audio·080-radio·090-input·100-sep·170-usb·200-dcp·210-gpu·220-userpages·240-isp·245-ane·900-config-toolingTopics with a hard dependency are based on that dependency:
200-dcpon170-usb, and080-radioon020-dart. That way every commit builds.Updates to this PR are fast-forward only: each re-assembly is published as a merge commit on top of the previous head, so the branch is never force-pushed.
Provenance
(cherry picked from commit <sha>).[ryan: adapted to 7.2.10 — …]note above its trailers.Assisted-by: LLMandSigned-off-by: Ryan Murray <ryan@aurorasilicon.org>.AGENTS.md,CLAUDE.md,GEMINI.md) were added.What was carried, and how it was checked
Every commit in both source trees was classified by stable patch-id, subject and author, cherry-pick trailers, and file-level deltas for near-matches. A subject match alone was never treated as equality.
aurora-wip-rebase(0bbaaa063195) vsaurora-wipintegration/auroradelta beyond that (5d570a78a4ab)Rule on conflicts: Asahi is the base. Where two versions of the same change exist, the more correct and more complete one is kept, and nothing either side relied on is lost. J700/Neo code and the SEP keep Aurora's implementation unless the other version is demonstrably better. Every decision is recorded in the topic hand-off notes.
Per topic:
000-devicetree: 35 carried. DT hunks from mixed commits are split here; bindings stay with their drivers.010-soc/020-dart/060-power-thermal: 28 carried. The T8122/T6031 display bring-up rows are ported in update media: apple: avd: update decoder and improve playback reliability #10: the PMP startup provider on010-socand the display gate on170-usb(see "M3 native display"). The T6030 rows stay listed, not ported.080/090/240/245: 24 carried, plus 2 adaptations.100-sep(+tools/aurora-sep): 192 carried, 15 of them adapted.170-usb: 59 ported, 35 already present or superseded; rebased onto HPD v2.200-dcp: 161 dispositioned (78 ported, 67 adapted, 13 present, 3 dropped).210-gpu: the M3/T8122 backend is compile-only and gated to M3 hardware, with no change to G13/G14/G17. The M3 runtime/GPUVM redesign is listed for its maintainer (see "Not in this PR").220-userpages: the Merge aurora-wip (carries #131) with review fixes #136 review fixes, carried mechanically.900-config-tooling: generated bymake-900.sh; 15 carried, 8 adapted.Carried with a provenance note
The following commits were carried on Aurora's maintainer decision. They are disclosed here so their authors can document sources or follow up on gaps:
0aa39105: drm/apple: let a dock replug restore a parked dcpext scanout (Chris Kearney).7b1603a0,f18e6a5b: the T8122 GPU DT resources and UAT placeholders (garymeyerca), as disabled nodes.8b20dcee: gate T8122 G15G identity before startup (garymeyerca).84e34610,8231fa35,330a560b,0d51a403: the T8122 register lists and HwData words (Satya Benson).a0fe58a7: the T8122 remaining runtime InitData words (Chris Kearney).The M3 code they feed is only reachable through M3 compatibles. The G13, G14 and G17 paths are unchanged.
Landed in the fast-forward updates (latest
644133b7799f)644133b7799f, review follow-ups and base alignment). It hasintegration/aurora339ea0487dfcas a parent and carries ASoC: apple: select the Neo speaker codec with macaudio #149 (MAX98357A select for macaudio).integration/aurora.include/uapi/drm/asahi_drm.hnow uses the merged numbering from0c986f352044(G17P feature bits 10–15, timestamp-copy arrays,VM_CREATEflags). A layout check proves all 499 of its symbols equal to339ea0487dfc's header. The only diff is two comments describing this tree's behaviour (GEM_MADVISE, RSRC_SPEC_HI). Without this, merging would have reverted the base's UAPI and broken current Aurora Mesa (aurora-silicon/mesaaurora-wip). Older Mesa still runs on it through its existing fallbacks.xart_guard,xart_guard_list,xart_guard_refusalsandmatching(usable/unverified/blocked);aurora-sep-readyreports NOT ready for configurations the guard is known to block and names thexart_guard=0opt-out. The diag ABI stays 2 (keys are only added).XART-SAFETY.mdfull-list wording and the sensor-wake test comment are corrected.cdc7cd13b1b4).exec_lock()no longer leaks the VM.vb2_dma_sgdetach. With it, heap, udmabuf, ISP camera and AVD decode imports pass on a KASAN + kmemleak kernel, with 0 reports.iomfb_v26_6.cfinds the display subsystem throughdisp0, so the 25G83 DCP passes its handoff check.apple,pmp,apple,pmp-report,apple,no-ackandapple,soc-device-recordare documented. dtbs_check is 7,153 lines, below Support USB4/TB DisplayPort Tunneling #9.RESET_APPLE_CIOdefaults toARCH_APPLE, so a 7.1 config no longer loses the USB4 routers silently.apple_pmp_report_wait_ready(), so the DCP takes over from the boot framebuffer. dcpext is admitted the same way. M3 Max (T6031) works the same way but is opt-in withapple_t6031_display.enable=1. Authorship of the carried gate and provider commits is kept.-EEXIST), so those two overlays are dropped. T6030 keeps the overlay path unchanged. 25G83 coldplug stays in drm/apple; only the gate's 25G83 skip is carried.6d52684728eb.aurora-sep-readysays ready only once the enrolment is restored, and NOT ready with a reason otherwise.aurora-wipnot yet in this base is now ported, including the 5-cell/legacy DART window KUnit test, the SELinux label for/dev/sep-bio, the authselect PAM hint and the XART-SAFETY cold-boot note. A per-commit audit of allaurora-wipwork against this branch found 4 commits missing, and they are the ports above. The other 256 are present under another subject, superseded, already upstream in Asahi 7.2.10, or intentionally dropped. A follow-up hunk-level audit of every fileaurora-wipchanges (1,176 files, 7,337 hunks) found nothing else missing: 6,684 hunks match exactly, 441 are adapted to 7.2, 205 are superseded with a cited replacement, and 7 are recorded drops.!SUSPENDso no shipped config can build it, and stays parked onresearch/ave-transport-7.2.10.integration/auroraarm64: handle Apple M4+ wait state without boot flags #147: Diljit Singh's "arm64: handle Apple M4+ wait state without boot flags", carried unchanged (the J700 keeps the register-preserving WFI path, andarm64.nowfxtis no longer needed).CLEAR_STATEre-registration;XART-SAFETY.mddocuments the guard per platform; the J613/J615 25G83 display coldplug finds its nodes by alias and phandle.system_dfl_wq, the M1/M2 Type-C replug relink, the ATC KUnit objects built as modules, and missingMODULE_DESCRIPTIONs.Validation
Build gates (head
644133b7799f; baseasahi-wipv7.2.10; compared with 7.2.10rebase-wip/7.2.10c6d6d0964f73)apple-drm-resumefixture still stalls under lockdep; every other DCP suite passes thererun.py)tools/aurora-septestsintegration/aurora5d570a78a4ab: no new warning comes from Aurora's commits, and J700 has no new line. The 337 new lines (after node moves) are all carried: 290 are Asahi 7.2.10's own warnings, 34 are Asahit8122.dtsiwarnings on the base's J613/J615 profiles, and 13 already exist in substance on the base. The T8122 GPU, mailbox and UAT nodes stay disabled--strict(cherry picked from …)references, and contributor commits without a nominal-author Signed-off-byCo-Authored-Byon Aurora commits (contributors' own trailers are kept) · every Aurora commit ends withAssisted-by: LLM+Signed-off-by· 0 AI-instruction files · 0 private paths or identifiers in diffs or messagesHardware
MacBook Neo (J700), first boot of this tree, compared with the 7.2.10 daily:
Driver binding: identical on every platform/SPMI/I²C/SPI/PCI device: DCP×2, apple-drm, the G17P GPU, the SEP, ISP, AOP audio, ALS, PMP, and MT7932 Wi-Fi/BT.
External display, 180 Hz over the rear dock, software-driven:
Short sweep: display, GPU (Vulkan/EGL/GLES via Zink/Honeykrisp), Wi-Fi, BT, Touch ID (restored 3 on the first attempt), camera, mic, USB, wake and thermal all pass.
Regression sweep, essentials (same scripts as the 7.1 baseline):
It was the Neo's daily kernel until the updates below replaced it.
The latest update (
ffa615e26f29) on the Neo: it passes the same kit and is now the Neo's daily.Attended checks on the Neo, on this kernel: all pass.
The current head (
a9712ec4665e) on the Neo: it passes the full kit. Driver binding is identical, with 0 WARN. DPMS 10/10, mode change 5/5, s2idle with the monitor 6/6, the short sweep before and after sleep, about 99.2% s2idle residency, and a 5-minute idle check matching the previous head. Touch ID restored 3, including a first-attempt failure that the retry recovered.M1 Pro and M2 on this tree's code (the head before the final M4+ wait-state commit, which does not apply to M1/M2): the full battery passes on both, and both run it as their daily. The M2 has the SEP on and the xART ledger unchanged (0 of 10).
M1 Pro (J316s) and M2 (J413) on 7.2.10 (the same code base minus the unified carries):
M1 Pro: the full battery passes. That covers tipd, USB4 routers, Type-C cycles, pm_test, the display DART attach, the GL smoke test and the ANE probe.
Touch ID verified on the M1 Pro, with the xART ledger unchanged.
M1 Pro on this tree (
e0fa50d863ee, the Fedora stock-config recipe): the same battery passes, matching 7.2.10.pm_test=platform3/3 with 0 DART faults;The only new dmesg line is an intermittent
brcmf_get_assoc_ies-52. It is now the M1 Pro's daily kernel, with 7.2.10, the 7.1 Touch ID kernel and stock as GRUB fallbacks.M1 Pro, attended: Touch ID verify matches; a USB 3 camera in all three ports, both orientations, enumerates at SuperSpeed 7/7.
M1 Pro external display through a USB-C dock (DP alt mode), attended:
M1 Pro on the 7.2.10 DTB set (one-shot boots; the daily runs the 7.1 DTB set, which this kernel also supports): 7 of 8 boots of this tree came up with display, Wi-Fi and tipd 4/4. One hung before the root filesystem, with no log, and the watchdog recovered it; it did not reproduce in 6 retries. The 7.2.10 baseline came up 4 of 4. Every boot shows the already-known late-IOMMU probe race, which moves between devices.
M2 on this tree: the same battery passes with 0 warnings, and the xART ledger is unchanged (0 of 10).
M2 with the SEP on (this tree plus the xART guard and the T8112 SEP DART window, now landed):
It is now the M2's daily kernel.
Known issues and follow-ups
integration/aurora.asahi,j615-25g83-experimental): the coldplug now finds all ten display/PMP nodes through aliases and phandles, so the 25G83 native display can be admitted again.disp0lookup iniomfb_v26_6.c).apple_t8122_display.enable=0(T8122) ornomodeset. T6031 only starts it withapple_t6031_display.enable=1. The display stays on the boot framebuffer in that case. Verified with KUnit fault injection only.APPLE_T6030_DISPLAY_GATEnow defaults to y on Apple. It returns immediately without an M3 handoff. The J700 release config pins it off, so its config is unchanged.displayportlink has no matching DRM connector there; adding one would give no extra function. It applies to M1/M2 CD321x ports.xart_guard=1, restoring Touch ID at boot works on every platform, because it only reads xART. Using it does not always work: a fingerprint match rewrites session records, and the guard allows that only for records Linux created while the guard was on.xart_guard=0. Because setup ran unguarded, the matches that follow need it too.A refused write fails closed and is logged;
tools/aurora-sep/XART-SAFETY.mdcovers restore, use, setup and recovery per platform.107036c9c167and the ISP part of7f835188acccstill need owner reconciliation.How to review
Review the canonical assembly, the second parent of the head, not the first-parent chain. The first parents only link earlier fast-forward publishes, so their topic merges are stale copies. The canonical is Asahi 7.2.10 plus one merge per topic, in NNN order.
Because the canonical is reassembled for each update,
git rev-listover the whole head counts every topic commit several times.What from
integration/aurorais carried, deferred or dropped: the head hasintegration/auroraas a parent, so git counts all of its commits as merged even where the content isn't carried. A per-commit list (1,389 commits checked; 153 deferred, most of them the M3 GPU runtime, 99 superseded, 3 dropped) is here: https://gist.github.com/RyanTheTide/980fce5c903a3b158b37a45432b47abdPlease merge with a merge commit (or a fast-forward), not squash or rebase, so the topic structure and authorship survive.
🤖 Generated with Claude Code