watchthelight labs

The Legion 5 15IAX10 Hackintosh in late October 2026: what the public web knows about the Arrow Lake-HX stalls, NvGfx, MT7925 and macOS 26.7.2: Supersearch Research Dossier

  • Generated: 2026-10-27 (every "checked" date in this document is this day unless a line says otherwise)
  • Mode: Exhaustive (15 research agents, then an audit, a contradiction pass with independent re-verification, a timeline pass, a practitioner pass, four theme syntheses, a devil's advocate and a quality gate)
  • Quality gate: PASS for use as a planning document (WARN on source diversity and search reach); scores in the methodology section
  • Sources included: 229 in the sources table (337 unique URLs were read across the research reports)
  • S and A tier sources: 108 in the sources table (about 170 of the 337 URLs after the audit's stricter regrade)
  • Subject machine: Lenovo Legion 5 15IAX10 (Core Ultra 9 275HX, Intel iGPU 8086:7D67, RTX 5070 Laptop GB206, MediaTek MT7925, Realtek ALC257) on macOS Tahoe 26.7.1 (25G241) through OpenCore, running the project's own NvGfx, XeGfx, MtkWlan/MtkWlanNative and MtkBt drivers.

Executive summary

The public web has no report that matches the project's I-116 stall. There are Linux reports on the same family of parts, mostly Arrow Lake-H and Meteor Lake rather than the 275HX die, where the GuC firmware acknowledges a TLB invalidation about 2.3 seconds late and some machines then freeze. Those freezes keep the kernel alive (SysRq works, the journal keeps writing) and the NMI watchdog never fires. The I-116 panic is different: one CPU never reaches the rendezvous and the other 23 do not answer even an NMI. The only confirmed root cause for the Linux late acknowledgements is stale CPU cache lines of firmware-written memory on the standalone media GT, fixed in a commit that reaches Linux 7.4, and XeGfx skips the media GT in every recorded boot. The fwtable_write32 frame in the I-116 panic is most plausibly the GuC doorbell write, and Intel's own source marks that register's forcewake handling as a FIXME workaround for delays when the platform changes sleep state. That is a lead and not a diagnosis: in only one of four recorded panics is the panicking CPU in driver code, that CPU had also taken an interrupt and may be a waiter, and rivals that the public record cannot separate include a System Management Mode stall (the project's NVRAM trace writes every 250 ms and has been on in every guarded run) and the project's own power kext, which was loaded in every run.

The platform research found no firmware fix to wait for. Lenovo's S2CN26WW is the newest BIOS for this machine and only updated CSME. Intel's specification update (revision 024, October 2026) still lists erratum ARL037 (a core can hang entering or leaving C6 or deeper, with no machine check logged) as "Planned Fix" on the HX line, but Intel calls it synthetic, it hangs one core, and the panic needs a machine-wide stall. Newer microcode (0x121, 0x122) exists against the 0x11b this machine runs, with no public text tying it to the erratum. For I-118 (resets 15 to 40 seconds after OpenCore's ExitBootServices line, after two Linux probe sessions) nothing public matches: no one reports an Arrow Lake reset as opposed to a hang. The candidates are leftover state from the previous OS (microcode, GSP/WPR2, a Linux-armed watchdog, VT-d state), all supported by analogy only, and the log line "EXITBS" marks where OpenCore's log stops, not where the machine died.

On the graphics side, NullMoth's current release (2.6.2) carries the same driver as 2.5.5, and the project's 2.6.2 rebase is built but not booted (N-294). Independent evidence for the NVIDIA problems (drag stalls, HiDPI, HDR, Chrome flicker, MPS translation) is thinner than it looks and some of it is the project's own account. Several Intel Xe on macOS efforts are active (ArrowWhatever on the same die, zep245's Tiger Lake port, jwx29's fork, VedCloud's Meteor Lake notes); the only soak figure on this die is a self-reported 40 minutes, from a patched copy of the project's own shim. ArrowWhatever fixed a userptr unwire race that the project's code also contains, with a different failure signature. zep245 found NVRAM trace writes to be a hot-path cost, which has never been tested in XeGfx and is a switch away; if native NVRAM writes run in System Management Mode, that switch is also a test of the stall.

For macOS, 26.7.2 is build 25G332 (released 2026-10-26); 25G330 was the third release candidate, and the project's tracker and one public reply use the wrong number. The kernel collections of 25G332 can be rebuilt without installing anything, by applying Apple's own BXDIFF50 delta patches to the files already on the Mac, and the result verifies against hashes. A first ABI comparison shows unchanged class sizes and vtables with three small differences, so the native Wi-Fi front end's refusal on 25G332 looks like a gate decision more than a proven break. Bluetooth reports mix a probable stale byte pin with a card-state fault. Intel Macs end at Tahoe, so every point release is a recurring cost for kexts that depend on private layouts.

Bottom line

  • I-116 has no public twin. Rank the experiments by cost: one session at stock LegionCpuPower limits with the SMI count read, one run with the NVRAM trace off, passive per-CPU and TSC timing around the doorbell and forcewake waits so the missing CPU gets a name, machine-check banks after the next stall, and only then the waker by gtawake 2x2 with a stopping rule. Do not write that I-116 is "the 2.3 second cache bug", and do not use tlbto_us=0, which removes the panic string.
  • Do not wait for a BIOS or microcode fix, and do not load newer microcode through OpenCore as a mitigation. None is published, and early loading over an older BIOS revision broke other Intel parts in 2026.
  • For I-118, make the cold-versus-warm state a recorded column, record the microcode revision and the watchdog state before and after each Linux probe, and fully power off after Linux before testing macOS.
  • Stay on 25G241 and prepare 25G332 offline: correct the "25G330" records, review the three ABI differences, explain why the live bluetoothd does not match the OTA record, and ask reporters for the Wi-Fi refusal reason.
  • Treat the self-reported peer projects as claims. Port the userptr race fix as the project's own code, and do not log it as an I-116 attempt.
  • Nothing in this dossier needs an outside post; anything on a public tracker is Bash's decision.

Key insights

  1. Intel treats the doorbell write as an unfinished workaround. The H2G doorbell (register 0x1901f0) is in a range that normally needs no forcewake, but Intel added GT forcewake for it because the write can be delayed when the platform enters or leaves a sleep state, and marked it FIXME pending an official workaround. A separate commit says the same about multicast steering registers. This is the best mechanism-level match for the I-116 frame, and it points below the driver. Sources: 6d46d09a0d7d, 8fa1c7cd1fe9. Confidence: Medium (the link to I-116 is inference; the panic carries no register offset).
  2. The one root cause everyone cites is scoped to a GT that XeGfx does not start. Wa_22016122933 concerns memory shared with the media GuC, XeGfx logs "Skipping GT1" in seven boots, and the supporting measurements come from Arrow Lake-H machines. Its own reporter saw a silent death with the fix applied. Sources: xe commit d5b0bf3f37f1, xe 8678. Confidence: High on the scope, Medium on the inference that it cannot be ours.
  3. Same-silicon Linux freezes leave the kernel alive; I-116 does not. Reports on 7D67 and 7DD1 end with a live kernel or a silent power-off with nothing captured, and none carries a per-CPU state comparable to the I-116 panic. Sources: xe 9168, i915 16937. Confidence: Medium-High.
  4. A GT hold tests a different failure class than the one Intel is fixing. The Tiger Lake macOS port and the FreeBSD maintainer both stopped hangs by keeping the GT awake, but both are other silicon and neither had a controlled A/B, and the owner of xe 8678 held forcewake on Arrow Lake while the late acknowledgements continued. A hold is a test for a CPU-side or sleep-state class (that I-116 is in it is assumed, not shown), and a negative result on one must not be read across. Sources: drm-kmod 457, xe 8678. Confidence: Medium.
  5. The panic is a late detector and the stall length is unknown. The rendezvous spin is bounded at about 2.0 seconds, so "2 s" is a timeout and not a measurement; the 27 s figure in one run record contradicts the saved progress file; the panicking CPU is a waiter in most runs. Naming the missing CPU is the most valuable extra datum, and the SMI count (MSR 0x34) separates an SMM stall from an uncore hang. Sources: xnu mp.c, LKML on stuck MMIO. Confidence: High on the arithmetic.
  6. Shim semantics are a live candidate beside silicon. FreeBSD found three LinuxKPI gaps behind GuC scheduling failures on Meteor Lake, and the same silicon ran a 40-minute soak under a patched copy of this project's own shim (self-reported, two days old, inside the project's own spread of times to stall). The stand-ins for in_atomic, irqs_disabled and rcu_preempt_depth decide whether a full H2G buffer sleeps or spins. Sources: freebsd-src 4f2f26fb1e8a, ArrowWhatever. Confidence: Low.
  7. ARL037 fits the first phase of the panic and not the second. One core hanging with no machine check matches the single missing CPU; it does not explain 23 CPUs ignoring an NMI, Intel calls it synthetic, and four freezes happened on Linux with a C-state limit of 2 and display power states off. Sources: Intel 834774 rev 024, xe 9168. Confidence: Low.
  8. No firmware fix is known, so there is none to wait for. S2CN26WW is the newest BIOS (checked), microcode 0x121 and 0x122 have no public mapping to ARL037 (an absence claim from one search pass), and loading microcode early over an older BIOS broke Meteor Lake machines in August 2026. Sources: Lenovo readme, microcode releases, microcode issue 112. Confidence: Medium (the BIOS fact is High; the absence of a fix is one search pass).
  9. For I-118 the unrecorded variable is cold versus warm. Intel's triager asks for it on the one 7D67 probe-failure thread, NVIDIA's WPR2 reports hinge on it, and the project's failing and passing boots differ in that column. Every candidate (microcode persistence, WPR2, a Linux watchdog, VT-d) is an analogy. Sources: i915 16052, open-gpu-kernel-modules 1353. Confidence: Medium.
  10. The Intel Xe peers fixed glue-code bugs, which are cheap to close. The userptr unwire race is a lock gap that exists in XeGfx and does not match the I-116 signature. The NVRAM trace cost is a hot-path problem, and because native NVRAM writes on EDK2-derived firmware normally go through System Management Mode (unverified for this BIOS), the trace is also a candidate cause of the stall, and more than a tidy-up. Sources: ArrowWhatever userptr note, zep245 design notes. Confidence: Medium.
  11. Independent evidence on the NVIDIA problems is thin, and some of it is ours. The HDR trace and the 12-byte HiDPI finding came from the project's own account; the Chrome Graphite cure and the MPS failures have several independent reporters. The 615.71.10 and 615.78.08 source diffs show no platform logic change, and the project's one GSP control already lifts the 50 W default to 115 W. Sources: nullmoth 341, NVIDIA compare. Confidence: Medium.
  12. The 26.7.2 Wi-Fi break is a gate decision first, and the gate is a safety gate. The front end refuses on the xnu tag before it looks at sizes, and the offline comparison shows unchanged sizes and vtables with three unreviewed function differences, one plausibly relevant. No 25G332 boot of the project's kexts has happened, so this stays inference. Sources: MtkNativeAbi.hpp, appledb 25G332. Confidence: Medium.
  13. Tahoe is the last Intel macOS, so each point release is a recurring cost for private-layout kexts. The newest MT7925 competitor shares the per-build pin. Automating the offline kernel-collection route is worth more than any single 25G332 fix. Sources: Apple macOS page, OCLP 1183. Confidence: Medium.
  14. Arrow Lake Hackintosh practice converges on VT-d off, a DMAR drop and a type-0 MADT, and this config differs in two quirk choices. Two other 275HX EFIs (not independent of one another's guide lineage) run SetupVirtualMap on without ForceExitBootServices, while this config does the opposite and keeps DMAR. None of those projects reports I-118-style resets, and this machine's normal boots pass, so a quirk A/B is a hypothesis. Sources: 1401 issue 58, ASUS FX608LP EFI. Confidence: Medium.

Research map

The run followed the six questions in the brief. Fifteen research agents each took one aspect and wrote a report; a second wave audited the sources, re-verified the load-bearing facts independently, built the timeline and collected practitioner reports; four synthesis drafts (one per theme) then combined them, a devil's advocate attacked the result, and a quality gate scored it.

Question in the brief Aspects Where it is answered
1. I-116: Linux i915/xe and FreeBSD knowledge of GuC CT, MMIO, forcewake, TLB, C-state, PSR and workaround stalls on Arrow Lake 1 GuC CT stalls; 2 MMIO and forcewake; 3 TLB invalidation and the free worker; 4 power states; 6 Arrow Lake enablement, workarounds, firmware; 7 FreeBSD and OpenBSD ports Theme 1, Theme 2
2. NVIDIA on macOS: drag stalls, HiDPI, HDR, Blackwell laptop power, Chrome flicker, MPS translation 8 NullMoth and forks; 9 Blackwell laptop power and firmware Theme 3
3. Intel Xe graphics on macOS 10 WhateverXe, zep245, ArrowWhatever, jwx29, VedCloud Theme 3
4. macOS 26.7.2 and an offline route to its kext collections 11 what changed; 12 pulling the collections without installing Theme 4
5. MT7925 on macOS and Legion Gen 10 Hackintosh reports 13 MT7925; 14 Gen 10 and Arrow Lake Hackintosh Theme 4
6. Early resets after ExitBootServices (I-118) 15 resets after Linux; 5 platform stability Theme 2

The sections that follow are: the four themes (main findings, each with its evidence table rows, key insights, ranked actions and risks), the timeline, technical and operational details, the consolidated evidence table, tradeoffs and alternatives, practitioner reality, contradictions and debates, failure modes and misconceptions, gaps and limitations, the devil's advocate, consolidated actionable takeaways, methodology and the sources table.

Theme 1: I-116, what Linux i915 and xe, FreeBSD drm-kmod and other ports know about GuC CT, forcewake, TLB-invalidation and free-worker stalls on Meteor Lake and Arrow Lake

1.1 The best-supported mechanisms are two different late-ack effects, and neither is shown to be our whole-machine stall

Upstream has published evidence for two ways a GuC acknowledgement arrives late on Meteor Lake and Arrow Lake. The first is a stale CPU cache read: the GuC answers in time, but the CPU keeps reading an old empty line of the G2H buffer. Intel's xe fix d5b0bf3f37f1 (Wa_22016122933) took one reporter from 20 to 60 stalls a day to zero in six weeks over more than ten million invalidations (xe 8678). The second is a platform sleep-state delay on a write that forcewake does not cover: 6d46d09a0d7d says there "could be some delays when platform is entering/exiting some higher level platform sleep states" for the H2G doorbell.

Our signature differs from both. I-116 is a whole-machine stall, then an XNU rendezvous panic in which 23 of 24 CPUs answered and none took the NMI. The XeGfx log ring held no i915 message after GuC load (no CT timeout), and in N-288 the GPU interrupt counters kept moving with every interrupt handled. The closest local match to the second mechanism is N-287, where the panic CPU sat in fwtable_write32 under intel_guc_ct_send during an execbuffer ioctl, the doorbell path. This is inference: no public report measures that write stalling, so the link is a hypothesis.

The cache mechanism is excluded unless our shim has a GT0 analogue (1.4). A platform stall that no driver timer catches cannot be excluded, and 1.6 shows why the evidence leans that way.

Confidence: Medium (checked 2026-10-27) that these are the two documented mechanisms; Low that either explains I-116.

1.2 I-116 is a two-phase XNU panic, and its real stall length is unknown

The panic strings read mp_rv_action() entry: 23 of 24 responses, then mp_kdp_enter() ... expected 24 acks but received 1 after 1536000000 ticks. XNU's rendezvous code uses a spin timeout of four times the lock timeout, and the NMI ack wait is half a second; at 3.072 GHz that is 2.0 s and 0.5 s. I computed (cur - start) from the N-287, N-288 and N-290 panic strings: about 6.144e9 ticks, exactly 2.0 s. The panic therefore fires at the normal timeout after the rendezvous began, not after a long stall, and how long the machine had been stuck is not in the data.

"23 of 24" means one CPU never entered the rendezvous (its id is not printed). Phase two, in which none of the other CPUs acknowledged an NMI although about 22 had entered, needs more than one stuck CPU: an SMM or SMI episode, a fabric or memory stall, or CPUs unable to take NMIs. This is inference and Unverified.

The panic CPU is a waiter, not the culprit. N-287 (about 45 s after WindowServer started): in or below fwtable_write32 + 0xfa, called from intel_guc_ct_send. N-288 (about 40 s): idle in processor_idle. N-289 (15 to 20 s): pmap_remove_range from the free worker (IOBufferMemoryDescriptor::free <- xg_vm_x_release <- __i915_gem_free_objects). N-290 (88 min, during diskutil apfs resizeContainer): storagekitd in nx_resize. One puzzle: i915 runs fwtable_write32 under spin_lock_irqsave, and the N-289 README says the shim's spinlock_enter masks interrupts, yet CPU 3 took an IPI there. Either the interrupted address is a return after the unlock or the mask is not what we think; the irqoff_check switch tests this.

Two local record problems need fixing before publication. The N-287 README claims a 27 s guard-loop gap and that the unified log stops at 11:19:06, but the saved N-287/guard/ws-progress.txt has lines about every 5 s through 11:19:38 with IOPresentment counts still rising, so any "27 s stall" in the aspect reports is softened here. And N-290 ran 0.0.43 with a 20 ms interrupts-off watchdog and survived 88 minutes; the wakeup may make I-116 rarer, which is not proven.

Confidence: High (checked 2026-10-27) on the 2.0 s arithmetic from the saved panic strings; Unverified on the true stall length and the missing CPU.

1.3 Intel marks the doorbell as a FIXME workaround for sleep-state delays and says the pcode half is separate

The doorbell is register 0x1901f0 (GEN11_GUC_HOST_INTERRUPT), written by intel_guc_notify under the CT buffer's spin_lock_irqsave. 6d46d09a0d7d (authored 2024-01-19, committed 2024-01-24, v6.9) added GEN_FW_RANGE(0x1901f0, 0x1901f3, FORCEWAKE_GT) /* FIXME: WA to wake GT while triggering H2G */. Its text says the register sits in the sgunit and "is not affected by forcewakes", and that "this will have an official WA soon". The accurate wording is "a FIXME workaround takes GT forcewake for that offset", not "the doorbell needs forcewake". Our drm-kmod base c16de0f has the range; xe's xe_guc_notify() in xe_guc.c is a plain MMIO write without it.

The sister commit 8fa1c7cd1fe9 (GT forcewake during MCR steering) cites the same cause and says "an upcoming pcode firmware update will also be necessary to provide the other half of this workaround". A pcode half implies a BIOS or IFWI dependency no kext can supply, which fits Red Hat bug 2463170 (reported fixed by a kernel update plus a Lenovo BIOS PCODE update).

fwtable_write32 takes uncore->lock, calls __force_wake_auto, and each ack wait is 50 ms per pass with fallback passes. By my arithmetic a worst case exceeds one second (inference), enough to keep other CPUs waiting on that lock. This machine has BIOS S2CN26WW and microcode 0x11b; 0x121 and 0x122 exist, but no release note ties either to this symptom.

Confidence: High (checked 2026-10-27) that the commits say this; Medium that the pcode dependency applies to this laptop.

1.4 Wa_22016122933 is real on the media GT and probably does not apply because XeGfx skips GT1

d5b0bf3f37f1 (committed 2026-09-24, merged via drm-next on 2026-10-24, queued for 7.4, not in v7.3) covers the standalone media GT, media version 13.00, on Meteor Lake and Arrow Lake. Memory shared between the CPU and the media GT's GuC (CT buffers, log, ADS, SLPC) must not be CPU-cached, or the CPU reads a stale empty CTB until the line is evicted and the 2.25 s fence timeout fires first. A coherent WB|COH_2WAY mapping did not help (2290 ms); a CPU-WC variant works; swapping in XE_BO_FLAG_FORCE_WC naively flips the GGTT side to WB and stalls return (xe 8678). A follow-up patch on the intel-xe list (403 on fetch, described from the corpus) says uncached-only regresses probe to about 3.1 s and WC fixes it. i915 has carried the workaround since a161b6dba6e0 (v6.5-rc1), keyed on media version 13.0 and GT_MEDIA.

The XeGfx log reads Skipping GT1 (Standalone Media GT) - MEI driver not available on FreeBSD, matching drm-kmod PR 418. The workaround's scope is therefore absent from our run, and "I-116 is the 2.3 s cache bug" must not be written anywhere. Even with the fix, media-GT "not started" timeouts persist at about one per 100 h.

C9 in the contradiction file is a Low-confidence analogue on GT0: if the shim maps GuC shared pages cacheable while the GGTT side is snooped differently, a stale-line effect is conceivable. Nothing tests that. Reading how xg_vm.c maps CT pages and which PAT the GGTT entries use would settle it without a boot; the XeGfx VM notes say a page run's kernel mapping is write-back.

Confidence: High (checked 2026-10-27) for the workaround's media-GT scope; Contradicted as an explanation of I-116; Low for a GT0 shim analogue.

1.5 The xe 8678 owner's forcewake hold did not stop the ack delay, and one machine died silently even with the workaround

The cached notes on xe 8678 hold the most direct A/B on Arrow Lake. Note 1 (2026-07-30): forcewake held across the whole GT, GT C6 residency delta zero, still nine timeouts. A 250 ms doorbell re-kick shortened most acks to 15 to 276 ms, but severe episodes ignored 8 to 9 consecutive doorbells (worst 5996 ms); the owner first read that as GuC-side, then the list confirmed the stale-cache cause (note 15). So "a forcewake or RC6 hold stops the stall" is Contradicted for the late-ack class: late acks and a CPU-side blocked doorbell write are two separate mechanisms.

Note 26 says the series "would not have prevented" a GT0 wedge. Note 28 (2026-09-19) reports the owner's own 7d51 machine locking completely on 2026-09-16 on a kernel with the workaround, leaving no log line; the NMI watchdog and pstore captured nothing. Note 30 speculates (tier B) that a hang in a GPU power or fabric handshake "can take the whole package down". Other Arrow Lake H machines with backports ran clean. This is the closest public analogue to our silent phase, and it is one report without a root cause.

Confidence: High (checked 2026-10-27) on what the notes say; Medium that they transfer to 7D67.

1.6 Linux freezes on this silicon leave the kernel alive and ours does not, so the nearest analogues are few

xe 9168 (device 7d67, a 285HX mini PC) shows freezes with a live kernel: SysRq-S works, nmi_watchdog=panic never fires, the journal keeps writing, and a TLB timeout precedes the freeze by minutes to hours. A 2026-10-27 comment reports DC, PSR, FBC, panel replay and DMC wakelocks off plus intel_idle.max_cstate=2 do not help. That is a different class from N-290, where the CPUs go silent. i915 16937 (ARL-P) is a hard hang with a silent NMI watchdog and about 1000 DC transitions a minute before death, not cured by PSR, FBC, max_cstate=1 or removing the NVIDIA card. i915 13926 has forcewake and TLB timeouts with one CPU stuck in VT-d qi_submit_sync. No report matches 23 of 24 CPUs plus NMI silence on 7D67 in any operating system.

For the silent phase the best public statement is Gleixner's on another platform: a machine can stall on outstanding MMIO transactions "w/o further notice" and "the NMI is just a red herring" (LKML, 2026-01-13). That fits a CPU parked in an uncore write (N-287) and silent peers, but it is a model, not a measurement. Gleixner's text concerns HPET clocksource time failing to propagate after a hung PCI config read, so the remark about the NMI describes that path and does not transfer as a rule. The N-287 panic CPU was also running interrupt code (cpu_signal_handler sits above the fwtable_write32 frame in the saved panic string), so it may have been a waiter that happened to be in driver code. The same silicon and macOS build did a 40-minute soak with zero stalls under a patched copy of this project's own XeGfx shim (ArrowWhatever, tier B, self-reported, created 2026-10-25), while N-290 died at 88 minutes under heavy I/O, so the trigger is setup-specific.

Confidence: Medium (checked 2026-10-27) that the silent phase has no direct public analogue; Low on any specific cause.

1.7 TLB invalidation has an MMIO fallback, but turning off the GuC path is not a one-flag test

intel_gt_invalidate_tlb_full in intel_tlb.c is gated by wedged state, seqno coalescing and with_intel_gt_pm_if_awake, so not every free sends an H2G ("every free" claims are overstated). It takes the GuC path only if HAS_GUC_TLB_INVALIDATION and the GuC is ready, otherwise mmio_invalidate_full, which takes FORCEWAKE_ALL and the MCR lock and waits 100 us then 4 ms per engine. The GuC path (intel_guc_submission.c) sends through intel_guc_send_busy_loop and waits about 2 s before logging "TLB invalidation response timed out".

An aspect report called clearing has_guc_tlb_invalidation a one-flag experiment. That is wrong. 2d6e2b10a773 says Meteor Lake "is presently the only platform that requires it for any purpose", and af58ee227662 says GuC-based GGTT invalidation is incompatible with MMIO invalidation. In intel_ggtt.c, guc_ggtt_invalidate sends through the CT per GT, a second H2G source beside the free path. Clearing the flag could leave GGTT and PPGTT paths inconsistent. This is a Medium-confidence reading of commit text and source, untested.

N-289 puts the free worker's pmap_remove_range, an XNU TLB shootdown, under the panic CPU. A shootdown is an IPI wait on every CPU, so one CPU stuck in an uncore write makes the next shootdown stall the rest (inference).

Confidence: Medium (checked 2026-10-27), from source and commit text read directly; fallback safety on 7D67 untested.

1.8 The free worker's cond_resched fixes are old latency work and nothing is specific to Meteor Lake or Arrow Lake

The relevant changes are generic: deeee411a975 (2020, per-object cond_resched in __i915_gem_free_objects) and the 2021 series that flushes TLBs before releasing backing store (7938d61591d3 and neighbours), which made the free worker the main invalidation producer. The Tiger Lake port on XNU (IrisXe-macos-driver, tier B) had a preemption_level -1 panic from cond_resched (ggtt_pin -> shmem_get_pages -> shmem_sg_alloc_table -> cond_resched -> sched_relinquish -> thread_block), traced to an earlier lock imbalance and cured by turning off a per-CPU curthread cache. That points at the shim's critical-section accounting, not at the free worker. For us the N-289 panic CPU was already inside the shootdown, so cond_resched is not a cure; limiting how much one free pass does is a smaller experiment than touching the TLB path.

Confidence: Medium (checked 2026-10-27) that no ARL-specific free-worker fix exists; Low that throttling would change I-116.

1.9 GuC, firmware, DUAL_QUEUE_WA and render power gating: what our base already has

GuC submission is the Linux default on Meteor Lake and Arrow Lake, and xe dropped force_execlist (b623bd790db0). XeGfx's HOW-IT-WORKS says that drm-kmod disables the GuC by default, that these parts have no execlist submission (the no-GuC path returns -EIO and the GT is declared wedged), and that XeGfx sets enable_guc=3. "Switch to execlists" is therefore not an available A/B on 7D67; whether a HuC-only enable_guc=2 mode works is unsettled. FreeBSD defaults GuC off because of shutdown and reboot freezes (drm-kmod 399).

I checked the base c16de0f (2026-10-08, "Reduce diff with Linux 6.14"): DUAL_QUEUE_WA is set for graphics IP 12.70 or newer with CCS, as in ff868667a4f9, and it is engine-level, not whole-machine. Render power gating stays excluded for IP 12.70 to 12.74 in its intel_rc6.c, following 25e7976db86b (forcewake ack timeouts in CI); upstream limited that exclusion to selftests in 0a4ae87706c6 (v6.16). So we run the conservative setting upstream later dropped, with RC6 and media power gating on.

GuC 70.53.0 is what linux-firmware ships and our log shows. 70.74.0 is in drm-firmware and runs in Intel CI on Meteor Lake, but 70.72.1 behaved like 70.53.0 in xe 8678, so a firmware swap is low yield.

Confidence: High (checked 2026-10-27) for DUAL_QUEUE_WA and render-PG state, read from source; Medium for the firmware conclusion.

1.10 FreeBSD fixed shim-semantics bugs that produced GuC scheduling failures

drm-kmod 457 (2026-08-30) diagnosed a GuC "Bad context sched_state" hang that sleep 3000 < /sys/kernel/debug/dri/0/i915_forcewake_user cured. Two causes were named: LinuxKPI runs the handler in an ithread, not a hardirq filter, so RC6 entry and exit happens during the delay and the GFX_MSTR_IRQ read returns invalid state; and the preemptible handler makes the masked window long. This is a correlation without a controlled A/B, and a later cancel_delayed_work_sync fix was called cleaner.

The fixes are small and checkable. FreeBSD 79e290d96786 (2026-09-13) corrected an inverted cancel_delayed_work_sync() return value, found while debugging GuC scheduling failures. 0d022baa047a runs irq_work callbacks under RCU. 4f2f26fb1e8a implements irqs_disabled and names intel_guc_send_busy_loop as a user, which matters because intel_guc.h picks sleeping or an unbounded cpu_relax() retry from in_atomic(), irqs_disabled() and rcu_preempt_depth(). OpenBSD bd7ea2868af8 polls CT receive while waiting. FreeBSD agreeing with Linux is not a second opinion; it is the same code.

The Tiger Lake port on XNU adds a ladder (nmx_i915_awake.c): a GT power reference alone still froze, adding intel_uncore_forcewake_get(FORCEWAKE_ALL) was clean, and the freeze needed paced 60 fps frames, never back-to-back submission. One machine, no controlled A/B. XeGfx 0.0.44 and 0.0.45 already carry matching switches (gtawake=1, gtawake=2, irqoff_check=0), built but not booted (XeGfx).

Confidence: Medium (checked 2026-10-27); commits verified, effect on I-116 is inference.

1.11 Platform errata and microcode are weak fits

Intel's specification update 834774 rev 024 lists ARL037, "A Core May Hang When Entering or Exiting C6 or Deeper Sleep States", as Planned Fix on HX (Fixed on H, N/A on U; an earlier aspect report had the columns wrong). Per Intel it is synthetic-only and hangs one core, not 23 of 24, so it is a weak fit. i915 16052 (7d67 probe-time all-ones MMIO reads, Intel text marked LLM-assisted) is a power-sequencing race with a request for cold versus warm results; the contradiction file says to drop it from the TLB-freeze list because it relates to I-118. Microcode and BIOS are variables we have not moved, and moving them needs Bash's OK.

Confidence: Low (checked 2026-10-27) that errata explain I-116; High on the stated erratum status.

Theme 1 key insights

  1. Holds test one failure class and not the other. The Tiger Lake port on XNU was cured only when it held forcewake on all domains (zep245) and FreeBSD's forcewake_user workaround stopped a GuC scheduling hang (drm-kmod 457), yet the xe 8678 owner held forcewake and the ack stall went on. A hold is a test for the whole-system class (ours is assumed, not shown), not the late-ack class, and a negative result on one must not be read across. The positive evidence comes from two ports on other silicon (Tiger Lake, Meteor Lake) and the one hold on Arrow Lake failed. Confidence: Low to Medium.
  2. A platform cause is not excluded, though no newer BIOS or microcode path exists on macOS. Intel's two FIXME commits (6d46d09a0d7d, 8fa1c7cd1fe9) call themselves half a workaround awaiting pcode, and a silent platform death with the cache workaround applied (xe 8678, note 28) suggests a path no kernel patch reaches. BIOS and microcode are variables this project has never moved, and both statements here are absence claims from one search pass. Confidence: Low to Medium.
  3. Our observables do not exclude a stalled MMIO transaction, and it fits them better than an ack delay, but it is a model. The N-287 panic CPU sits in an uncore write path yet had also taken an IPI, so it may be a waiter; the panic CPUs of N-288 to N-290 were in idle, in pmap_remove_range and in APFS reads, so only one of four runs shows the driver; the silent CPU is unnamed. System Management Mode (an SMI stops every thread while the TSC runs on), an EC or firmware event, and a failed deep-idle wake are rivals that the data do not separate. The 2.0 s rendezvous timeout and the NMI silence resemble Gleixner's description, while every upstream mitigation targets ack delays. TSC deltas around the doorbell and forcewake waits are the discriminating measurement, together with the SMI count (MSR 0x34). Confidence: Low (inference).
  4. A shim-semantics cause is a live candidate, not a favourite. FreeBSD found three LinuxKPI gaps behind GuC scheduling failures (79e290d96786, 4f2f26fb1e8a), and the same silicon ran a 40-minute soak clean under a patched copy of our own XeGfx shim (ArrowWhatever, self-reported and not independent of our code; a 40-minute run also sits inside our own spread of 900 s passes and an 88-minute death). Our in_atomic, irqs_disabled and rcu_preempt_depth stand-ins steer intel_guc_send_busy_loop between sleeping and spinning. Confidence: Low. Its passive checks (reading the stand-ins) come before any boot test.
  5. Heavy I/O and the free worker meet at TLB shootdowns. The free worker became the main invalidation producer in 2021 (7938d61591d3), N-289 shows it inside pmap_remove_range, and N-290 died during an APFS resize. A CPU stuck with interrupts masked makes every other CPU's shootdown wait, so I/O load may raise the chance of a wedge without being its cause. Confidence: Low (inference).

Theme 2: The Arrow Lake-HX platform under the stalls and the resets

2.1 ARL037 is the only published HX erratum shaped like the first half of I-116, and it fails three tests

Intel's Core Ultra (Series 2) Specification Update (document 834774, revision 024) lists ARL037: a core can hang entering or leaving C6 or deeper, no machine check is logged, Intel saw it only in synthetic conditions, and a BIOS workaround is possible. The status row is Planned Fix for S, S 6+8 and HX/HX Plus, N/A for U, Fixed for H (Intel 834774 rev 024). It was added in revision 008 (May 2025) and updated in revision 012 (October 2025) (same PDF). So on our 275HX it is acknowledged, unfixed in silicon as of October 2026, and left to firmware. Aspect 2 had the column mapping reversed (fixed on HX); the spec text and Aspect 5 are right, and verification pass agrees.

It fits phase 1 of I-116: the panic reports 23 of 24 responses, so exactly one of 24 logical CPUs never answered the debugger rendezvous (xnu mp.c; panic record in evidence/native/N-290/README.md). It fails on three counts. Intel says synthetic only, and our stalls come within minutes of a WindowServer session. In phase 2 none of the other 23 CPUs acknowledge the NMI, and ARL037 says nothing about healthy cores going silent (this is inference: a hung core might stall IPI delivery, but no source says so). And the waker evidence is weak: the 20 ms waker thread in XeGfx 0.0.43 coincided with one surviving session, but 0.0.43 also added spinlock and interrupt instrumentation, and the direction of the waker's effect on idle is unknown: this text reasons that a timer waking a core 50 times a second adds C6 transitions, while the N-290 README says it keeps cores out of deep idle, and neither has been measured. It is not a ranking input.

The other errata fit worse. ARL042 (package C6 exit hang, Geyserville) is Fixed on HX. ARL068 (PCIe Gen5 L1 substate exit, with THREE STRIKE and INTERNAL TIMER machine checks) is No Fix on HX, but needs a Gen5 link in L1 substates and logs an MCE; our NVMe link is Gen4, Linux logs FADT indicates ASPM is unsupported here (evidence/native/N-274/hw/dmesg.txt), and I-116 shows no MCE. ARL004 is VMD-only, ARL031/041/043/049 are H-only (same PDF). The Meteor Lake RC6 exit errata MTL037/042 cited by Aspect 4 were not re-fetched, and their relevance to our iGPU rests on shared Xe lineage (inference). The Wa_22016122933 media-GT workaround cannot be the cause because XeGfx never touches GT1 (verification pass). Intel's text names no die-to-die, ring or fabric erratum for HX.

Confidence: Low (best candidate for phase 1 only; synthetic-only wording and phase 2 count against it).

2.2 The Linux Xe reports are a different failure class, and their evidence against C-states is weaker than reported

i915 16052 is an all-ones MMIO read at probe on a 7d67 iGPU (our device ID). Intel's triager called it a hardware/firmware power-sequencing race, noted LLM-assisted triage, asked for cold versus warm, dGPU disabled and another BIOS, and set the issue to close on 2026-10-27 without data. In xe 9168 the freezes keep the kernel alive, and in 8678 holding forcewake did not stop the acknowledgement stall. Verification pass therefore treats them as unlike our whole-machine stall with an xnu panic, and I agree.

The claim that 9168 rules out C-states does not hold. Its reporters are ARL-H, where ARL037 is Fixed, so they cannot test it, and the reporter who used intel_idle.max_cstate=2 with DC, PSR and FBC off still saw four power-offs on 2026-10-27, but 2.3 shows that setting leaves a core C6-class state on. What the reports show is a shared power-sequencing weakness in the 7d67 and 7dd1 families, not a CPU idle verdict. One data point from our probe: the 47-minute Linux 7.0 capture, which had no stall, logs Invalid mmio detected during user access from i915, three seconds after nouveau re-enabled the dGPU's HDA controller (dmesg; message source intel_uncore.c). One occurrence is not evidence, but it sits beside a dGPU power event, which is what Intel asked about (inference).

Confidence: Medium (issue text verified 2026-10-27; mapping to I-116 is inference).

2.3 max_cstate=2 does not exclude core C6, and macOS gives us no C-state counters

Linux has no Arrow Lake table in intel_idle; the driver falls back to ACPI _CST and honours intel_idle.max_cstate there (intel_idle.c). An Arrow Lake report shows _CST MWAIT hints 0x0, 0x21 and 0x60 (Unraid); Meteor Lake's table uses 0x20 for C6 and 0x60 for C10 (same intel_idle.c), so 0x21 is a core-C6-class state and max_cstate=2 keeps it (inference). Aspect 4 and Aspect 15 said Arrow Lake does not use intel_idle and the knob is not the lever; the source shows the fallback, so I overrule them.

On macOS, XCPM runs under a Comet Lake CPUID spoof (Cpuid1Data 55060A00 in our OpenCore config), and LegionCpuProbe publishes no residency counters. Package C2 needs all cores in C6 or deeper and graphics in RC6 (Intel datasheet, H/U parts). The registers worth reading are the common ones: core 0x3FC to 0x3FE, package 0x3F8 to 0x3FA, 0x60D and 0x630 to 0x632, 0xE2 (C-state config, CFG lock), 0x34 (SMI count) and the MCi_STATUS banks from 0x401 (Intel SDM). Whether Arrow Lake implements each address is unverified.

Confidence: Medium (kernel source read directly; the 0x21 mapping and the MSR list on this die are inference).

2.4 Microcode 0x11b and BIOS S2CN26WW are not the newest, but nothing ties newer ones to ARL037

We run microcode 0x11b (macOS reports 283; Linux logs Current revision: 0x0000011b with no update line, N-274 dmesg). Intel shipped 0x121 on 2026-05-12 (release) and 0x122 on 2026-08-11 (release) for the 06-c6-02 B0 part, after 0x11a (2025-11-11) and 0x11b (2026-02-10). Aspect 5 said three newer revisions; only two exist. The notes say only "Update for functional issues" and cite the same spec update, so "0x121 fixes ARL037" is a guess. Newer microcode over old firmware has broken boot on other parts (issue 112, 113).

Lenovo's S2CN26WW (readme 2026-03-24, catalog 2026-05-06) is the newest BIOS for 83F0 and changes only "Update Intel CSME", EC untouched (readme); S2CN27WW returns 404 (probe). The CSME version is unstated. Sibling Lenovo notes cite 19.0.5.x against Intel's August 2026 fix level 19.0.11 for Arrow Lake S/HX (INTEL-SA-01427), so ours is probably older (inference); that is a security matter, not stall evidence. No newer firmware exists to flash, and I found no source showing macOS loads Intel microcode files itself (inference).

Confidence: High for revisions and BIOS state; Low for any link to I-116 or I-118.

2.5 The I-118 evidence cannot tell an automatic reset from a hang ended by a power cycle, and no firmware watchdog fits

In N-292 four OpenCore starts in a row ended at EB|LOG:EXITBS:START after two Ubuntu probe sessions, with no macOS output or panic (N-292 README). That line marks where OpenCore's log stops, not where the machine died: the passing cold boot N-293 ends on the identical line (evidence/native/N-293/opencore-2026-10-27-174540.txt). The handoff still asks what the screen showed. "15 to 40 s after EXITBS" is an upper bound that includes firmware POST and possibly a manual power press. From the log stamps I computed 33, 25 and 19 seconds from each EXITBS to the next OpenCore start; a shrinking interval is not what a fixed timer gives. The first start was slower in firmware (229 ms against 68 to 81 ms at "Boot order has first option as the default option"), consistent with a cold start but not proof, so "warm-only" is unproven.

The UEFI boot-services watchdog defaults to five minutes and stops at ExitBootServices (UEFI 2.11); OpenCore also clears it, and all six logs print OC: Watchdog status is 0 (Configuration.tex). Linux's iTCO heartbeat defaults to 30 s, inside the window (iTCO_wdt.c), but N-274's dmesg has no iTCO line, so the driver probably never bound. Aspect 15 also said OpenCore reports reset causes through StartupPowerEvents; that is wrong, the option only sets a Data Hub property (Configuration.tex). The firmware reset register is an SMI write (port 0xB2, per Aspect 15), so a reset may run SMM code (inference).

Confidence: Medium (logs and sources read directly; whether any restart was automatic is unknown).

2.6 State that could survive a restart after Linux: GSP, microcode, VT-d

The mechanism with the best public precedent is the NVIDIA GSP. Its protected region (WPR2) stays up when Linux unbinds the driver (nova-core unload v5, mxtools PR 559), and the open module fails early with NV_ERR_INVALID_STATE when it finds WPR2 already up (kernel_gsp.c); a GB203 report describes WPR2 latched across warm reboots (open-gpu 1353). Our probe started nouveau on the GB206 with GSP RM 570.144 (dmesg). Against it: those failures appear as a failed GPU init in the next OS, not a silent reset, and a Hybrid boot keeps the dGPU idle.

Microcode comes second. An OS-applied update lasts until power is removed; kernel documentation does not say so and I could not confirm it for this CPU, though 2019 reports on older Intel parts treated it as normal (Arch FS#64498, USN-4182-3). N-274 did not update (0x11b before and after); whether the 10-24 sessions loaded 0x121 or 0x122 is unknown and takes one dmesg line to settle. Third, Linux skips disabling VT-d translation for an Intel iGPU with device ID prefix 0x7d, and it fired in N-274 (iommu.c); a platform reset clears DMAR registers, so carryover is unlikely (inference). The EC is a candidate with no evidence either way.

Confidence: Low (each carryover mechanism is plausible and none is shown).

2.7 Arrow Lake Hackintosh practice: VT-d off, X2APIC gating, MADT type 9, and a Legion that does not follow the pattern

The community's EXITBS cure is VT-d off: 1401 2.6.0 added a BIOS checklist item for 12th-gen and newer Intel including Core Ultra, because it got machines past EXITBS:START (1401 #10, #11, #53, #58) (changelog). On an Insyde laptop the VT-d row was hidden behind X2APIC and turning X2APIC off exposed it; the same thread found ProvideCurrentCpuInfo = true mandatory on Arrow Lake-H, found CpuTopologyRebuild made failures unrecoverable, and cleared an APFS respawn loop with SetApfsTrimTimeout 0 (1401 #58). 1401's own Arrow Lake laptop default enables CpuTopologyRebuild, which that reporter's test contradicts; we keep it off. 275HX reports in #44 and #49 show the same handoff stop. DevirtualiseMmio guidance is split: off on laptops, on for Core Ultra 200 desktops (changelog).

The Legion breaks the pattern. Linux sees DMAR with two DRHDs and VT-d active for graphics (dmesg), so firmware VT-d is on, yet N-293 reaches the desktop with DisableIoMapper set (docs/session-handoff.md). So "VT-d off" is not universal. This is inference: the community's "hang at EXITBS" reports may also be a last log line, as in 2.5. Our MADT fix (only type 9 entries, APIC-LAPIC.aml) is ours, confirmed on a second 275HX laptop per Aspect 14 (not re-checked).

Confidence: Medium (1401 text read 2026-10-27; second-laptop confirmation not re-verified).

2.8 A decisive, cheap I-116 experiment: separate the waker, the instrumentation and the C-state

Treat the waker as a hypothesis. XeGfx 0.0.44 added xegfx.irqoff_check=0 and 0.0.45 added xegfx.gtawake=1|2, so the levers exist. Once the cheaper steps below have run, run a 2 by 2 through xe-guard (waker on/off, gtawake 0/2), with a fixed load (disk copy loop plus WindowServer), recording time to stall and a stopping rule fixed in advance (for example stop an arm pair after three stalls in one arm and none in the other, or after a session budget). A 30 minute arm may show nothing, since N-290 passed 900 s and died at 88 minutes, and every stall ends in a panic or a hang with the risk of APFS rollback, so the budget should be small. The last uncontrolled death came at 88 minutes under APFS resize I/O (N-290 README), so one session per arm is meaningless.

Add readers: try powermetrics for C-state residency, and if it is empty add the core/package MSRs and 0x34 to LegionCpuProbe (a kext change). Before it, run one session with debug.legioncpu.{pl,hwp,epp} at stock values (a sysctl, no kext change and no reboot), because LegionCpuPower 0.4.1 was loaded in N-290 and Linux ran at stock limits. Then add a control arm with low-priority spinner threads that keep cores out of C6; it also changes power, temperature and the LegionCpuPower guard (10 W steps at 100 C), so it is not a clean C-state control: if stalls vanish, the cause is idle-state related and ARL037 gains weight; if not, drop it. After the next panic, read the MCA banks from 0x401 on first boot (survival across a warm reset is unverified). Raising slto_us (a boot-arg, so an NVRAM write that needs Bash's OK) shows whether a stall is finite, but only for stalls between the old and the new timeout, and it may waste a reboot; a TSC-gap log in XeGfx answers the same question passively. Never pair it with tlbto_us=0, which turns the panic into a trace line and loses the one artifact I-116 produces. A weak comparison is Linux: the 47-minute N-274 capture had no stall, but it ran without WindowServer, XeGfx or LegionCpuPower and at stock power limits, so it differs in at least four ways; a 2-hour Ubuntu run with the same disk loop and an iGPU workload shows whether the platform alone stalls.

Confidence: Medium (design is sound; none of these runs exists yet).

2.9 A decisive, cheap I-118 protocol: four columns and four arms

Add to every attempt row: cold or warm, microcode before and after, GPU mode (Discrete or Hybrid), and a phone photo of the verbose screen. Then run arms three times each. A: Ubuntu probe, log dmesg | grep -i microcode, iTCO, wdt, WPR2, then full power-off and a 30-second wait before macOS. B: same session, then a plain warm restart. C: as B, but with nouveau blacklisted so Linux never starts GSP. D: macOS-only warm restarts as baseline. Add a POST-time calibration (time a deliberate power press) to learn what "15 to 40 s" can contain.

Reading it: if A passes and B fails, power-retained state matters, and C separates GPU from microcode (a pass in C points at GSP/WPR2; a grep of the NvGfx log for "unexpected WPR2 already up" backs it). If B fails with equal microcode before and after, microcode is out. A long gap before the next POST means a manual power cycle is part of the story. All of it uses the existing probe stick.

Confidence: Medium (cheap and falsifiable; no arm has been run).

Theme 2 key insights

  1. Each leading I-116 explanation covers only part of the evidence. ARL037 gives one silent core but not 23 silent CPUs (Intel 834774, xnu mp.c), and the similar Xe reports keep their kernels alive (xe 9168). So I-116 is more likely a machine-wide stall than one core's idle exit. Confidence: Low.
  2. "C-state" is untested, not disproved. max_cstate=2 still allows a C6-class state (intel_idle.c, Unraid), XCPM thinks the CPU is Comet Lake, nothing publishes residency, and the waker result is confounded. Confidence: Medium.
  3. "EXITBS" in I-118 labels where OpenCore's log stops, not where the machine died. Passing and failing boots end identically and no firmware watchdog is known to cover 15 to 40 seconds (iTCO, TCO, ME and EC watchdogs are not excluded; Unverified) (evidence/native/N-293/opencore-2026-10-27-174540.txt, UEFI 2.11). Find the real stage and whether a human ended it before testing hypotheses. Confidence: Medium.
  4. Cold versus warm is the variable both problems share and neither has recorded. Intel's triager asks for it (i915 16052), NVIDIA's WPR2 reports hinge on it (open-gpu 1353), and N-293 passed cold where N-292 failed after Linux. One column fixes this at no cost. Confidence: Medium.
  5. No firmware fix is known to exist, so there is none to wait for. The BIOS is newest, newer microcode has no public ARL037 mapping, and ARL037 is Planned Fix (Lenovo, microcode 20260811). I-116 work is a driver-side workaround or a measurement. That the BIOS is the newest is checked; that no fix exists is an absence claim from one search pass. Confidence: Medium.

Theme 3: Graphics on macOS: NVIDIA via NullMoth/NvGfx and Intel Xe peers

Scope: NullMoth's driver and our NvGfx fork on the RTX 5070, and every public Intel Xe peer next to our XeGfx on the Arrow Lake iGPU. Where an aspect report and a verification pass file disagreed, the verification pass verified fact is used and the text says so. Project-internal evidence (handoff, guard captures, tracker) is marked "local" because it is not published.

3.1 The pending N-294 package carries four third-party fixes, and its base change confounds the boot

NullMoth 2.6.2 is the current upstream release and carries the same driver as 2.5.5 (see the release list). Our nvgfx-2.6.2 branch rebases onto it, so the 2.5.4 and 2.5.5 driver changes arrive in the same boot as ours (local, docs/session-handoff.md, 2026-10-27). A failure at N-294 cannot be pinned on one change, and the attempt record should say so first.

Four third-party items since 2026-10-20 matter. PR 385 (pointer fields in the MPS depthwise translation) is in the package and passes our in-process translator test (local, evidence/native/I-117-translator-pr385). The sampler-slot analysis in 363 (blocky backdrop blur) is in. The hi-res mode flag proposed in 354 is in as f48eb4033e77; its effect for us is open, because our 12-byte scale-resolutions override already listed scaled modes on 26.7.1. Issue 412 is a third-party tester measuring our drag-stall commits on 2.6.2 (3.6).

Not adopted: the retry patch in 419 (conflicts with 385, 3.5), the brightness change in 312 (no licence stated), the hash swap in 187, and community HiDPI hacks. Expect heavy translation work after install: 370 measured 30 to 60 percent of a core on a cold cache, and our async cache writes should shorten it.

Confidence: High (checked 2026-10-27) for what is in the package; Medium for effect, none of it measured on this machine yet.

3.2 ArrowWhatever's userptr unwire race window also exists in our xg_vm.c, but it is not the I-116 signature

ArrowWhatever patches NvGfx and XeGfx on the same silicon as ours (275HX, 7d67, macOS 26.7.1). Its userptr note describes a panic with the text xegfx: vm: freeing wired page ... (ref 0x1). Pin and unwire lock separately, so the last unwire decides a page is free, and while it prepares the free outside the lock another thread pins the same page; the page reaches the free list still wired. The patch adds one unwire entry that drops the count and unlinks the run under xg_vm_mtx, plus a guard in vm_page_free() for user-held pages. The author reports a soak with zero panics; the README says the project is mainly LLM-driven, and nobody else has reproduced it.

I read our xe-2.6.2 xg_vm.c against that. The lookup takes the mutex and returns (lines 442-455); the pin path then raises ref_count with an unlocked add (1744-1810); unwire drops and frees outside the lock (894-910). The window is real in our tree.

It is a latent race, not our current failure. None of the captures I checked, N-290 included, carries the freeing wired page text; I-116 is a whole-machine stall that ends in a CPU rendezvous panic with 23 of 24 CPUs stuck (local, evidence/native/N-290). This is inference: the race may need more WindowServer or Metal-client churn than our runs reached. The patch files are under the same PolyForm Noncommercial licence as our fork.

Confidence: Medium (checked 2026-10-27) that the window exists (our code read); Low that it explains anything we saw; Unverified for the soak (self-reported).

3.3 zep245's NVRAM trace cost and GT hold are cheap A/B tests, and its "TLB flush timeout" name is a trap

zep245's design log (a Tiger Lake machine) has two findings that map onto I-116. First, NVRAM breadcrumbs: a flip took about 700 ms because the commit-trace patch wrote and synced NVRAM about 37 times per atomic commit, against about 1.3 ms with the flip off; dropping the breadcrumbs after WindowServer opened the framebuffer fixed it (b125, b126). Ours writes xegfx-step and xegfx-accel and calls an NVRAM sync in xg_trace_write, switched by xegfx.nvram_trace, and every guard capture from N-223 to N-290 ran with it at 1 (local, evidence/native/N-2xx/guard/sysctl.txt). The trace-off run has never been done; how often we call it, and what our NVRAM backend costs, are unmeasured.

Second, the GT hold: dropping the boot-time keep-awake hold led to a panic 16 s after a cold boot, so zep245 holds through boot and releases 90 s after attach (b148); a one-shot RC6 test later showed that allowing RC6 was fine (b139). XeGfx 0.0.45 carries gtawake=1|2 and irqoff_check=0 as A/B switches (local, handoff). The panic line needs care: "NMIPI for unresponsive processor: TLB flush timeout" is an xnu CPU-side message about a CPU that did not answer a TLB shootdown with interrupts off. It is not a GPU or GuC invalidation timeout such as the one tracked in xe 8678.

Do not over-read the fit. A GT hold is not expected to cure the GuC late-ack bug (the A/B in 8678), and XeGfx skips the media GT, so the Wa_22016122933 root cause cannot explain I-116. These tests probe a possible separate CPU-side cause.

Confidence: Medium (checked 2026-10-27) that the NVRAM cost is real on zep245's machine (own log); Unverified that it applies to ours.

3.4 Intel Xe peers compared with XeGfx: nobody has a proven daily driver on Arrow Lake, including us

Our state: XeGfx 0.0.45 first reached stages 1 to 4 on 2026-10-21 (issue 2), and the accelerated desktop ran 88 minutes at N-290 before I-116 killed it (local, handoff). It is not a daily driver, and the stall is unresolved.

ArrowWhatever is the only peer on our silicon. It claims a zero-copy GGTT flip and a deferred K9 flip at about 60 fps (zero-copy, K9), with manual bring-up after boot and one WindowServer restart (route). The aspect report rated it tier S; the audit rates it B (self-reported, LLM-driven, no reproduction), and the audit wins. jwx29's meteor-lake-local (155H, 7d55, macOS 15.8.1) passes stages 1 to 7 and says stability was not established; our review found a small glue delta on our 0.0.44 and no I-116 fix (local open loop). VedCloud (MTL-U 7d45) reports a lost-wakeup GuC TLB timeout fixed.

Two projects are not competitors. WhateverXe 0.6.1 says no Xe-LPG or Meteor Lake support is planned. nmx-intel (Raptor Lake) composites on NVIDIA and flips to the Intel panel, a Hybrid fallback idea rather than an Xe driver. NullMoth's own NMXGPU has an open report where i915/xe never attach on Arrow Lake-H (297). Breadth for every Xe peer is "anecdote" (scout).

Confidence: Medium (checked 2026-10-27) for the ranking; every peer claim is self-reported (tier B at best).

3.5 MPS translation failures on NVIDIA are open upstream, and one patch is not safe to copy

Geekbench 6 and 7 hit depthwiseConv_3x3 with "Function vs Private pointer phi" in 377, the same kernel's CPU translation exceeds 180 s in 111, and Vision barcode detection aborts its host app in 334. The maintainer's position in 334 is that the kernel does not run on the GPU yet and that a private-pointer fix faults the GPU. So a translation that "succeeds" with null handles is a different failure from a clean error. PR 385 is the one candidate, and we carry it.

Issue 419 (Chrome WebGL2 context loss on 2.6.2) reports a local patch that cut translation failures from 53 to 0 and null handles from 24 to 0, with 18,066 frames at 64.5 fps, by retrying forward-fields four rounds. It conflicts with 385. The translator crate is LGPL-3.0-or-later, so reuse is allowed, while the repository's top level states no standard licence (LICENSE). This is inference: because a GPU-fault outcome exists, "failures dropped to zero" is not proof of correct rendering.

Confidence: High (checked 2026-10-27) that the failures are open and seen by several reporters; Low on 419's effect (one anecdote).

3.6 Window-drag stalls: one independent measurement supports our commits, and two state-cache commits carry a regression

Issue 412 is a tester on an RTX 5080 reporting stock 2.6.2 dragging at 85 to 100 flips per second with 63 to 124 ms stalls, and six of our commits removing them. Two state-cache commits made Alacritty text jump back, so the tester held them out. By commit message those match our repeat-pipeline skip and sampler-variant memo (inference: the match is by message and switch name); in our package both sit behind NVMTL_NO_PSO_SKIP and NVMTL_NO_SV_MEMO. The commit-time pass on its own queue is fc07ff5e145d.

Related reports point at the same area without proof: a missed frame about every 0.6 s on all apps (410) and frame pacing at 540 Hz (302). For N-294 the practical test is a heavily redrawing terminal (such as Claude Code itself) with the two switches on and off.

Confidence: Medium (checked 2026-10-27); one independent tester, and the regression is one report.

3.7 HiDPI scaled modes: the hi-res flag and a pixel-rate rule explain more than the earlier "1.3x ceiling"

Scaled modes validate but never reach the list in 354, which points at kDisplayModeValidForHiResFlag (0x00800000) missing in getInformationForDisplayMode (nvrm-fb.cpp line 3028 at 2.6.2). Issue 360 reports 1920x1200 HiDPI refused at 165 Hz but accepted at 60 Hz, and 341 covers HiDPI above half native on 1440p and 1600p panels.

Three corrections to the aspect report. The limit fits a desktop pixel rate (width x height x refresh) better than a ratio cap, with display stream compression and link bandwidth as caveats; "about 1.3x" was a simplification. The 12-byte versus 16-byte scale-resolutions tension between macOS 15 and 26 was largely settled by a later 15.8.1 data point (16-byte also hidden, 12-byte with backing sizes works). And the 12-byte finding in 341 came from our own account, so it is not independent. The community hacks (a 64-timing cap with nvfbscalehz, a 26-byte NVRM patch) are unvalidated by anyone else.

Confidence: Medium (checked 2026-10-27); the flag is code reading plus our mode list, the rate rule is a fit to three reports (inference).

3.8 HDR stays blocked by one self-reported trace; Chrome flicker is cured by turning Graphite off

HDR is an old request (30). The only mechanism offered is that CoreDisplay forces 8 bits per component when the framebuffer class name contains "NVDA", and that renaming it kills the Metal compositor; that trace in 341 came from our own account, so the aspect report's framing as a community finding is wrong. Treat it as one unreproduced trace.

Chrome flicker has a measured cure: Skia Graphite disabled fixed it in 333, and NVMTL_SCHEDULE_AFTER_SURFACE_WRITES=1 cured the Simulator flicker at a speed cost in 293. On our box Chrome 155 runs Graphite on the NVMTL plugin; a launcher without it exists, effect unconfirmed (local note, 2026-10-22). ANGLE Metal on NVIDIA was opened for Discord in 348 (closed).

Confidence: Low (checked 2026-10-27) for HDR (single self-reported trace); Medium for the Graphite cure (few reporters).

3.9 Blackwell laptop power: one GSP control lifts 50 W to 115 W for us, and the upstream platform handler gap is open

On our machine the RM gets no platform power input by default, the VBIOS limit is 50 W, and Windows runs the same GPU at 115 W (power.md). GSP control 0x20800AD2 (CONFIGURE_TGP_MODE, in ctrl2080internal.h) lifts the enforced limit, and boot-arg nvrmtgp=1 sends it from nvrm_power.cpp on AC. NVIDIA's laptop comparison gives a 50 to 100 W TGP range for the 5070. I could not extract the figure from Lenovo's PSREF sheet here, so reconciling the three numbers is open.

Upstream shows the same problem class on Linux: 1389 (Lenovo RTX 5070 Mobile, _DSM NVD1 not found), 1393 (platform request handler fails, power capped), 1344 (closed; Legion capped near 55 W) and 1162 (NVPCF not bound). The aspect report suggested diffing 615.71.10 for the 1389 fix. Checked: 615.71.10 is 615.71.09 plus a version bump, and the 615.71.09 to 615.78.08 diff shows no platform-request or power-policy logic change, only regenerated GSP firmware data and unrelated files. This is inference: any fix lives in the firmware blobs, which a source diff cannot show.

GSP stability issues in the same tracker (heartbeat Xid 119 in 1353, frozen power telemetry in 1237 and 1287, a boot hang in 1421) are why the TGP step stays conservative: AC only, polled, on change.

Confidence: High (checked 2026-10-27) for the 50 W to 115 W control on our machine (our N-73 measurement); Low for any upstream fix location; Unverified for Lenovo's own figure.

3.10 The firmware-memory panic is real, and the panic string alone does not name the cause

LegionCbmrFix (our public repo) unloads Microsoft's cbmr_driver.efi, which this BIOS loads at 0x180000000, and reserves its 164 KiB. Without it the Legion panicked in vm_page_validate_no_references within 4.5 to 10 minutes of memory churn, with or without GPU drivers; the README records a 360 s churn test passing and no panic of this kind since 2026-10-16. jwx29's README reports the same panic on its Meteor Lake machine and confirms the workaround unloads the image there, but says post-workaround stability was not established.

The same panic text appears in NullMoth issue 328 on a different laptop (GTX 1650), at a page address far outside our CBMR range. This is inference: that report is not the firmware-memory case, and the panic string alone cannot decide. Matching on the text will misattribute.

Confidence: High (checked 2026-10-27) for the Legion cause and fix (own machine, README test); Low for any other machine.

Theme 3 key insights

  1. The Intel work is converging on the same two suspects, and neither is the GPU. ArrowWhatever's userptr race (a lock gap in pin and unwire) and zep245's NVRAM cost (syncs in a hot path) are both glue-code bugs, both plausible in XeGfx, and neither matches I-116's signature. They are cheap to close. The userptr race is unlikely to be the cure; the NVRAM trace is a different matter, because native NVRAM writes on EDK2-derived firmware normally run in System Management Mode (whether this Insyde build does is Unverified), so the trace is a cause candidate and not only hygiene. Sources: userptr note, DESIGN.md. Confidence: Medium.
  2. Third-party evidence on both vendors is thin, and part of it is ours. The HDR trace and the 12-byte HiDPI finding came from our own account, the drag measurement is one tester, and the ArrowWhatever soak is self-reported. What is independent: the MPS failures (several reporters) and the Chrome Graphite cure. Sources: 341, 412, 377. Confidence: Medium.
  3. A readable N-294 result needs the base change split from our changes. 2.6.2 carries the 2.5.5 driver, and our package adds fixes for MPS, sampler slots, scaled modes and drag, so the result should be logged against both sets, with the two state-cache switches and a cold-cache note. Sources: release, 412, 370. Confidence: Medium.
  4. Panic text identifies less than it seems to. vm_page_validate_no_references also appears off-range on another laptop, and "TLB flush timeout" is a CPU shootdown in xnu while the Xe tracker uses the phrase for GPU-side invalidation. Read the address and the stack, not the headline. Sources: LegionCbmrFix, 328, xnu mp.c. Confidence: High.
  5. The Blackwell power question changed from "find upstream's fix" to "ours is the fix". The 615.71.10 and 615.78.08 diffs show no platform logic change, and our one GSP control already lifts 50 W to 115 W, so waiting on upstream source buys little; the open items (envelope numbers, blob changes) are documentation work. Sources: compare, power.md, 1389. Confidence: Medium.

Theme 4: macOS Tahoe 26.7.2, MT7925 Wi-Fi and Bluetooth, and Legion Gen 10 Hackintosh reports

4.1 macOS 26.7.2 final is build 25G332 (2026-10-26); the "25G330" in our earlier notes is release candidate 3

AppleDB lists four 26.7.2 builds: 25G320 (RC, 2026-10-06), 25G325 (RC2, 2026-10-13), 25G330 (RC3, 2026-10-19) and 25G332 (release, 2026-10-26). Dortania's KDK is tagged 25G330, and our own maintainer reply in mt7925-hackintosh-wifi issue 4 first said "25G330" before correcting itself to 25G332. Where an aspect report or tracker row calls 26.7.2 "25G330", the later verified record wins: the final build is 25G332.

I checked on the Legion today that Apple's catalog still serves several builds: softwareupdate --list-full-installers lists 26.7.2 as 25G332 and as 25G325, and does not list 25G330. The rebuilt 25G332 kernel reports xnu-12377.161.15.701.48~2 (Darwin 25.6.0, built 2026-10-12), against 700.19~2 on the Legion's 25G241. The Darwin version is the same on both, so a gate keyed on it cannot tell them apart; only the xnu tag can. The Intel delta patches for 25G330 and 25G332 give identical BootKernelExtensions.kc, SystemKernelExtensions.kc and kernel (25G325 differs). This is inference: a 25G330 tester's kernel-side behaviour is therefore a fair proxy for 25G332, but only for those three files.

Confidence: High (checked 2026-10-27): dates from AppleDB, catalog listing and kernel string read by me.

4.2 The 26.7.2 kernel collections can be rebuilt offline from the 25G241 files and Apple's Intel delta OTA, and the result is verified byte for byte

Apple serves an Intel delta from 25G241 to 25G332, 1,358,475,023 bytes and readable with HTTP Range, listed in the appledb entry, so only the needed members are fetched. It holds BXDIFF50 patches for BootKernelExtensions.kc (about 1.7 MB), SystemKernelExtensions.kc (about 0.6 MB) and the kernel (about 1.5 MB), in the format blacktop/ipsw implements: a header with sizes, a 20-byte result SHA-1 and a 20-byte base SHA-1, then compressed control, diff and extra streams.

What I verified myself: each patch's base SHA-1 equals the SHA-1 of the live 25G241 file on the Legion; the patched output's SHA-1 equals the patch's result SHA-1; and its size and CRC32 equal the entries in the OTA's own post.bom. That is a byte-level fact, not a plausibility argument. Kext binaries have lived only inside these two collections since Ventura and Apple ships them prebuilt (only the auxiliary collection is built on the Mac), so the rebuilt files hold every kext binary the 25G332 boot uses, including IO80211Family 1200.13.1, the version in the issue 4 reporter's logs.

Nothing was installed and no Apple binary goes into git. The route needs the exact base build, so it works from 25G241 only, and it covers kernel-side files only: for user-space files the OTA gives just a bill of materials (see 4.5). The scripts were standard-library Python, run with -I on files in a scratch directory.

Confidence: High (checked 2026-10-27): hash, size and CRC32 equalities were computed, not reported.

4.3 kcabi finds the 25G332 layouts unchanged and three real function differences; whether they matter to MtkWlanNative is unsettled

kcabi compares IO80211Family, IOSkywalkFamily and AppleBCMWLAN between two kernel collections: instance sizes, vtables, request tables and disassembled functions. Against 25G241, the sizes, vtables and request tables are unchanged. Of 1154 compared functions, 1121 are identical and 33 differ; 31 of those differ only in addresses or ordering. The three real differences are one field offset in _kern_netif_queue_rx_enqueue (0x4d8 becomes 0x4e8) and the immediates in AppleBCMWLANNANInterface::enableDatapath and ::disableDatapath. By my arithmetic every changed immediate in the two NAN functions moves by exactly 0x27, which looks like one inserted structure rather than six unrelated edits.

This is inference: the NAN (Wi-Fi Aware) functions are in Apple's Broadcom driver class, which MtkWlanNative does not subclass, so they probably do not matter to us. The rx_enqueue change is the one to read, because a field moving by 0x10 inside a queue structure breaks any code that accesses that field directly instead of calling an API. Whether MtkWlanNative does is not settled; it needs a disassembly review of the call site and a boot test on a real 25G332 machine. kcabi compares binaries, not behaviour, so unchanged layouts do not prove the Wi-Fi menu will attach.

Confidence: High for the measured differences, Unverified for their consequences (checked 2026-10-27): no 25G332 boot of our kexts has happened.

4.4 MtkWlanNative declines 25G332 on the xnu tag alone, so the public break is a gate decision rather than a measured incompatibility

MtkNativeAbi.hpp starts the native front end only when the running kernel's xnu tag is on an allow-list and the live class sizes match. The shipped allow-list in the same repository has one entry, 25G241 (700.19~2). A refusal is recorded in the provider property MtkNativeDeclined; MtkNativeLast exists only when the front end started. After a decline MtkWlan falls back to its Ethernet front end: en1 with no Wi-Fi port.

That matches issue 4: MtkWlan 0.12.1 and MtkWlanNative 0.4.13 load, en1 is up, no Wi-Fi menu, and the maintainer reply gives the same diagnosis. The reporter's empty MtkNativeLast is consistent with a decline but is not proof, and nobody has captured MtkNativeDeclined yet, so the real refusal reason is unrecorded. This is inference: with the tag outside the list the size check never runs, so the unchanged sizes of 4.3 could not have helped. The reporter is on a desktop board with a MediaTek card, not a Legion, but the gate does not depend on the motherboard.

Confidence: Medium (checked 2026-10-27): code reading is direct, the link to the reporter's machine is inference.

4.5 LegionBtFix is pinned to 25G241's bluetoothd, which changed in place in 26.7.2; the page hashes were not checked against it

LegionBtFix patches two instructions of bluetoothd in memory and gates on a byte window plus a SHA-1 of the whole 4 KB page, for 25G241 only. The OTA bill of materials lists /usr/sbin/bluetoothd at the same size in both builds (23,555,568 bytes) with different CRC32 values, so the binary changed without growing, and Apple's 26.7.2 notes include one Bluetooth entry. Bluetooth patterns are known to be build-specific: BrcmPatchRAM issue 39 is a bluetoothd pattern that stopped matching. This is inference: the page-hash gate will probably refuse on 25G332, the safe outcome, but the I-047 crash loop could then return unprotected.

I could not apply the bluetoothd delta to check the pages. The patch's base SHA-1 equals neither the live universal binary nor its x86_64 slice. For five other files I compared (bluetoothaudiod, bluetoothuserd, true, cfprefsd, airportd) the live CRC32 equals the OTA's pre.bom, but bluetoothd does not (live 2381493249, pre.bom 4287939534). I have no explanation: an earlier modification of the on-disk binary and a BOM that records the file in another representation are both possible. It does not change the conclusion that LegionBtFix is untested on 25G332.

Confidence: Medium for "binary changed" (BOM comparison), Unverified for the page hashes (checked 2026-10-27).

4.6 The one 25G332 reporter's Bluetooth returned after a power drain, which points at card state rather than the OS version

In issue 4 the reporter's first USB listing showed no MediaTek device; the maintainer advised a full power drain and a BIOS Bluetooth check; later that day he wrote that Bluetooth works and posted a listing with a "Wireless_Device" at vendor 5075, product 13826, which is 13D3:3602 in hex (my conversion; the line order in his paste is ambiguous). The step he took is not recorded, and his Wi-Fi is still unresolved, which fits 4.4.

The ID is in Linux btusb v7.3, and MtkBt matches by vendor (Foxconn 0489, IMC Networks 13D3, MediaTek 0E8D), so it would claim the device. This is inference: a Bluetooth function that is missing from the USB bus and returns after a power cycle looks like a combo-card state fault, and our own issue 1 already documents the card wedging over a warm restart. Whether LegionBtFix or MtkBt loaded on his desktop was not asked. A tracker row saying "Bluetooth lost on 26.7.2" would overstate this evidence, and so would "26.7.2 is Bluetooth-safe".

Confidence: Medium (checked 2026-10-27): one anecdote with an unrecorded fix.

4.7 Apple's 26.7.2 security notes are large and touch the kernel, Bluetooth, Wi-Fi and graphics components, but say nothing about kext layouts

I parsed the CSAF data behind APPLE-SA-149522: 213 CVE entries under 93 component headings, among them Kernel (17 entries), Bluetooth (1), Wi-Fi (3), AirPort (1) and graphics components (IOSurface, Metal, IOGPUFamily). The notes describe fixes, not ABI, so they cannot tell us whether IO80211 or IOSkywalk layouts moved; 4.3 does that. They do show that a rule of "only the kernel tag changed" would be false.

For NvGfx and XeGfx the only point is that graphics-family components changed. No report in the corpus tests an NVIDIA or Intel iGPU driver on 25G332, and no Arrow Lake data on 26.7.2 turned up. The day-one reports are from stacks that avoid private IO80211 layouts: InsanelyMac's 26.7.2 thread has users on itlwm, SimpleBCM and SimpleHDA updating to 25G332 without trouble, and I found no acidanthera issue or commit that mentions 26.7.2.

Confidence: High on the counts (parsed), Low on what they imply for our drivers (checked 2026-10-27).

4.8 Intel Macs end at Tahoe, which makes staying on 26.x workable but each point release a recurring ABI cost

Apple's macOS page lists macOS 27 "Golden Gate" as compatible with Apple silicon Macs only, which agrees with the OCLP discussion that Tahoe is the last Intel release. How long Intel Macs keep receiving Tahoe security updates is only press-relayed (three years), not a primary Apple statement.

For the Legion this matches Bash's position of staying on Tahoe 26.x until support ends. The cost is that every point release moves the xnu tag, can change bluetoothd (4.5) and user-space daemons (the OTA bill of materials shows airportd growing from 3,228,064 to 3,228,096 bytes), and so re-opens the per-build pins of MtkWlanNative and LegionBtFix. This is inference: automating the kcabi refresh and the OTA route (4.2) is worth more than any single 25G332 fix.

Confidence: Medium (checked 2026-10-27): the model list is direct, the support horizon is press-relayed.

4.9 Other MT7925 projects for macOS are new, share the per-build pin and have no 25G332 results; Linux has fixes that mirror our open problems

The set, with creation dates from the GitHub API: laobamac/SimpleMtkWlan (2026-05-26, GPL-2.0), flxxxxddd/SimpleMtkWlan v1.5.0 (2026-10-13), mnnobre/AirportMtkWlan (2026-10-14), thanhnndev/mt7925-macos-wifi and HackSucks/mtwlm (both 2026-10-26), and an unread fork of our own repo. The thanhnndev README calls itself experimental, mostly AI-written and tested on one laptop; it reports native mode on 25G241 at 176.6 Mb/s down and 65.0 Mb/s up (HE 160 MHz, 2x2), WPA2-PSK and mixed WPA/WPA2 only, and keeps abi/native-wifi/ dumps for 24H32 and 25G241. It is tied to one build exactly as ours is, so the 26.7.2 wall is shared by everyone on the private IO80211 front end.

On the Linux side, ac22c8c723c6 keeps the join ROC until the station is authorized (the 4-way handshake area), d12a54be2604, 8d2f5990cd42 and c781b74c3fd0 harden power-management and reset paths (our I-081 warm-restart problem), and b3078bb2ee12 and e3ac0d9f1a20 reset on a WMT timeout and accept short FUNC_CTRL events (MtkBt's "status 255"). The linux-firmware repository has MT7925 builds stamped 20261016; our kexts embed 20260813, and no changelog exists for either. This is inference: these fixes address symptoms like ours, but a subject line is not a diff, and each needs a read against MtkWlan before anyone claims it applies.

Confidence: Medium (checked 2026-10-27): repository and commit facts are direct, performance claims are anecdotes, applicability is untested.

4.10 Arrow Lake Hackintosh reports converge on VT-d off or a DMAR drop and a type-0 MADT; two other 275HX EFIs differ from ours in exactly the two Booter quirks of our I-118 question

The most-reported fix for the silent stop at EXITBS:START on Arrow Lake is VT-d off: 1401 issue 10, issue 11, the 2.6.0 changelog and the core-ultra-drop-dmar rule in efi_rules.json. Issue 58, the best-documented chain, found the VT-d row greyed out until X2APIC was disabled (an Insyde laptop), then needed ProvideCurrentCpuInfo and SetApfsTrimTimeout 0; the reporter changed VT-d and the DMAR drop in one boot, so causality is two variables. The same rule file scopes arrow-lake-ctr to desktops, and a laptop default panicked in that issue.

Reading the actual plists, wsjj's Y9000P EFI (83F5, 275HX, BE200 Wi-Fi, panel on the NVIDIA GPU) and the ASUS FX608LP EFI both set SetupVirtualMap true and ForceExitBootServices false. Our OCEFI (read today) is the reverse, with DevirtualiseMmio off, ProvideCurrentCpuInfo on, and only the APIC table in ACPI Delete (no DMAR drop). Mountainatic's YaoShi16 EFI reports the same MADT shape (tier B, not re-checked) on a second 275HX laptop with a converted APIC-LAPIC.aml and deletes both DMAR and APIC. wsjj's README says ResizeAppleGpuBars = -1 while its plist has 0, so documentation drifts from config.

This is inference: the Booter difference is a candidate A/B for our resets after EXITBS:START (I-118), not a proven cause, and "VT-d off yields a type-0 MADT" is unverified because nobody has dumped the MADT before and after a BIOS change. None of these EFIs reports I-118-style resets.

Confidence: Medium (checked 2026-10-27): plist values and issue text are direct, causality is absent.

4.11 Lenovo-specific evidence is thin: LenovoLegionLinux carries our model's EC data, and the nearest hackintosh Legion repo is Raptor Lake

LenovoLegionLinux commit a897adf92a06 (2026-08-07) adds the Legion 5 15IAX10 (83F0) with BIOS prefix S2CN and EC chip ID 0x5508, shared with the LOQ 15IRX10, and 29571790b209 (2026-09-20) uses a level-index, speed-only WMI fan table across the 0x5508 models, citing level bytes at EC addresses F9F0 to F9F9. Our BIOS is S2CN26WW, so this is data about our own EC. This is inference: it is a read-only cross-check for the LegionFan curve code in LegionCpuPower, not something to write to.

BelikPePe-UA/legion5-15irx10-hackintosh is a Legion 5 15IRX10 with an i7-14700HX (Raptor Lake) on Sequoia, with Fn+Q mode events from WMI notify 0xE3 and GPU clock tools. It helps with keyboard and GPU power, not with Arrow Lake boot questions. In 1401 issue 44 a Lenovo 275HX owner reports an early page fault with no answer. No 285HX, Legion 16IAX10 or Legion Pro Gen 10 report turned up.

Confidence: Medium on the EC commits (direct), Low on usefulness (checked 2026-10-27).

Theme 4 key insights

  1. The Wi-Fi break on 26.7.2 is a safety decision in our own gate: the layouts kcabi checks are unchanged, but three function differences are unreviewed. Bluetooth is a separate question, since bluetoothd changed in place. The gate refuses on the xnu tag before it looks at sizes (4.4), while the offline kcabi run shows unchanged sizes, vtables and request tables with only one plausibly relevant function change (4.3). The cheapest next step is to review that one change and, with Bash's agreement, try an allow-list entry for reporters, not to wait for a full re-port. The unknown is real: no 25G332 boot of our kexts has happened. Confidence: Medium. Sources: MtkNativeAbi.hpp, kcabi.
  2. Offline reconstruction separates ABI preparation from the decision to update. Because the 25G332 kernel collections can be rebuilt and verified without installing anything (4.2), dumps, allow-list candidates and header refreshes can be prepared while the Legion stays on 25G241, and the same OTA's bill of materials already shows which user-space files changed (bluetoothd, airportd, 4.5 and 4.8), which kcabi cannot see. Confidence: High on the method, Medium on its reach. Sources: bxdiff50.go, APPLE-SA-149522.
  3. Bluetooth reports on 26.7.2 mix two causes, so neither "the update broke it" nor "the update is safe" follows. The bluetoothd binary changed at an unchanged size and Apple lists a Bluetooth fix, so LegionBtFix's pins are likely stale (4.5). Separately, the one reporter's Bluetooth device left the USB bus and returned after a power drain, which is a card-state fault our warm-restart issue already describes (4.6). Confidence: Medium. Sources: LegionBtFix, issue 4, issue 1.
  4. Outside Arrow Lake configs support a read-only BIOS look and an optional two-quirk A/B for I-118. Two other 275HX EFIs (not independent of each other's guide lineage, and neither reports a Linux-then-macOS sequence, which is where I-118 appears) run SetupVirtualMap on without ForceExitBootServices and the 1401 corpus converges on VT-d off or a DMAR drop, whereas ours has the opposite quirk pair and keeps DMAR (4.10). None of them reports I-118-style resets, so the A/B is a hypothesis, and our normal boots work. Confidence: Medium. Sources: ASUS FX608LP EFI, wsjj EFI, 1401 issue 10.
  5. Staying on Tahoe 26.x is viable, but each point release is a recurring cost for private-layout kexts, and the newest competitor shares it. macOS 27 drops Intel while 26.7.2 still carries a large security update (4.7, 4.8), and each release moves the xnu tag, bluetoothd and possibly user-space daemons; the newest MT7925 project has the same per-build pin (4.9). Automating the kcabi refresh and the OTA route is worth more than any single 25G332 fix. Confidence: Medium. Sources: Apple macOS page, thanhnndev/mt7925-macos-wifi.

Timeline and evolution

Scope: Legion 5 15IAX10 (Arrow Lake-HX 7D67, our XeGfx / NvGfx / MtkWlan, Tahoe 25G241). Last column is tier/confidence. Dates are UTC and primary unless marked. "gl" = gitlab.freedesktop.org (HTML behind Anubis; issue dates come from API JSON cached by the aspect agents, which I read but did not re-fetch). "inferred" means my arithmetic, not a published date. Never-invented rule held: gaps are marked.

1. Chronological table

Linux i915/xe, MTL/ARL

Date Event Why it matters URL T/C
2023-08-23 ARL-S device ID added under MTL (8940da9fe5f2), first in v6.7 ARL-S rides the MTL code path github.com/torvalds/linux/commit/8940da9fe5f2 S/High
2023-10-18 MTL force_probe removed (213c43676beb), v6.7 (tag 2024-01-07) i915 supports MTL by default github.com/torvalds/linux/commit/213c43676beb S/High
2024-01-18 Xe_LPG to Xe_LPG+ (84bf82f4f866), v6.9 7D67 reads graphics IP 12.70 github.com/torvalds/linux/commit/84bf82f4f866 S/High
2024-01-24 (API date; one report says 01-19) "Wake GT before sending H2G" (6d46d09a0d7d), v6.9 (tag 2024-05-12) GuC doorbell 0x1901f0 in a FORCEWAKE_GT range; in our drm-kmod base c16de0f github.com/torvalds/linux/commit/6d46d09a0d7d S/High
2024-03-06 xe ARL-H support (6a9b38cc68a0), v6.10 xe has ARL ids too github.com/torvalds/linux/commit/6a9b38cc68a0 S/High
2025-06-13 i915 #14469 opened (Core Ultra 9 185H, TLB invalidation) Oldest TLB-ack report on MTL gitlab.freedesktop.org/drm/i915/kernel/-/issues/14469 B/Med
2025-11-06 linux-firmware ships mtl_guc_70.bin 70.53.0 (f2a23165) Still the shipped GuC on 2026-10-27 gitlab.com/kernel-firmware/linux-firmware S/High
2026-01-12 Kernel recommends GuC 70.53.0 for DG2/MTL (9512d9fc2a7a), v7.0 Kernel blesses 70.53.0 github.com/torvalds/linux/commit/9512d9fc2a7a S/High
2026-03-09 Mesa brw SIMD32 regression commit 2729b1608fb8 Breaks MTL on both KMDs gitlab.freedesktop.org/mesa/mesa/-/issues/16491 S/High
2026-04-05 xe #7694 opened: repeated TLB fence timeouts escalate to kernel lockup Same escalation shape as I-116 gitlab.freedesktop.org/drm/xe/kernel/-/issues/7694 B/Med
2026-04-12 Linux v7.0 Base for many 2026 reports github.com/torvalds/linux/releases/tag/v7.0 S/High
2026-05-10 xe #7953 (MTL_P, "70.53.0 stops acknowledging TLB invalidations") Reproduced under i915 and xe gitlab.freedesktop.org/drm/xe/kernel/-/issues/7953 B/Med
2026-06-14 / 08-16 / 10-18 Linux v7.1 / v7.2 / v7.3 63-day cadence held github.com/torvalds/linux/releases/tag/v7.3 S/High
2026-06-16 "Enable PPS before PLL" 062499cc4813, stable v7.0+ Resume hangs after 45 min on ARL/MTL github.com/torvalds/linux/commit/062499cc4813 S/High
2026-07-25 xe #8678: ARL, GuC 70.53.0 consumes H2G, ack about 2.3 s late Best "late ack" evidence gitlab.freedesktop.org/drm/xe/kernel/-/issues/8678 B/Med
2026-08-26 to 10-07 i915 #16912 "Unclaimed write to register 0x1901f0" opened, then closed That register is the H2G doorbell gitlab.freedesktop.org/drm/i915/kernel/-/issues/16912 B/Med
2026-09-02 drm-firmware MR !84 merged: GuC 70.74.0 Newer GuC exists outside linux-firmware gitlab.com/kernel-firmware/drm-firmware/-/merge_requests/84 S/High
2026-09-06 xe #9168: Minisforum 285HX, 8086:7d67, TLB fence timeout; 10-27 comment shows DC/PSR/FBC/DMC-wakelock off does not help Same PCI ID as the Legion gitlab.freedesktop.org/drm/xe/kernel/-/issues/9168 B/Med
2026-09-24 xe Wa_22016122933 fix d5b0bf3f37f1 committed (media GT, CPU-cached CTB) Not in v7.3 github.com/torvalds/linux/commit/d5b0bf3f37f1 S/High
2026-10-08 i915 #17311: hibernate resume CT no response, GuC 70.74.0 70.74.0 is not trouble-free gitlab.freedesktop.org/drm/i915/kernel/-/issues/17311 B/Med
2026-10-14 cx0_phy ARL-S host bridge fix 6a8bf59de3ef Relevant to our drm-kmod import list github.com/torvalds/linux/commit/6a8bf59de3ef S/High
2026-10-24 04:29 drm-next-2026-10-21 merged to master (5b0764a53235) d5b0bf3f first mainline landing, goes to 7.4 github.com/torvalds/linux/commit/5b0764a53235 S/High
2026-05-06 / 08-05 / 10-14 Mesa 26.1.0 / 26.2.0 / 26.2.5 ANV base moves docs.mesa3d.org/relnotes/26.2.5.html S/High
2026-10-21 Mesa MR !43702 fixes brw hang on MTL Check our ANV snapshot gitlab.freedesktop.org/mesa/mesa/-/issues/16491 S/High

Intel platform and Lenovo

Date Event Why URL T/C
2025-05 / 2025-10 / 2026-10 Spec update 834774 rev 008 (adds ARL035-037) / rev 012 (updates ARL037) / rev 024 (PDF modified 2026-10-16) ARL037 (core hang entering or leaving C6) still "Planned Fix" on HX in rev 024; H moved to Fixed cdrdv2-public.intel.com/834774/834774_024.pdf S/High
2025-05-12, 08-12, 11-11 Microcode 0x118, 0x119, 0x11a (ARL-S/HX 06-c6-02) History github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases S/High
2026-02-10 / 05-12 / 08-11 Microcode 0x11b / 0x121 / 0x122 Legion runs 0x11b; two newer exist same, tag microcode-20260811 S/High
2025-08-20, 10-11, 11-04, 11-24 Lenovo BIOS S2CN20WW, 22WW, 23WW ("Update MCU"), 24WW History of Legion BIOS download.lenovo.com/consumer/mobiles/s2cn23ww.txt S/High
2026-03-24 (readme) / 2026-05-06 (catalog) S2CN26WW "Update Intel CSME", newest found; S2CN27WW is 404 No BIOS fix to wait for download.lenovo.com/consumer/mobiles/s2cn26ww.txt S/High

NVIDIA, NullMoth, NvGfx

Date Event Why URL T/C
2026-10-07 NVIDIA 615.78.08 tag; nullmoth/nvidia-macos-driver repo created Our NVRM pin github.com/NVIDIA/open-gpu-kernel-modules/releases S/High
2026-10-11 to 10-26 At least 40 NullMoth releases, v1.12.0 to v2.6.2 (list capped at 40) Pace makes pins stale in hours github.com/nullmoth/nvidia-macos-driver/releases S/High
2026-10-22 NvGfx 2.5.3-nvgfx.1 (our latest release); NullMoth 2.5.3 Installed base github.com/watchthelight-labs/NvGfx/releases S/High
2026-10-25 21:08 / 10-26 10:34 NullMoth 2.5.5 (last driver-code change) / 2.6.2 (installer and EFI-checker only) 2.6.2 rebase built, not installed (N-294) github.com/nullmoth/nvidia-macos-driver/releases/tag/v2.6.2 S/High
2026-10-27 NullMoth #412 (TroyMoss16, RTX 5080): our drag fixes rebased on 2.6.2, measured Independent confirmation of our fixes github.com/nullmoth/nvidia-macos-driver/issues/412 B/Med

Intel Xe on macOS

Date Event Why URL T/C
2026-10-09 b00t0x/WhateverXe repo created; 0.6.1 on 10-27; Xe-LPG "No support planned" Cannot reach 7D67 github.com/b00t0x/WhateverXe B/High
2026-10-12 zep245/IrisXe-macos-driver created (Tiger Lake, i915 on XNU) RC6/keep-awake lessons github.com/zep245/IrisXe-macos-driver B/High
2026-10-19 VedCloud Meteor-Lake repo, release v1.0.14 MTL-U GuC 70.53.0 works for them github.com/VedCloud/Meteor-Lake-Xe-LPG-Metal-Graphics B/High
2026-10-21 XeGfx repo created; releases v0.0.22 to v0.0.38 by 10-24 Our line; 0.0.43 to 0.0.45 unreleased github.com/watchthelight-labs/XeGfx/releases S/High
2026-10-21 NMXGPU "on hold" per nullmoth No upstream Intel help github.com/nullmoth/nvidia-macos-driver B/Med
2026-10-25 Mountainatic/ArrowWhatever created (same 7D67, builds on XeGfx 0.0.44, 40 min soak) Closest peer; short soak only github.com/Mountainatic/ArrowWhatever B/High
2026-10-27 jwx29 Meteor Lake fork (7D55), small glue delta, no I-116 fix Nobody has our stall signature per Aspect 10 (repo not independently re-fetched) B/Med

macOS

Date Event Why URL T/C
2026-06-29, 07-27, 08-06, 08-17 Tahoe 26.5.2, 26.6, 26.6.1, 26.6.2 History support.apple.com/en-us/100100 S/High
2026-09-14 Tahoe 26.7 (25G229); Golden Gate 27 (Apple silicon only) Golden Gate is Apple silicon only, so Tahoe is the last Intel macOS (inferred) support.apple.com/en-us/100100 S/High
2026-09-28 Tahoe 26.7.1 (25G241), Sequoia 15.8.1 Our ABI dump build support.apple.com/en-us/100100 S/High
2026-10-06, 10-13, 10-19 26.7.2 RC 25G320 / RC2 25G325 / RC3 25G330 RC3 is not final api.appledb.dev (25G332.json) A/High
2026-10-26 Tahoe 26.7.2 = 25G332; Sequoia 15.8.2; Golden Gate 27.2; 213 CVEs, 17 in Kernel Our native Wi-Fi gating support.apple.com/en-us/149522 S/High

MT7925

Date Event Why URL T/C
2025-11-24 mt76 relicensed BSD-3-Clause-Clear (a96fed2825d8) License basis for ports github.com/torvalds/linux/commit/a96fed2825d8 S/High
2026-10-20 linux-firmware MT7925 Wi-Fi and BT 20261016 builds (585d96e8, 5a3f625f); our kexts embed 20260813 Firmware lag gitlab.com/kernel-firmware/linux-firmware S/High
2026-10-23 MtkWlan 0.12.1, MtkWlanNative 0.4.13 Current releases github.com/watchthelight-labs/mt7925-hackintosh-wifi/releases S/High
2026-10-26 thanhnndev/mt7925-macos-wifi README status; ABI notes for 25G241 Competing line github.com/thanhnndev/mt7925-macos-wifi B/Med
2026-10-27 Our issue #4: Wi-Fi absent and BT half of card not on USB, on 25G332 First 26.7.2 failure github.com/watchthelight-labs/mt7925-hackintosh-wifi/issues/4 B/High

Hackintosh ecosystem

Date Event Why URL T/C
2024-12-03, 2025-03-04, 07-07, 11-03 OpenCore 1.0.3 (CPU detection), 1.0.4, 1.0.5, 1.0.6 Cadence github.com/acidanthera/OpenCorePkg/releases S/High
2026-03-20 / 2026-09-27 OpenCore 1.0.7 / 1.0.8 (latest release; 1.0.9 master only, undated) "1.0.9" in reports is a master build github.com/acidanthera/OpenCorePkg/releases/tag/1.0.8 S/High
2026-10-07 to 10-26 nullmoth/1401 created 10-07; 2.5.1 10-21 to 2.6.2 10-26 VT-d off / DMAR and x2APIC rules for ARL github.com/nullmoth/1401/releases S/High
2026-10-09 to 10-19 1401 #10, #11, #58 (Arrow Lake EXITBS hang cured by VT-d off) Relevant to I-118 github.com/nullmoth/1401/issues/58 B/Med
2026-05-11 FreeBSD drm-kmod #418 "Get meteorlake graphics working" merged (opened 02-26); #468 open Port that fixed MTL github.com/freebsd/drm-kmod/pull/418 S/High

2. Changes in the last 6 to 18 months (newest first, focus 2026-09-27 to 2026-10-27)

  1. 2026-10-27: mt7925 issue #4 shows 26.7.2 (25G332) makes MtkWlanNative decline the unknown build (maintainer diagnosis), so Wi-Fi falls back to Ethernet mode; our kcabi diff shows _kern_netif_queue_rx_enqueue field offset 0x4d8 to 0x4e8, a candidate cause (tool output, unreviewed). Medium.
  2. 2026-10-27: xe #9168 comment shows the GuC ack delay survives display power-state off. Core C-states, RC6 and the GuC stay open for I-116.
  3. 2026-10-26: macOS 26.7.2 final 25G332, 17 kernel CVEs, no kext/IO80211 notes. Per-build ABI dump needed.
  4. 2026-10-26: NullMoth 2.6.2; driver code frozen since 2.5.5.
  5. 2026-10-25 to 10-27: three peers on Xe-on-macOS (ArrowWhatever, jwx29, VedCloud), all without a long soak.
  6. 2026-10-24: drm-next merged; d5b0bf3f lands for 7.4 only.
  7. 2026-10-21: Mesa brw hang fix.
  8. 2026-10-18: Linux v7.3.
  9. 2026-10-16: Intel spec update rev 024; ARL037 unchanged on HX.
  10. 2026-10-14: Mesa 26.2.5, cx0_phy ARL-S fix.
  11. 2026-09-27: OpenCore 1.0.8 (HideVerbose key broke 1401 2.5.3 builds).
  12. 2026-09-02: drm-firmware GuC 70.74.0.
  13. 2026-08-11: microcode 0x122 (Legion on 0x11b).
  14. 2026-05-11: FreeBSD ported MTL.

3. Once true, now obsolete or superseded

  • "26.7.2 final is 25G330": tracker R073/R074; final is 25G332 (RC3 was 25G330). Source: appledb, issue #4 comment 6.
  • "Tahoe 26.7.1 is current": superseded 2026-10-26; abi/native-wifi/25G241 covers only 25G241.
  • "MtkWlan 0.11.3 / MtkWlanNative 0.4.11" (global notes): now 0.12.1 / 0.4.13. "LegionCpuPower 0.3.3": now 0.4.1 (2026-10-27).
  • "NvGfx base 2.5.3 is latest": NullMoth is at 2.6.2.
  • "OpenCore 1.0.9 is out": 1.0.8 is the latest release.
  • "d5b0bf3f is in 7.3": it is not (7.4).
  • "GuC 70.53.0 is the only firmware": 70.74.0 exists (drm-firmware) and is in use.
  • "ARL037 planned fix everywhere": H is Fixed; HX is not.
  • "S2CN23WW has the MCU update": S2CN26WW is newest.
  • "Intel Macs run macOS 27": Golden Gate 27 is Apple silicon only.

4. Upcoming (S scheduled, I inferred)

Date Event S/I
2026-10-28 Mesa 26.2.6 S, docs.mesa3d.org/release-calendar.html
2026-11-01 Linux 7.4-rc1 (merge window two weeks after v7.3) I
2026-11-04 Mesa 26.3.0 rc4 or final S, same calendar
2026-11-10 Intel IPU (second Tuesday of Feb/May/Aug/Nov; 2026-02-10, 05-12, 08-11 all matched); likely microcode 0x123+ and spec update rev 025 I
2026-11-11 Mesa 26.2.7 S
2026-12-20 (12-27 if rc8) Linux 7.4 final (63 days after v7.3) I
2027-Q1 or later OpenCore 1.0.9 (gaps of 4 to 6 months; no date published) I
No date Lenovo S2CN27WW or newer; linux-firmware GuC 70.74.0; Tahoe support end (project notes say about 2029, Bash's inference, not Apple's) I

5. Date conflicts

  • 6d46d09a0d7d: API says 2024-01-24, one aspect report 2024-01-19. Author vs committer date not separated by me. Tag v6.9 (2024-05-12) is unambiguous.
  • S2CN26WW: readme 2026-03-24 vs catalog 2026-05-06 (likely upload vs authoring, unverified).
  • 26.7.2 build: 25G330 (RC3, 10-19; also the maintainer's first reply on issue #4) vs final 25G332 (10-26).
  • Potential, not seen: Linux 7.3 tag is 2026-10-18 23:14 UTC, so sources in UTC+1 or later may say 10-19.
  • NVIDIA tags: 615.71.10 published 2026-10-21, after 615.78.08 (2026-10-07). Version order is not date order.
  • Reporters say "OpenCore 1.0.9"; no 1.0.9 release exists, only master builds.
  • 0x11b arrived 2026-02-10, but the only BIOS readme with an MCU line (S2CN23WW, 2025-11-04) predates it. S2CN26WW (2026-03-24) postdates it, so it probably carries 0x11b (inferred).
  • FreeBSD drm-kmod #315 returned 404 on freebsd/drm-kmod, so its date is unverified.

Technical and operational details

This section collects the reference material that the findings above lean on: how to read the I-116 panic, the firmware and device identity of the 7D67 iGPU, the verified offline route to the 26.7.2 kernel collections, and the experiment matrices for I-116 and I-118. Everything here was checked on 2026-10-27 unless a line says otherwise.

Reading the I-116 panic string

The panic text says that the panicking CPU timed out in mp_rv_action with 23 of 24 CPUs having entered. In the public xnu source the rendezvous spin is bounded by four times the lock timeout (mp_spin_timeout), the lock timeout defaults to 0.5 s on release kernels, and the boot-arg slto_us changes it (xnu mp.c, machine_routines.c). The TLB-shootdown timeout follows the same default and a boot-arg tlbto_us=0 turns the panic into a trace event. Two consequences follow. First, "23 of 24" means exactly one CPU never arrived at the rendezvous, but the panic string does not print which one, so the most useful extra datum a future panic could carry is the identity and last instruction of the missing CPU. Second, the later "none of the other 23 CPUs acked the NMI" phase is a separate observation: one stuck CPU explains the first phase, while the second needs something shared, such as an SMM/SMI period, a fabric or memory stall, or CPUs that cannot take an NMI. The independent contradiction check in this research run left the question unresolved, and no public report shows the same two-phase pattern on a 7D67 part. The public xnu tree ends at xnu-12377.121.6 while the Legion runs a 12377.161.x kernel, so mapping panic offsets to source is approximate.

Gleixner's remark on LKML (2026-01-13) is the best published statement of what a stuck MMIO transaction looks like to an operating system: the machine "just stalls on outstanding MMIO transactions w/o further notice" and the NMI is "a red herring" (LKML). It argues for looking at the first stalled access rather than at the NMI silence. It does not by itself explain why 23 CPUs spinning in cache would also ignore an NMI.

Identity of the 7D67 iGPU for porting purposes

Item Value Source
PCI ID 8086:7D67, kernel platform METEORLAKE, subplatform ARL-S pciids.h and mtl_info
Graphics / media / display IP 12.70 (Xe-LPG, stepping B0) / 13.00 / 14.00, read from GMD_ID on this machine XeGfx issue 2
Default Linux driver i915 (no force_probe since v6.7); xe still has require_force_probe commit 213c43676beb
GuC i915/mtl_guc_70.bin 70.53.0 is the newest in linux-firmware main; 70.74.0 exists in drm-firmware but not in linux-firmware WHENCE, drm-firmware MR 84
HuC / GSC / DMC mtl_huc_gsc.bin 8.5.4, mtl_gsc_1.bin 102.1.15.1926, mtl_dmc.bin v2.23 (v2.22 was reverted by Intel) WHENCE, DMC revert
Mesa device arl_u brw configuration, device name "Intel(R) Graphics (ARL)"; the Jay compiler is default only for Xe2 and newer intel_device_info.c, Phoronix
XeGfx media GT skipped ("Skipping GT1 (Standalone Media GT)") in seven recorded boots, so Wa_22016122933 is not exercised local XeGfx logs N-277 to N-288 (see Theme 1)

The firmware names are the Meteor Lake names; there is no arl_guc file. ARL-H parts (7D51, 7DD1) are Xe-LPG+ 12.74, so many "Arrow Lake" reports in public trackers match the silicon family but not this die.

Verified offline route to the 26.7.2 kernel collections (no install)

The 26.7.2 release candidates were 25G320, 25G325 and 25G330 (RC3); the shipping build is 25G332, released 2026-10-26 (appledb 25G332). The kernel collections cannot be downloaded as plain files, but the Intel delta OTA from 25G241 carries them as BXDIFF50 patches against the files already on this Mac. The route, as run and checked by the research agents:

  1. Confirm the base: sw_vers shows 26.7.1 / 25G241 and the SHA-1 of BootKernelExtensions.kc, SystemKernelExtensions.kc and the kernel begin 01a0b5ca, d8847772 and b42c5e15.
  2. Read the OTA entry for 25G332 in appledb whose prerequisite build is 25G241 and whose device group is the seven-device Intel group (the zip is about 1.36 GB).
  3. List the zip's central directory with HTTP range requests and fetch only the three .bxdiff members (about 12 MB).
  4. Apply each patch to the live file with a small stdlib Python patcher that refuses to run unless the base SHA-1 matches and checks the result SHA-1.
  5. Cross-check the rebuilt hashes against post.bom from the same zip, then validate with kmutil inspect.
  6. Dump and compare with the project's own kcabi tooling against abi/native-wifi/25G241.

The rebuilt 25G330 and 25G332 collections have identical hashes for BKC, SKC and kernel, so for kext purposes they are one build. The kcabi comparison against 25G241 shows unchanged class sizes, vtables and request tables, with three small differences: one field in _kern_netif_queue_rx_enqueue moves from offset 0x4d8 to 0x4e8, and two immediates change in AppleBCMWLANNANInterface::enableDatapath and disableDatapath. Whether those break MtkWlanNative is inference until someone reviews them. Nothing in this route touches OCEFI, NVRAM, kexts or the volume. The build identities come from appledb. An independent check confirmed that the patch headers carry base SHA-1s matching this Mac's files, but that check did not apply a patch itself; the byte-level result rests on the first agent's run, whose patcher verified each result SHA-1 against the OTA's own manifest.

Experiment matrix for I-116 (cheapest and most informative first)

# Experiment What it separates Needs Bash's OK
1 On the next panic or stall, record which CPU is missing from the rendezvous and read the MCA banks on the first boot afterwards one stuck CPU with a logged machine check (RC6-exit family) against a silent hang (ARL037 family) MCA read is read-only; any new tool is a kext change
2 Add residency MSRs (core 0x3FC to 0x3FE, package 0x3F8 to 0x3FA, 0x60D, 0x630 to 0x632) to LegionCpuProbe and compare with and without the 20 ms waker whether the package ever leaves PC0/PC2, and so whether a deep-idle theory is even possible yes (kext change)
3 XeGfx 0.0.45 knobs: run a 2x2 of waker on/off against xegfx.gtawake 0 and 2 GT RC6/forcewake flows against CPU idle no (existing knobs), guarded xe-guard run
4 Turn the NVRAM trace off for one stall attempt, as the zep245 notes suggest NVRAM sync cost on the runtime path against GPU-side causes no (XeGfx debug knob)
5 Route PPGTT TLB invalidation through the MMIO fallback instead of a GuC H2G (not a one-flag change: GGTT invalidation also goes through the CT on these parts, see Theme 1.7) whether the GuC CT path is involved at all no (XeGfx build option), but needs a careful patch
6 Log request and ack TSC deltas for every forcewake get and doorbell write above 1 ms into an in-memory ring how long any CPU-side wait really lasts, against the 27 s observed once no
7 Rewrite the userptr unwire/pin path from the invariant stated in the ArrowWhatever notes, and port their churn soak a separate, deterministic panic class that appears after about 20 min on their build no (our own code)
8 Boot with a long slto_us whether the stall is finite (a waiting transaction) or a dead CPU yes (boot-arg, NVRAM)
9 Confirm the WD SN7100S is not behind Intel VMD (ARL004) removes a storage-completion stall explanation for the I/O-correlated panics no (read-only ioreg)

Checklist for I-118 (resets right after ExitBootServices)

Record, for every probe-then-macOS pair, whether the machine was fully powered off in between; this turns the cold-versus-warm column from memory into data. Before leaving Ubuntu, record the loaded microcode revision (dmesg | grep -i microcode) and, if possible, the TCO watchdog state (/sys/class/watchdog/*). After the warm restart, read sysctl machdep.cpu.microcode_version: 283 is 0x11b (unchanged); 289 would be 0x121 and 290 0x122. Boot the probe sessions so that the dGPU is left quiet (modprobe.blacklist=nouveau) so that GSP/WPR2 state cannot persist. These are cheap, read-only or stick-side changes. They are listed with their evidence in Theme 2.

Evidence table

Every row states a claim, how far it can be trusted on 2026-10-27, the best sources and a note on how the evidence was obtained. Rows are grouped by theme in the order of the main findings. Confidence labels are High, Medium, Low, Unverified and Contradicted; "inference" in the notes means a reading of direct evidence that no source states.

Claim Confidence Best sources Notes
Doorbell register 0x1901f0 has a FIXME forcewake range added for sleep-state delays, with a pcode half still needed High (2026-10-27) 6d46d09a0d7d, 8fa1c7cd1fe9 Direct commit text; relevance to 7D67 is inference
Our drm-kmod base already contains that forcewake range High (2026-10-27) c16de0f Read from source
Wa_22016122933 fixes a stale CPU read of the media-GT CT buffer, zero stalls in six weeks High (2026-10-27) d5b0bf3f37f1, xe 8678 Reporter data, one machine class
The workaround is media-GT only, so it probably does not apply while XeGfx skips GT1 Medium (2026-10-27) a161b6dba6e0, PR 418 Scope from source; "does not apply" is inference
A forcewake hold across the whole GT did not stop xe 8678 ack timeouts High (2026-10-27) xe 8678 Cached note 1, single run
One 7d51 machine died silently with the workaround applied and left no log Medium (2026-10-27) xe 8678 Note 28, single report
Linux freezes on 7d67 leave the kernel alive (SysRq works, NMI watchdog silent) High (2026-10-27) xe 9168 Different class from the NMI-silent I-116 phase
The panic is "23 of 24" at 2.0 s after rendezvous start, so the stall length is unknown High (2026-10-27) XNU mp.c My arithmetic from local panic strings
A stuck outstanding MMIO transaction can silence NMIs on a whole machine Medium (2026-10-27) LKML 2026-01-13 Another platform; a model, not a measurement
Clearing has_guc_tlb_invalidation is unsafe as a one-line test because GGTT invalidation also uses the CT Medium (2026-10-27) 2d6e2b10a773, af58ee227662 Commit text and source; untested
Not every object free sends a TLB H2G (seqno coalescing, awake check) High (2026-10-27) intel_tlb.c Corrects "every free" claims
No MTL/ARL-specific free-worker or cond_resched patch exists Medium (2026-10-27) deeee411a975 Absence of evidence in the corpus
MTL/ARL have no execlist path, so GuC vs execlists is not an available A/B on 7D67 Medium (2026-10-27) XeGfx HOW-IT-WORKS Our own doc; enable_guc=2 unsettled
Our base has DUAL_QUEUE_WA and keeps render power gating off for IP 12.70 to 12.74 High (2026-10-27) ff868667a4f9, 0a4ae87706c6 Read from source at the base commit
FreeBSD fixed an inverted cancel_delayed_work_sync, irq_work under RCU and irqs_disabled while chasing GuC scheduling failures High (2026-10-27) 79e290d96786, 4f2f26fb1e8a Commits verified; link to our shim is inference
ARL037 is Planned Fix on HX but synthetic-only and one core, a weak fit Low (2026-10-27) Intel 834774 rev 024 Spec text; fit judged by reasoning
ARL037 (core hang in C6+ entry/exit, no MCE, synthetic only) is Planned Fix on HX and Fixed on H High (checked 2026-10-27) Intel 834774 rev 024 Direct spec text; Aspect 2's column mapping was wrong
ARL037 explains phase 1 of I-116 (one CPU silent) but not phase 2 (23 CPUs silent) Low (checked 2026-10-27) xnu mp.c, Intel 834774 Inference from panic text and erratum wording
Arrow Lake idles through ACPI _CST in Linux, and max_cstate=2 still leaves a core-C6-class state (hint 0x21) Medium (checked 2026-10-27) intel_idle.c, Unraid Fallback is direct source and overrules Aspect 4/Aspect 15; C6 mapping is by comparison
xe 9168 and 8678 freezes keep the kernel alive, a different class from I-116 Medium (checked 2026-10-27) xe 9168, xe 8678 Reporters are ARL-H where ARL037 is Fixed
Intel triaged i915 16052 (7d67) as a power-sequencing race and asked for cold/warm data High (checked 2026-10-27) i915 16052 Quoted from the thread; closes 2026-10-27
Microcode 0x121 and 0x122 exist for ARL-HX B0 (ours is 0x11b); none is mapped to ARL037 High (checked 2026-10-27) 20260512, 20260811 Two newer, not three
Lenovo S2CN26WW is the newest 83F0 BIOS and changes only CSME High (checked 2026-10-27) readme S2CN27WW is 404
The UEFI watchdog stops at ExitBootServices and OpenCore also clears it High (checked 2026-10-27) UEFI 2.11, Configuration.tex Logs show Watchdog status is 0
The OpenCore log ends at EXITBS:START on passing boots too, so it does not locate the failure High (checked 2026-10-27) evidence/native/N-293/opencore-2026-10-27-174540.txt, evidence/native/N-292/README.md Direct from logs
StartupPowerEvents does not decode reset causes (Aspect 15 was wrong) High (checked 2026-10-27) Configuration.tex Option sets a Data Hub property only
GSP WPR2 survives a Linux unbind and the next driver fails early on it Medium (checked 2026-10-27) kernel_gsp.c, open-gpu 1353 Direct for Linux; link to I-118 is inference
Linux-applied microcode persists across a warm restart on this CPU Unverified (checked 2026-10-27) Arch FS#64498, USN-4182-3 2019 background on older parts
Community cure for Arrow Lake EXITBS hangs is VT-d off, but the Legion passes with VT-d on Medium (checked 2026-10-27) 1401 changelog, 1401 #58 N-293 passes with firmware VT-d on
The 20 ms waker lowered I-116 stalls Unverified (checked 2026-10-27) evidence/native/N-290/README.md, docs/session-handoff.md One observation, confounded: LegionCpuPower was loaded in every run, 0.0.43 also changed per-CPU interrupts-off slots, and time to stall ranged from 15 s to 88 min across versions
NullMoth 2.6.2 carries the same driver as 2.5.5, so N-294 combines our changes with the 2.5.4 and 2.5.5 driver changes Medium (2026-10-27) release v2.6.2, our branch Release list plus our rebase; boot effect untested
PR 385 (MPS pointer fields) is in our package and passes our in-process test High (2026-10-27) PR 385 Package direct; test result is local
ArrowWhatever's userptr unwire race window also exists in our xe-2.6.2 xg_vm.c Medium (2026-10-27) userptr note, xg_vm.c Our code read; no capture shows the panic text
ArrowWhatever's soak (zero panics) and flip speeds are reproducible Unverified (2026-10-27) README Self-reported, LLM-driven; audit says tier B, not S
The userptr race explains I-116 Low (2026-10-27) userptr note Different signature (rendezvous panic vs freeing wired page); inference, N-290 evidence is local
NVRAM breadcrumb writes cost about 700 ms per commit on zep245's machine Medium (2026-10-27) DESIGN.md Direct log on Tiger Lake; our cost unmeasured
Every XeGfx guard run N-223 to N-290 had nvram_trace=1, so trace-off was never tested High (2026-10-27) xg_kext.cpp Local sysctl captures; code is public
The xnu "TLB flush timeout" panic is a CPU shootdown timeout, not a GPU/GuC timeout High (2026-10-27) xnu mp.c, xe 8678 Source reading
Only ArrowWhatever shares our silicon; jwx29 and VedCloud are Meteor Lake; WhateverXe has no MTL plan Medium (2026-10-27) jwx29, WhateverXe Repo text; all self-reported
Geekbench MPS depthwise translation fails upstream, and a private-pointer fix faults the GPU High (2026-10-27) 377, 334 Several reporters; maintainer statement
The 419 retry patch cut translation failures 53 to 0 Low (2026-10-27) 419 One anecdote; conflicts with 385
Six drag-stall commits measured on 2.6.2; two state-cache commits regress Alacritty Medium (2026-10-27) 412 One tester; held-back commits sit behind switches
The HiDPI limit fits a desktop pixel rate, not a 1.3x ratio Medium (2026-10-27) 360, 354 Fit to three reports; DSC/link caveat; inference
The force8BPC HDR trace was posted by our own account High (2026-10-27) 341 Verification pass correction of the aspect report
GSP control 0x20800AD2 lifts the 50 W limit to 115 W on this GPU High (2026-10-27) power.md, nvrm_power.cpp Our N-73 measurement
615.71.10 is a version bump, and 615.71.09 to 615.78.08 changes no platform-request logic High (2026-10-27) compare 71.09...71.10, compare 71.09...78.08 Diff read; firmware blobs not inspected
The cbmr_driver.efi memory panic is fixed by LegionCbmrFix on this Legion High (2026-10-27) LegionCbmrFix Own machine, churn test
macOS 26.7.2 final is build 25G332 (2026-10-26); 25G320, 25G325 and 25G330 were release candidates. High (2026-10-27) AppleDB 25G332, AppleDB 25G330 Direct; earlier "26.7.2 is 25G330" notes are wrong.
The Legion's softwareupdate catalog lists 26.7.2 as 25G332 and 25G325 but not 25G330. High (2026-10-27) AppleDB 25G325 Direct (own command); not a recommendation to install.
The 25G332 kernel is xnu-12377.161.15.701.482 against 700.192 on 25G241, with the same Darwin version. High (2026-10-27) OTA delta Direct (version string of the rebuilt kernel).
BKC, SKC and kernel for 25G332 were rebuilt from 25G241 plus the Intel delta OTA; hashes, sizes and CRC32 match the patch and the bill of materials. High (2026-10-27) bxdiff50.go, kcabi Direct byte-level check; kernel-side files only, 25G241 base only.
The 25G330 and 25G332 Intel patches yield identical kernel collections; 25G325 differs. High (2026-10-27) AppleDB 25G330, bxdiff50.go Direct for three files; nothing known for the rest.
kcabi finds IO80211/IOSkywalk/AppleBCMWLAN sizes, vtables and request tables unchanged on 25G332, and three real function differences among 33. High (2026-10-27) kcabi Direct measurement; consequences for MtkWlanNative are inference.
The NAN datapath immediates in the Broadcom driver class all shift by 0x27. High (2026-10-27) kcabi My arithmetic on the compare output; irrelevance to MT7925 is inference.
MtkWlanNative allow-lists only the 25G241 xnu tag, so 25G332 is refused before sizes are checked. High (2026-10-27) MtkNativeAbi.hpp Direct code reading; the reporter's refusal reason was not captured.
The issue 4 reporter on 25G332 has both kexts loaded, no Wi-Fi port, and Ethernet front end en1; his Bluetooth returned after a power drain. Medium (2026-10-27) issue 4, btusb v7.3 One desktop anecdote; the fix step is unrecorded; 13D3:3602 is my conversion.
bluetoothd changed in place in 25G332 (same size, different CRC32); LegionBtFix is gated for 25G241 only. Medium (2026-10-27) LegionBtFix, BrcmPatchRAM 39 BOM comparison direct; page-hash mismatch is inference; patch not applied (base mismatch).
Apple's 26.7.2 notes carry 213 CVE entries, including Kernel (17), Bluetooth (1), Wi-Fi (3) and AirPort (1). High (2026-10-27) APPLE-SA-149522 Parsed myself; no ABI information in the notes.
macOS 27 "Golden Gate" lists only Apple silicon Macs; the length of Intel security updates is press-relayed. High on model list, Low on duration (2026-10-27) Apple macOS page, Six Colors Direct for the model list; the three-year figure is secondhand.
A second native MT7925 project (thanhnndev, 2026-10-26) also ties its kext to 25G241 and reports WPA2-only operation on one laptop. Medium (2026-10-27) thanhnndev/mt7925-macos-wifi Self-reported, AI-written by its own statement; no 25G332 data.
Linux mt76/btmtk fixes (ROC lifetime, pmctrl checks, WMT-timeout reset) mirror our join and warm-restart problems; linux-firmware 20261016 is newer than our 20260813. Medium (2026-10-27) ac22c8c723c6, b3078bb2ee12, linux-firmware Commit facts direct; applicability not read at diff level.
Two other 275HX EFIs use SetupVirtualMap on and ForceExitBootServices off, the reverse of ours; VT-d off or a DMAR drop is the common Arrow Lake fix. Medium (2026-10-27) wsjj EFI, ASUS FX608LP EFI, 1401 issue 58 Plist values direct; relevance to our resets is inference (two variables in issue 58).
LenovoLegionLinux has an 83F0 / S2CN model entry with EC chip ID 0x5508 and a level-index fan table. Medium (2026-10-27) a897adf92a06, 29571790b209 Direct commit reading; use for LegionFan is inference.

Tradeoffs and alternatives

The research did not produce one clean answer for any of the open issues, so the useful comparison is between the options the evidence leaves open. Each pair below states what the public record says about the two sides and where the project's own constraints change the weighting.

An i915 port against an xe port for the Intel iGPU. XeGfx carries Linux i915 plus Mesa ANV. On this PCI ID i915 is the upstream default driver and has been since the force_probe requirement for Meteor Lake was removed in v6.7 (commit 213c43676beb), while xe still carries require_force_probe for the Meteor Lake and Arrow Lake descriptors, so running xe on this silicon is an officially unsupported configuration. The tracker reality points the other way: every active Intel investigation of the Arrow Lake GuC acknowledgement stall lives in the xe tracker (xe 8678, xe 9168), while an Intel developer answered a wedge report on xe with "Use i915?" (xe 9224). There is also a data point that the two drivers diverge on the same PCI ID: 7D67 shows corruption under i915 at DDR5 7600 MT/s and above that xe does not show (i915 17098), which is far above a laptop's SO-DIMM speeds but proves the memory paths differ. For a port, i915 is the larger shim surface and xe the smaller one (GuC is mandatory there and the force_execlist parameter was dropped on 2026-06-30, commit b623bd790db0). Staying on i915 keeps the code the maintainers still treat as the shipping path; moving to xe would make the project track the code where Intel's engineers are currently debugging. Neither is clearly better for I-116, and a switch would restart the bring-up work.

GuC submission against execlists. GuC submission with HuC through the GSC is the default for Meteor Lake and Arrow Lake in i915, and upstream does not offer execlists as a supported fallback in xe. A user on Raptor Lake reported that a GuC hard lockup went away with enable_guc=0 (i915 15708), but that is a different platform with different firmware, and GuC deprivilege on Meteor Lake means the firmware sets up the WOPCM before the OS starts. The cheaper variant of the same idea is to send TLB invalidation through the MMIO fallback instead of a GuC H2G message. It would test the GuC CT path without abandoning GuC submission, but it is not a one-flag change: Meteor Lake is the one platform that needs GuC invalidation, and GuC-based GGTT invalidation is documented as incompatible with MMIO invalidation (commit af58ee227662). The experiment matrix lists it with that warning.

Holding the GT awake against letting it idle. A forcewake or RC6-off hold is the one mitigation that two independent non-Arrow-Lake ports report as helping: the FreeBSD drm-kmod maintainer's Meteor Lake case (drm-kmod 457) and the zep245 macOS port notes. The costs are power and heat on a laptop that already runs at 100 C on a CPU lap, and the counter-evidence is direct: the owner of the xe 8678 investigation pinned the GT at C0 with zero C6 residency and still saw nine acknowledgement timeouts. The two readings are compatible if the xe bug is GuC-side (a late reply) while the macOS stall is CPU-side (a write that blocks), which is why the experiment is worth running as a 2x2 with the waker thread instead of being assumed to work.

Hybrid composite route against XeGfx driving WindowServer. In Hybrid mode the iGPU owns the panel. The conservative route lets NvGfx composite on the NVIDIA GPU and lets a small framebuffer driver flip scanout on the iGPU, which the nmx-intel project demonstrated on Raptor Lake (nmx-intel). It does not depend on the XeGfx stall being solved. XeGfx drives WindowServer directly, which is the only route that can give a Metal-accelerated desktop on the iGPU alone, and it is also the route with the I-116 stalls. The two are fallbacks for each other as long as the Discrete NVIDIA boot remains the daily driver.

Stay on 26.7.1 against moving to 26.7.2. The offline route recovers the 26.7.2 collections without installing, so the decision no longer depends on first updating a machine to look. The remaining tradeoff is between per-build ABI pins and a fingerprint approach. Per-build pins are safe but fail at day one of every update, as the first public 25G332 report on the project's own native Wi-Fi shows (mt7925-hackintosh-wifi issue 4). A fingerprint over class sizes and vtable slots accepts a new build only when the layout is unchanged. The horizon is bounded in any case: macOS 27 is Apple silicon only, so Tahoe is the last Intel release (OCLP issue 1183).

A native Wi-Fi front end against a layout-independent driver. MtkWlanNative integrates with the private IO80211 and Skywalk classes, which gives the system Wi-Fi menu but ties each release to a build. The Intel-card projects that avoid private layouts, such as the itlwm line and SimpleBCM (itlwm, SimpleBCM), were reported working on 26.7.2 on day one. For MT7925 itself, no layout-independent driver exists, and the two public native MT7925 lines (ours and thanhnndev's) report WPA2 joins only, with no 6 GHz, AWDL or sleep support. Swapping the card for an Intel one is what most Gen 10 Hackintosh EFIs do (wsjj EFI), at the cost of opening the laptop and of the Bluetooth path.

VT-d off or DMAR dropped against VT-d left on with an APIC replacement. The Arrow Lake community splits. Several desktops and laptops pass the ExitBootServices stop only with VT-d off or the DMAR table dropped, and the 1401 maintainers encode that as a rule (efi_rules.json). Other 275HX laptops boot with VT-d on, DMAR deleted and a custom APIC table (YaoShi16 EFI). The Legion keeps DMAR and replaces the APIC table, and its normal boots pass. VT-d state is the one variable that has never been recorded for the failing I-118 boots, so changing it now would add a variable, while recording it would not.

Newer microcode through OpenCore against waiting for a Lenovo BIOS. Microcode 0x11b is two Intel releases behind (0x121 and 0x122 exist), and Lenovo's newest BIOS for this machine, S2CN26WW, only updated CSME. Loading newer microcode over an older BIOS revision has broken boot on other Intel parts in 2026 (microcode issue 112), and no public text ties either newer revision to the one open erratum (ARL037). The expected value of loading it as a stability fix is low and the downside is a non-booting machine, so it is a last-resort experiment and not a mitigation.

Practitioner reality

Scope: what operators, maintainers and users reported and did, for Q1 Linux/BSD/macOS-port freezes on MTL/ARL, Q2 NVIDIA via NullMoth, Q3 Intel Xe on macOS, Q4 macOS 26.7.2, Q5 MT7925 and Legion Gen 10, Q6 resets after ExitBootServices. Sources: the practitioner sections and findings of Aspect 1 to Aspect 15 (cited by their primary URL), plus NEW direct fetches today (marked NEW; read-only gh api GET, GitLab REST descriptions, one WebFetch). Date checked for all rows: 2026-10-27. Tier: S primary or maintainer text, A expert with data, B user report, C press. Breadth: anecdote = one machine or person, few = 2 to 5 independent reports, broad = many independent reports. GitLab comments return 401, so closure reasons and maintainer replies on freedesktop issues are not visible.

1. Table of reports

ID Who URL Date What happened What they tried Breadth
R1 Quaerendir, xe 9168 (Minisforum, 285HX, 7d67, same silicon as ours) https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/9168 09-06 to 10-27, open recurring TLB fence timeouts, then a full freeze of display and USB (kernel 7.0.0-31) pcie_aspm=off (no help) anecdote
R2 talesam, xe 8678 (ARL 7d51, 7dd1) https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/8678 07-25 to 10-24 GuC acks 2.3 s late, 20 to 60 per day; permanent freezes on a second ARL tied to media workloads GT forcewake hold with GT C6 delta 0 still gave 9 timeouts; 250 ms doorbell re-kick shortened most acks; Wa_22016122933 (uncached CTB/ADS) cut 3 to 4 timeouts per 20 min to 0 (commit d5b0bf3f37f1) few, A
R3 dcominottim and Intel jkrzyszt, i915 16052 (285K, 7d67) https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16052 05-10 to 10-27, open probe fails with MMIO 0xFFFFFFFF on some boots; Intel calls it a power-sequencing race Intel asks cold vs warm, dGPU off, other BIOS; will close without data anecdote, S
R4 i915 16987 (Legion 7 16IAX10 83KY, 275HX; ThinkBook) https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16987 09-06, open "DSB 0 poll error", flip thread stuck, silent hang on i915 and xe enable_psr=0, enable_dsb=0 (no help) few
R5 i915 16937 (ARL-P 7d51, 7.3-rc0) https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16937 08-29, open hard hang, NMI watchdog never fires, no journal; about 1000 DC transitions per minute before death enable_psr=0, enable_fbc=0, max_cstate=1, removing the NVIDIA card (none helped) anecdote
R6 xe 7694, 7683, 9224 (MTL 155H, ARL 255H, ARL-P) https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7694 04 to 09 26 timeouts in 47 h then silent freeze; 7683 halts in 1 to 2 h on xe, i915 clean 2 to 4 days; Intel on 9224: "Use i915?" switch to i915 (worked in 7683) few
R7 Arch BBS 308313 (MTL 255H, Lenovo MTL) https://bbs.archlinux.org/viewtopic.php?id=308313 2025-09 to 2026-06 random freezes with GSC proxy errors dc=0 psr=0 failed; one poster "working so far" after changing 7 things at once; one pinned i915/xe IRQs to one LP core with deep C-states off on it only few, B
R8 amshafer et al, FreeBSD drm-kmod 457 (MTL 7d55) freebsd/drm-kmod#457 05 to 08-30 GuC "Unsolicited response" then GPU freeze; as400l 07-20: drm-613 freezes the whole OS, drm-612 stays reachable by ssh keeping the GT awake (i915_forcewake_user) cured it; later the cancel_delayed_work_sync return-value fix was "more clean" few, A
R9 zep245 DESIGN.md (Tiger Lake on xnu) https://github.com/zep245/IrisXe-macos-driver/blob/52fee9748625305ef41881a074bda239abc53fd3/DESIGN.md 10-17 to 10-25 at least 5 panics: thread_call cap, preemption_level -1, "NMIPI for unresponsive processor: TLB flush timeout" 16 s after boot, machine check on stolen read forcewake on all domains clean; hold through boot, release 90 s after attach; per-thread critical sections; phase-bit RCU anecdote, S
R11 NEW Intel CI on i915 ARL-H (7d51) https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/17382 (also 17304, 17419, 17396, 17130, 17070, 17007) 08-01 to 10-27 16 of 17 ARL_H issues since 08-01 are "incomplete - No warnings/errors"; logs stop mid probe (17382 ends in VBT parse) closed "cannot_reproduce" in several broad (CI), B
R12 NEW gutopardini, xe 9557 (MTL-P 7d55, Fedora 7.2.9) https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/9557 10-09, closed 10-26 TLB fence timeouts stall compositor on a maximized window: 25 ms hitch on xe, none on i915 same boot A/B with i915.force_probe=7d55 anecdote, A
R13 NEW bjreppen, xe 9024 (Dell Pro Max 16, 285HX 7d67, hybrid) https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/9024 08-23, closed 10-22 eDP black after idle, C10 PHY A refclk failure, 30 to 60 s recovery enable_psr=0, enable_panel_replay=0 (no help); closure reason unreadable anecdote
R15 unDefFtr, yahyoh, NullMoth 377 (RTX 3070) nullmoth/nvidia-macos-driver#377 10-24 to 10-26 Geekbench 6 and 7 MPS depthwiseConv_3x3 "Function vs Private pointer phi" translation fail; maintainer (on 334): kernel "doesn't run on the GPU yet", private fix faults the GPU none; PR 385 is the one candidate broad (405, 401, 406, 111)
R16 eisda, NullMoth 419 (5070 Ti, Chrome 156, 2.6.2) nullmoth/nvidia-macos-driver#419 10-27 WebGL2 context loss; local patch cut translation failures 53 to 0, null handles 24 to 0, 18,066 frames at 64.5 fps retry forward-fields 4 rounds anecdote
R17 TroyMoss16, NullMoth 412 (RTX 5080) nullmoth/nvidia-macos-driver#412 10-27 stock 2.6.2 drags at 85 to 100 flips/s with 63 to 124 ms stalls; six NvGfx commits remove them; two state-cache commits made Alacritty text jump back held back those two few (356, 410, 368, 302)
R18 jixx-choi, Cyan-oi, superhero-520 (354, 341, 360) nullmoth/nvidia-macos-driver#354 10-22 to 10-27 scaled modes validate but never listed (hi-res flag missing in nvrm-fb.cpp:3028); head scaler refuses above about 1.3x at 165 Hz, fine at 60 Hz 12-byte scale-resolutions entries; juren233: 26-byte NVRM patch; Dora-z: 64-timing cap, nvfbscalehz few
R19 Cyan-oi 341, mischa85 30 (HDR) nullmoth/nvidia-macos-driver#341 10-08 to 10-27 CoreDisplay forces 8 bpc when class name has "NVDA"; renaming kills the Metal compositor none shipped anecdote
R20 vmadhavan15 333, TroyMoss16 302, EleazarGamezD 293 nullmoth/nvidia-macos-driver#333 10-19 to 10-27 Chrome/Simulator flicker (1650, 5080) Skia Graphite disabled (cured Chrome); NVMTL_SCHEDULE_AFTER_SURFACE_WRITES=1 (cured Simulator, slower) few
R22 NEW fengx4085-lab, PotatoBread26, NullMoth 328 (OMEN 9750H + 1660 Ti, macOS 15.6; Legion Y7000 + 1650) nullmoth/nvidia-macos-driver#328 10-21 to 10-25 about one freeze per day over 2.0.3 to 2.5.2: log stops dead, no panic, even idle; or watchdogd "no checkins in 91 s"; or vm_page_validate_no_references panic 60 Hz, debug.nvrmfb_flip_latch=2 (neither helped) few, B
R23 NVIDIA open-gpu-kernel-modules 1389, 1353, 1287, 1086 (Lenovo/ASUS Blackwell laptops) NVIDIA/open-gpu-kernel-modules#1389 03 to 10-26 GSP heartbeat/Xid 119, Xid 79 after powerd traffic, WPR2 latched across warm reboot, frozen 428 W telemetry cold boot on battery only; powerd lifts 50 W to 115 W (Arch poster); NVIDIA replied once (aritger, 1389) few
R24 Mountainatic ArrowWhatever (275HX, 7d67, macOS 26.7.1) https://github.com/Mountainatic/ArrowWhatever 10-25 to 10-27 zero-copy flip, K9 deferred flip "about 60 fps"; userptr race fix, 40 min soak 0 panics manual bring-up after boot, one WindowServer restart anecdote, B/S
R25 jwx29 meteor-lake-local (155H, 7d55, macOS 15.8.1) https://github.com/jwx29/NvGfx/tree/meteor-lake-local 10-27 stages 1 to 7 pass; firmware-memory panic cured by LegionCbmrFix; "long-term post-workaround stability was not established" anecdote
R26 VedCloud (MTL-U 7d45), kitsuneislife nmx-intel (Raptor Lake), b00t0x WhateverXe https://github.com/VedCloud/Meteor-Lake-Xe-LPG-Metal-Graphics 10-22 to 10-27 lost-wakeup GuC TLB timeout fixed; nmx-intel composites on NVIDIA and flips to the Intel panel; WhateverXe 0.6.1 says no Xe-LPG/MTL support planned anecdote each
R27 zld96969, our mt7925 4 (B860 desktop, MT7925, 25G332) watchthelight-labs/mt7925-hackintosh-wifi#4 10-27 native Wi-Fi does not attach, falls back to Ethernet en1; BT missing from USB. NEW 18:45: reporter says Bluetooth now works and lists a 13D3:3602 USB device maintainer advised full power drain and BIOS BT check; the step taken is not stated anecdote
R28 oliverchu, mt7925 native 3 (AM5, RZ717, 25G241) watchthelight-labs/mt7925-hackintosh-wifi-native#3 10-23 same MtkWlan 0.12.1 + Native 0.4.13 join WPA2 at 866 Mbps anecdote
R29 InsanelyMac 363378: kgp, miliuco, schrup21, kaoskinkae, MakAsrock; Matgen84, Slice https://www.insanelymac.com/forum/topic/363378-release-macos-tahoe-2672 10-26 to 10-27 incremental update to 25G332 fine with itlwm, SimpleBCM, SimpleHDA (OC 1.0.7, Clover r5175); Matgen84 and Slice not offered the update (RestrictsEvent.kext, old WEG, Apple Intelligence) few, B
R30 thanhnndev G14, BelikPePe 15IRX10 (83LY), mnnobre, HackSucks https://github.com/thanhnndev/mt7925-macos-wifi 10-14 to 10-26 MT7925 native: 176.6/65 Mb/s WPA2 (G14); about 93/93 (83LY, first build hit thread_call cap panic); kext range excluding Darwin 25 (mnnobre 2); mtwlm lists MT7925 untested few, B
R31 1401 10, 11, 58, 115; Mountainatic YaoShi EFI; CENSEDAXIS ASUS FX608LP nullmoth/1401#58 10-09 to 10-27 Arrow Lake stops at EXITBS:START (hangs, not resets); VT-d off fixes many (HONOR needs X2APIC off first); type-9-only MADT rewrite on 275HX ProvideCurrentCpuInfo; CpuTopologyRebuild contested broad
R32 petwon, bugtracker 2558 (Comet Lake) acidanthera/bugtracker#2558 09-27, open AHCI skips port reset on warm restart; cold power cycle more reliable anecdote
R33 NVIDIA forum 382399, 382034 (RTX 5090 desktops); mxtools PR 559 https://forums.developer.nvidia.com/t/rtx-5090-open-610-57-04-display-enumeration-fails-26s-into-nvidia-drm-load-after-warm-reboot-no-auto-retry-worse-on-dp-2-1-than-dp-1-4/382399 08 to 09 warm reboot breaks next boot, full power-off cures; GSP/WPR2 survive kexec unload driver first (mxtools) few, B

2. By question

Q1 Freezes on MTL/ARL (R1 to R14, R22)

Agree: a stage of recoverable TLB-ack timeouts (26 in 47 h, 20 to 60 per day) often precedes silent freezes; the freezes leave nothing in the journal and the NMI watchdog stays quiet (R5, R6); xe is worse than i915 on the same machine (R6, R12); kernel upgrades helped most (Aspect 4). Non-Linux ports (R8, R9) independently found that keeping the GT out of RC6 or parked cures their hang. Disagree: causes. Intel-side fix for acks is cache coherency (R2); FreeBSD and zep245 blame RC6 transitions plus delayed interrupt handling; R4 and R5 blame display DSB/DC; Intel calls R3 a power-sequencing race. Confounded mitigations: psr/dc/ASPM/C-state results are mixed and often changed together (R7), several "fixes" were kernel or BIOS updates in disguise, and R2's all-domain forcewake hold did not stop the ack delay while R8/R9 holds did cure a harder stall, so the two symptoms may differ. The single IRQ-pinning report (R7) is unconfirmed. New: Intel's own ARL-H CI silently dies in many unrelated selftests (R11), which fits a platform-level stop rather than one GuC path; caveat: "incomplete" can also mean lost logs. No report matches I-116 (23 of 24 CPUs answer) on 7D67 in any OS.

Q2 NVIDIA via NullMoth (R15 to R23)

Agree: 2.6.2 is stable enough that users measure rather than crash-report; MPS, Vision, Geekbench compute remain broken on every generation; drag stalls come from per-upload IOSurface import and VRAM re-import (R17); HiDPI needs the hi-res flag and hits a head-scaler ceiling (R18); HDR is blocked by the "NVDA" class path (R19); Chrome flicker goes away with Graphite off (R20); Blackwell laptop users get almost no NVIDIA help and TGP only lifts through platform negotiation (R23). Disagree: scaler ceiling 1.3x vs 1.4x; 12-byte vs 16-byte scale-resolutions by macOS version; the maintainer says the hang is gone in 2.5.2 while 377 shows translation still fails. Confounded: R22's idle freezes survived 60 Hz and flip_latch=2 (so those are not cures); reinstall fixed one "regression" (NullMoth 259, NEW); fixes in downstream forks are single-machine and often AI-assisted, which upstream refuses.

Q3 Intel Xe on macOS (R9, R24 to R26)

Agree: all four Xe-on-xnu stacks (Mountainatic, jwx29, VedCloud, zep245) keep the firmware-lit panel, activate by hand after boot, descend from NullMoth's tree, and say stability is not established; none reports a multi-hour soak; their panics are the same classes (thread_call cap, preemption_level, userptr free, TLB flush timeout, firmware pages). WhateverXe and JulioNectar stay on Gen12. No third-party issue or reply exists on any of these repos (NEW check). NullMoth's own Intel driver is on hold (297).

Q4 macOS 26.7.2 (R27 to R30)

Agree: day-one reports from stacks that do not touch private IO80211 layouts (itlwm, SimpleBCM, Lilu kexts) are clean; the only public break is ours (native Wi-Fi gate). No acidanthera issue or commit mentions 26.7.2 or 25G332 (NEW scan). Disagree: whether the BT loss in R27 is the update or hardware state. Confounded: R27's Bluetooth returned after a suggested power drain, but the step actually taken is unknown, and the reporter's board differs from R28's working 25G241 report; 25G330 is an RC, 25G332 is final (kgp and our own notes used the wrong one first).

Q5 MT7925 and Legion Gen 10 (R27 to R30)

Agree: two native lines run MT7925 on Tahoe (ours, thanhnndev), WPA2 only at about 90 to 180 Mb/s, no 6 GHz, AWDL or sleep; warm restart can wedge the card until a cold power-off (our mt7925 1; Linux mt76 reset fixes). Gen 10 Hackintoshes elsewhere mostly swap in Intel Wi-Fi (wsjj Y9000P BE200, ASUS FX608LP). Disagree: WPA3 (BelikPePe says works, thanhnndev no confirmed WPA3). NEW: AppleALC PR 975 (Ersiter, 10-27) adds ALC287 layout 99 for Legion IAX10H, acidanthera/AppleALC#975.

Q6 Resets after ExitBootServices (R31 to R33)

Agree: nobody has posted an Arrow Lake case of a reset (as opposed to a hang) after EXITBS; hang advice is VT-d off (X2APIC first on some Insyde laptops), MADT type 9, DevirtualiseMmio. Practitioners treat a cold power cycle as the cure when a prior OS left hardware in a state (R32, R33). Disagree: VT-d (our post to 1401 says DMAR is still exposed on our boot, others require it off); CpuTopologyRebuild and SetupVirtualMap on or off. Confounded: hang advice does not transfer to a warm-only reset. Negative search today (1401, NullMoth, acidanthera for reset/reboot/after Ubuntu/Windows) found nothing.

3. Claims we could not verify or that evidence does not support

  • ArrowWhatever "about 60 fps, no tearing" (K9): same-day, no logs attached; its only soak (40 min, https://github.com/Mountainatic/ArrowWhatever/blob/main/docs/performance.md) ran at about 18.8 presents/s before K9. Longest run for any Intel macOS stack is about 40 min.
  • ArrowWhatever "0 panics": 200 s run plus 40 min; the project's own pre-patch panic came at about 20 min. README says it is mainly LLM-built.
  • jwx29/XeGfx description claims Arrow Lake operation, but the repo is a mirror 0 ahead of ours; VedCloud "26,000 frames" is self-reported and the project moved to macOS 27.
  • zep245 links the TLB flush timeout to RC6 only by timing; no root cause.
  • NullMoth "fixed in 2.5.2" covers the hang only (377). HDR "force8BPC" is one unreproduced trace. mickys branches carry AI trailers and cannot go upstream.
  • thanhnndev and BelikPePe results are single-machine, untested for WPA3; HackSucks mtwlm is untested on Tahoe; xarmaq sleep branch is unaudited.
  • Hackintosh "works" tables for Gen 10 laptops are self-reported (Aspect 14). 1401 TROUBLESHOOTING still says EXITBS is core layout or memory map, while its own 2.6.0 notes say VT-d.
  • Linux "fixed by 7.0.10-201" claims mix kernel and BIOS changes (Aspect 3).
  • Intel CI "incomplete - No warnings/errors" is inferred to be a silent stop; the harness cause is not stated.

4. New evidence (fetched today, not in the aspect reports)

  1. Marked NEW in the table: R11 (Intel CI ARL-H silent stops: 16 of 17 issues since 08-01, counted by GitLab REST label platform: ARL_H; MTL_P has 23 among the first 200; xe tracker ARL has 6, all community), R12, R13, R22, and R27 (Bluetooth back at 18:45).
  2. FreeBSD 457 (as400l, 07-20): drm-613 freezes the whole OS where drm-612 stays reachable. FreeBSD 527 (Comet Lake, freebsd/drm-kmod#527): hangs tied to shmem page-out, cured by turning swap off; a cross-check for any shim shmem path.
  3. NullMoth 259 and 1401 48: 5070 Ti desktop "choppy UI" after 2.5.x, resolved by reinstall under Tahoe.
  4. acidanthera bugtracker 2561 (BlueToolFixup CSR pairing, Codex-assisted, Sequoia) and BrcmPatchRAM 39 (bluetoothd patterns are build-specific): nobody has tested BlueToolFixup on 25G332 with a real controller.
  5. No new commits for zep245 since 10-25; jwx29/NvGfx pushed "VRAM Reporting" 10-27 18:21; NullMoth Discussions are disabled, so Discord content is not indexable.

Contradictions and debates

Scope: break the emerging I-116 / I-118 / macOS 26.7.2 conclusions. Tiers: S primary, A expert data, B user report, C press, D weak. Confidence is mine, date checked 2026-10-27 unless noted. GitLab comments were read through the public GraphQL endpoint (the HTML is behind Anubis); lore.kernel.org is 403, so lore links are quoted from GitLab comments only.

1. Verification table

# Claim Verdict Conf / tier Source
V1 0x1901f0 (GEN11_GUC_HOST_INTERRUPT) sits in the MTL GT forcewake range Confirmed. But "needs" is wrong: the commit calls it a FIXME workaround and says the register lives in sgunit and is not itself affected by forcewake High / S https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/intel_uncore.c ; commit 6d46d09a0d7d, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6d46d09a0d7d
V2 N-287 frame _fwtable_write32 <- intel_guc_ct_send+0x7b0 is that doorbell write Partly. Fits the notify path, but the panic carries no register offset, so it is inferred Medium / S local ~/Hackintosh/evidence/native/N-287/panic-string.txt
V3 Every object free sends a GuC TLB H2G Partly (overstated). Gated by VMA unbind (obj->mm.tlb[id]), seqno coalescing (tlb_seqno_passed), with_intel_gt_pm_if_awake, intel_guc_is_ready High / S https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gt/intel_tlb.c ; .../gem/i915_gem_pages.c ; .../i915_vma.c
V4 7D67 uses GuC TLB invalidation and has a media GT in its device info Confirmed: ARL ids bind to mtl_info, has_guc_tlb_invalidation, extra_gt_list = xelpmp_extra_gt High / S https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/i915_pci.c
V5 xe d5b0bf3f37f1 (Wa_22016122933): stale CPU cache lines of the GuC reply on the media GT cause the ~2.3 s late acks Confirmed for xe on media GT (media ver 13.00 = MTL and ARL). Test kernel: ~60 stalls/day to 0 over 1.65M invalidations; v2 series 5M+ invalidations clean. i915 has carried the WA since a161b6dba6e0 (v6.5-rc1) High / A+S https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678 (notes 15, 21, 43, 45, 49 to 51)
V6 XeGfx does not bring up the media GT Confirmed: "Skipping GT1 (Standalone Media GT) - MEI driver not available on FreeBSD" in the XeGfx log of N-277, 279, 283, 285, 286, 287, 288; drm-kmod #ifdef __FreeBSD__ path in c16de0f High / S local ~/Hackintosh/evidence/native/N-2xx/guard/*xegfx-log.txt ; https://github.com/freebsd/drm-kmod
V7 Same-silicon Linux reports show TLB timeouts "followed by freezes" Partly. See C2. xe 8678 owner: 2.3 s hitches, not freezes; 9168 shows freezes with a live kernel Medium / A,B https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/9168
V8 i915 16052, 14469, 12104 are TLB-timeout freezes on this silicon Contradicted for 16052 (probe-time all-ones MMIO, 7d67 on Fedora 7.0.4: RESET_CTL: ffffffff, bad GGC). 12104 and 14469 are MTL, i915, forcewake or GPU-hang cases with the system alive High / B https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16052 ; .../12104 ; .../14469
V9 FreeBSD (amshafer) found a forcewake or RC6-off hold stops freezes Partly. The case is a UI freeze tied to a preemptible ithread running the interrupt handler, with RC6 entry/exit making the GFX_MSTR_IRQ read return invalid state. Correlation, no controlled A/B Medium / A freebsd/drm-kmod#457
V10 zep245 found a GT-awake hold stops freezes Partly. Tiger Lake port (no GuC TLB invalidation), levels nmxgtawake; design doc, no controlled A/B Low-Medium / B zep245 design notes (read from a local copy; repository URL not recorded)
V11 ARL037 is still "Planned Fix" on HX Confirmed in spec update rev 024 (Oct 2026): HX and HX Plus "Planned Fix", U "N/A", H "Fixed". The corpus (Aspect 2 item 10, read from rev 008) assigned the columns wrongly. Text: "A Core May Hang When Entering or Exiting C6 or Deeper Sleep States" High / S Intel doc 834774 rev 024, read from a local copy of the PDF; https://cdrdv2.intel.com/v1/dl/getContent/834774 (URL pattern, not re-fetched)
V12 Microcode for 06-c6-02: 0x11b (ours), 0x121 (20260512), 0x122 (20260811) Confirmed. Release notes cite the spec update generically; no line says ARL037 is fixed High / S https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases
V13 ArrowWhatever patch 0001 fixes a userptr unpin/unwire race that panics after ~20 min Partly. Their doc says so (xg_bsd_vm_page_free <- linux_release_pages <- i915_gem_userptr_put_pages, ~20 min of accelerated desktop). I did not test the fix. Signature differs from ours (deterministic page-free panic, not a stall) Medium / B https://github.com/Mountainatic (docs/userptr-panic.md, read from a local copy)
V14 xnu strings: mp_rv_action() entry: N of M responses (2.0 s spin at TSC 3.072 GHz), mp_kdp_enter NMI ack wait 0.5 s Confirmed in source High / S https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/i386/mp.c
V15 Microcode survives a warm reboot (I-118) Partly. Implied by Arch FS#64498 (intel-ucode 20191113-1: warm-reboot hang, power cycle needed, fixed by downgrade). The kernel doc is silent. I did not check SDM vol 3 sec 9.11 Medium / B https://bugs.archlinux.org/task/64498 ; https://docs.kernel.org/arch/x86/microcode.html
V16 macOS 26.7.2 = 25G332 (2026-10-26); 25G330 was RC3 (2026-10-19) Confirmed. Earlier RCs 25G320, 25G325 High / C https://appledb.dev (macOS 26.7.2 entries)
V17 Kernel collections can be rebuilt from the delta OTA via BXDIFF50 without installing Partly-Confirmed. Kernel, BKC and SKC patch entries carry BXDIFF50 headers whose base SHA-1s match this Mac's 25G241 files. I did not apply a patch (not allowed to run downloaded code) Medium-High / S local OTA catalog host updates.cdn-apple.com/2026FallSeed/... (URL recorded in the research notes)
V18 xe 8678 owner A/B: forcewake held across the whole GT does not stop the ack stall Confirmed (new): GT pinned at C0, c6_residency delta 0, still 9 timeouts High / A https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678 (note 1, 2026-07-30)

2. Counterclaims

C1 (High). The best-known root cause cannot be ours. Wa_22016122933 is scoped to the media GT; XeGfx skips that GT in seven boots (V6). The xe fix is untested on 7D67 and says nothing about GT0 (the xe owner told a GT0 wedge reporter that her series "would not have prevented this", note 26). Do not write "I-116 is the 2.3 s cache bug". https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678

C2 (High). Linux freezes are mostly a different class from N-290. 9168 (ARL-H 7dd1): the freeze came in the same second as the timeout, but the kernel stayed alive (journal kept writing, SysRq-S ran), nmi_watchdog=panic never fired. 9168 note 4 (today, ARL-H 7dd1): timeouts come minutes to hours before the freeze, kernel alive, 4 power-offs in one day. N-290 is the opposite: all other CPUs silent to NMI for 0.5 s, then a panic. https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/9168

C3 (High). A forcewake hold does not cure the TLB-ack bug (V18). Answer to the brief: no, a hold would not stop the xe 8678 stall; it is GuC-side (8 to 9 doorbell kicks ignored, worst 5996 ms) until the cache theory. But XeGfx's problem may be CPU-side (a doorbell write that blocks), which the hold could still help. Two separate mechanisms; the corpus merges them.

C4 (Medium-High). Setup-specific. Same silicon, same XeGfx 0.0.44, same macOS build did a 40-minute soak with zero stalls (local evidence). N-290 died at 88 min under an APFS resize (heavy I/O, NVIDIA boot). Suspect the I/O, the dGPU, the BIOS or config before the TLB path.

C5 (Medium). ARL037 is a weak fit. Intel text: C6 or deeper entry/exit, no MCE, synthetic only, BIOS workaround possible. It hangs a core within a module, not 23 of 24 CPUs. 9168 note 4 froze four times with intel_idle.max_cstate=2, xe.enable_dc=0, PSR and FBC off. Newer microcode is not documented to fix it. Keep it as a low-probability lead, not a cause. https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/9168

C6 (Medium). "Wa applied, platform still dies." xe 8678 note 28: the owner's 7d51 machine locked completely on 2026-09-16 on a kernel with the WA, with no log line at all and the NMI/pstore route capturing nothing. So even on Linux a silent whole-platform death exists that the cache fix does not explain. It is the closest published analogue of N-290, but 7d51 is not 7D67. https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678

C7 (Medium). Every free sends an H2G is overstated (V3). The free-worker and execbuf stacks may still be one event, but through a different gate than "every free".

C8 (Medium). 2.3 s late ack vs a stall that outlasts the panic path. A late ack is a fence timeout while all CPUs run. N-290 reads in two phases (panic-string-133823.txt, xnu mp.c): CPU 5 timed out in mp_rv_action after 2.0 s with 23 of 24 CPUs entered, so one CPU never arrived (id not printed). Then in mp_kdp_enter none of the other 23 CPUs acked even an NMI (1 ack of 24, two 0.5 s waits). A single stuck CPU explains phase one; phase two needs a shared stall (SMM/SMI, fabric or memory, iGPU DMA with VT-d off) or CPUs unable to take NMIs. An uncached MMIO write to a hung target stalls only the issuing core (reasoning, Unverified).

C9 (Low). Possible shim analogue of the cache bug on GT0. If the shim maps GuC shared memory cacheable while the GGTT side is snooped differently, a stale-line effect could appear on GT0 too. Untested idea, no source. Check how xg_vm.c maps CTB pages and what PAT the GGTT entries use.

C10 (Low). Leads that do not match. i915 17098 (7D67 corruption with DDR5 at 7600 MT/s or above, i915 not xe): https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/17098 (not re-fetched). Oct 2026 execbuf presumed_offset fault fixes: not relevant to a stall.

3. Newer items the corpus missed or under-weighted (2026-09 and 2026-10)

  • xe 8678 now holds the answer to the 2.3 s bug: three commits in drm-xe-next (63360b32, fc668a6e with an H2G hunk in xe_guc_ct.c, d5b0bf3f), d5b0bf3f queued for 7.4; backports tested clean on ARL-H 7dd1 and 7d51 (notes 45, 49 to 52). https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678
  • Follow-up "drm/xe: Map Wa_22016122933 buffers WC on the CPU side" (navonjohnlukose, 2026-10-03): d5b0bf3f alone maps the buffers UC on the CPU and regresses xe probe from ~0.35 s to ~3 s and s2idle resume to ~2.9 s; WC fixes both. Only matters if XeGfx ever brings up the media GT. Link (not fetched, 403): https://lore.kernel.org/intel-xe/20261003222145.67240-1-navonjohnlukose@gmail.com/
  • media GT "not started" job timeouts remain after the WA (about 1 per 100 h, recovers in under 1 s). Same thread, notes 47 and 52.
  • i915 16052 (7d67, reported on Arrow Lake-S): Intel's jkrzyszt, 2026-10-08, calls it a hardware or firmware power-sequencing race, asks for cold-boot vs warm-reboot comparison and dGPUs disabled; 2026-10-27: will close as not reproducible without the reporter. Relevant to I-118 (warm vs cold state). Intel's text is marked LLM assisted. https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16052
  • i915 12104 (MTL, forcewake timeouts): triage ping 2026-10-26 asking for a drm-tip retest. https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/12104
  • Intel ARL spec update rev 024 (Oct 2026) adds ARL077 to ARL079 (perf counters, missing #UD) and removes ARL072 and ARL073. None touch C-states, MMIO or the GT. ARL075 (IRET shadow stack) is Fixed.
  • xe 9224 (GT0 wedge: "Timed out wait for G2H, action 550e") and 7694 (MTL, four 6.19 commits exposing the same signature) were read only as quoted in 8678 (note 26, 43). Not fetched directly.
  • No new Linux commit touching the MTL forcewake table for 0x1901f0 in master as fetched today.

4. Unresolved debates

  1. Late ack or blocked doorbell? I-116's frame is a CPU-side write inside intel_guc_ct_send. The Linux bug is a CPU-side read of a stale reply. Different mechanisms; nothing published shows the write side stalling.
  2. One stuck CPU or the whole machine? The rendezvous count (23 of 24 entered) favours one CPU that never arrived; the NMI silence of the other 23 favours a machine-wide stall. The panic string does not name the missing CPU: the "NMI pending" list is every CPU except the panicking CPU 5. Candidates (CPU-side MMIO wait, SMM/SMI, fabric/memory, iGPU DMA) are not ranked by data. A second panic with cpu_signal state or a kdp-free capture would be needed.
  3. Does I-116 share a cause with the Linux "silent platform death"? C6 suggests it might; unprovable without a trace on a 7D67 part.
  4. I-118: microcode persistence across warm reset (V15), iTCO watchdog, VT-d/DMAR state, and 16052's "cold vs warm" are all candidates. I did not re-verify the iTCO and DMAR findings of Aspect 15; they stay Unverified.

5. Claims to soften

  • "Needs GT forcewake" becomes "a FIXME workaround in the fw table takes GT forcewake for that offset" (V1).
  • "Every free sends a TLB H2G" becomes "a free of an object with an unbound VMA, if not coalesced and the GT is awake" (V3).
  • "The 2.3 s acks are root-caused to stale cache lines" becomes "root-caused for the media GT on xe; GT0 and other stalls are separate" (V5, C1, C6).
  • "Same-silicon reports end in freezes" becomes "some freeze, kernel alive; one silent platform death even with the WA" (C2, C6). Drop 16052 from the list (V8).
  • "Forcewake or RC6-off hold stops freezes" becomes "correlated with fewer freezes in two non-ARL ports; the owner's own A/B on ARL showed no effect on the ack stall" (V9, V10, V18).
  • "ARL037 columns" in Aspect 2 item 10: correct to HX Planned Fix, U N/A, H Fixed (V11). Call ARL037 "possible, synthetic-only per Intel".
  • "Microcode persists across a warm reboot" becomes "plausible, one distro regression suggests it, not stated by kernel docs" (V15).
  • "ArrowWhatever's patch explains I-116" becomes "different failure signature; may be a separate bug worth porting" (V13).

6. Not re-verified (labelled Unverified)

Aspect 5's 0x11b-to-BIOS mapping; Aspect 15's iTCO and DMAR claims; xe 8760, 9224, 7694, 7686; i915 16937, 17311, 17098 details; the lore.kernel.org patch bodies; Intel SDM statement on microcode persistence; the exact Intel doc URL for 834774 (document number read from the PDF, URL pattern not re-fetched).

Inconsistencies between the research reports and the source audit

  1. ARL037 on HX. Aspect 2 reads spec update rev 008 as "Planned Fix in four of five steppings", with the column order inferred and ARL-H "N/A". Aspect 5 reads rev 024 (2026-10): HX and S still Planned Fix, ARL-H moved from Planned Fix (rev 008) to Fixed. The two disagree about H in rev 008. HX is Planned Fix in both. Aspect 4 cites only the May 2025 text. Confidence Medium; the column mapping is inferred, re-read the table before using it. Sources: https://cdrdv2-public.intel.com/834774/834774_024.pdf and https://edc.intel.com/output/DownloadPdfDocument?id=8247.
  2. Microcode. Machine runs 283 = 0x11b (Aspect 5). Aspect 4 and Aspect 5 agree on the list (0x118 to 0x122). Aspect 5 says "three newer revisions" but lists two (0x121, 0x122) and later "two Intel releases behind". Dates: 0x121 on 2026-05-12, 0x122 on 2026-08-11. No public text maps either to ARL037; the INTEL-SA-01441 page contradicts itself (denial of service vs privilege escalation, Aspect 5): https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-01441.html.
  3. Which 26.7.2 build ships: consistently 25G332 (final, 2026-10-26); 25G320, 25G325, 25G330 are RC1 to RC3 (Aspect 11, Aspect 12, Aspect 13; https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25G332.json). Open points: appledb lists an installassistant source on 25G325 that nobody explained; the only KDK is 25G330 (https://github.com/dortania/KdkSupportPkg/releases/tag/25G330); Aspect 11 calls the 25G332 kernel string "a gap" while Aspect 12 derived it (12377.161.15.701.48 vs 25G241's .700.19).
  4. Wa_22016122933 versions: Aspect 1 "in master via drm-next-2026-10-21, not in v7.3, targets 7.4"; Aspect 3 "not in v7.1, v7.2 or the v7.3 tag"; Aspect 6 describes the mapping as CPU write-combined, GPU uncached; Aspect 3 says a coherent mapping did not help but CPU-WC with GGTT UC worked. Compatible, but nobody states it plainly. i915's version is from 2023 (https://github.com/torvalds/linux/commit/a161b6dba6e0e8132921a6b948d311cdf67f3476).
  5. GuC firmware: Aspect 6 says "nothing newer than GuC 70.53.0 to try"; Aspect 1 cites drm-firmware MR !84 (70.74.0, merged 2026-09-02, https://gitlab.com/kernel-firmware/drm-firmware/-/merge_requests/84) and Intel CI logs on 70.74.0 (i915 17311). Correct: 70.53.0 is the newest in linux-firmware main; 70.74.0 exists outside it.
  6. GitLab access: Aspect 1 says issue comments return 401 so maintainer replies are invisible; Aspect 6 reads Intel developer comments through GraphQL; Aspect 3 says xe #8678 was unreadable while Aspect 1 gives its details. Quoted maintainer comments need a second look.
  7. Naming and IP version. The kernel and Mesa call 7D67 ARL-S (mtl_info, arl_u); the machine is ARL-HX; ARL-H parts (7d51, 7dd1) are 12.74 Xe-LPG+. Our own probe reads 12.70, media 13.00, display 14.00 (watchthelight-labs/XeGfx#2). Many "ARL" evidence rows are ARL-H or ARL-P (xe #8678, i915 #16937 on 7d51), so they match the silicon family but not the die.
  8. Tier labels differ for the same source: xe #8678 (S in one block, A in another), zep245 DESIGN.md (A vs B), ArrowWhatever (S vs self-reported).
  9. xnu: public source ends at xnu-12377.121.6 (Aspect 3 reads it) while the Legion runs 12377.161.15.700.19 (Aspect 11), so panic strings map to source only approximately.
  10. I-118 timing: Aspect 14 says resets 15 to 40 s after EXITBS:START; Aspect 15 argues an iTCO watchdog with a 30 s default (Linux driver value, not measured on this firmware). Plausible, unproven.

Unsupported or weak numbers

Failure modes, risks and misconceptions

These are the ways the evidence in this dossier is most likely to mislead, grouped by theme. Each theme also lists its own limits above; this section collects the traps that matter when a result is written into project notes or a public page.

Theme 1: I-116, the Intel iGPU stall and panic

Do not write that I-116 is the 2.3 s cache bug. Wa_22016122933 is scoped to the media GT, our log shows GT1 skipped, and the workaround's own reporter saw a silent death with it applied. The trap is borrowing a published fix's confidence for a different mechanism.

The panic's 2.0 s is a timeout, not a measurement of the stall. Reading "a 2 second hang" from it, or the 27 s figure from the N-287 README, misleads: the saved progress file contradicts the README, and the real duration is unknown.

"Forcewake hold fixes it" is two claims. It correlates with fewer whole-system freezes in two ports, each a single machine without a controlled A/B, and it did not stop the late-ack stall on Arrow Lake in xe 8678. A hold that cures I-116 would not prove the xe mechanism, and one that fails would not rule out a CPU-side blocked write.

Several sources are tier B or LLM-assisted: the Intel text on i915 16052 and 12104, the Tiger Lake port's notes, ArrowWhatever's soak, and the FreeBSD BAR2 PR 496 (single author, unreviewed). The lore patch body was not read (403). Last, load correlation is easy to over-read: N-290 is one panic during one APFS resize, and the 20 ms checker may have changed the rate, so a clean 88 minutes is a hint, not a result.

Theme 2: platform, errata and the I-118 early resets

Anchoring on ARL037 because it is the only erratum with the right shape is the main trap: Intel's wording (synthetic, no MCE, one core) is narrower than the panic, and a machine-wide stall would make it a wrong cure. The waker "result" is one observation with a changed instrumentation set, which can hide a coincidence.

Several aspect-level statements should not enter the project notes: that OpenCore decodes reset causes, that Arrow Lake does not use intel_idle, that three newer microcode revisions exist, and that ARL037 is fixed on HX. Where the early research reports and the later verification checks disagree, the checks win.

For I-118, "EXITBS" is a logging boundary and "15 to 40 seconds" mixes POST and human reaction, so both look more precise than they are. The four failures also come from one sequence, so GSP, microcode and VT-d each fit all four rows and none is separated from the others. A cold pass such as N-293 (Discrete NVIDIA, VT-d on) says little about Hybrid mode or a post-Linux boot.

Finally, 1401 guidance comes mostly from desktop and Insyde laptop reports. Copying "VT-d off" or "CpuTopologyRebuild on" into a config that already passes would change behaviour for no proven gain, and any such change touches the OpenCore config and needs Bash's OK.

Theme 3: NVIDIA and Intel Xe on macOS

The race fix could be mistaken for an I-116 fix. It closes a real window, but the failure signature differs; if the stall continues after the port, the log should say the race was removed and the stall remained.

Self-reported peers are rated B for a reason. ArrowWhatever and jwx29 are LLM-driven projects with results from one machine each and no independent reproduction. Their "stages passed" counts are bring-up milestones, not stability, and a pass on their hardware says little about ours.

The HiDPI story keeps moving. The 1.3x ceiling, the 12-byte versus 16-byte split and the missing-flag explanation have each been corrected at least once, and the flag is in our package although its effect on 26.7.1 may be nil. Do not state a cause in a public note until a mode list changes after a boot.

A 115 W control that works on AC says nothing about battery, sustained thermals or Dynamic Boost. The Linux issues describe platform handling that macOS reaches only through our opt-in boot-args, so their fixes may not transfer.

Translation counts ("53 to 0 failures") can hide a faulting GPU. Count rendered frames, GPU faults and Metal errors rather than translator statuses, and do not adopt 419 until its conflict with 385 is settled in a test.

Theme 4: macOS 26.7.2, MT7925 and Gen 10 reports

"25G330 is the 26.7.2 release" is wrong and is already in our notes and a public reply. The identical Intel kernel files for 25G330 and 25G332 make the mistake harmless for kernel-side questions, but that equality must not be stretched to user-space files such as bluetoothd or airportd.

A clean kcabi result is not a pass. It covers three kernel families of one vendor stack; the OTA bill of materials shows airportd at 3,228,064 bytes on 25G241 and 3,228,096 on 25G332, so the Wi-Fi daemon changed too. The Wi-Fi menu depends on user-space behaviour kcabi cannot see, so a boot test stays necessary.

The reporter's Bluetooth recovery is easy to over-read. It is one anecdote from a desktop board, the step is unrecorded, his Wi-Fi refusal reason was never captured, and a card-state fault explains it as well as an OS change. The Legion's own bluetoothd is also unexplained: its CRC32 does not match the OTA's record of 25G241, so claims that rely on "stock 25G241" for that binary should wait until this is understood.

Hackintosh EFI repositories are not proof for our machine. They have other SMBIOS identities and other panel routing (wsjj disables the iGPU and drives the panel from the NVIDIA GPU, while our Hybrid boots use the Intel iGPU), and their documentation can drift from their plists. 1401 rules are scoped by machine class, and a rule that fixes a desktop can panic a laptop.

Some figures are not primary: the three-year Intel security horizon is press relay, and the AI-written thanhnndev README reports performance for one laptop. Neither belongs in our public pages as established fact. Absence of reports is also weak evidence: no acidanthera issue mentions 26.7.2 and no NVIDIA or Xe driver has a 25G332 report, mainly because few people have updated yet.

Gaps and limitations

The gaps are listed by how much they change a decision, not by theme.

No public analogue with CPU backtraces exists for an NMI-ignoring stall on this silicon. Every public Meteor Lake and Arrow Lake freeze report found (xe 7694, 9168, 9224, i915 12104, 16937 and others) comes from Linux, and the ones that identify a mechanism describe a live kernel (SysRq works, the journal keeps writing) or a total silent death with nothing captured. None carries a per-CPU state dump comparable to the I-116 panic. The research therefore ranks mechanisms by plausibility, not by a match to a published trace, and the strongest items (the doorbell write, the TLB invalidation path, the power-state errata) are candidates. Nothing found shows the CPU-side write stall that the I-116 frame suggests.

The one confirmed root cause for Arrow Lake GuC late acknowledgements probably does not apply. The stale-cache-line fix (xe commit d5b0bf3f37f1, Wa_22016122933) concerns the standalone media GT. XeGfx skips that GT in every recorded boot, so the fix is relevant only if the media GT is ever brought up. The public evidence for it comes from ARL-H parts (7D51, 7DD1), not 7D67.

Intel documentation is partial. There is no public programmer's reference for Meteor Lake or Arrow Lake graphics, so register behaviour comes from kernel source only. The Arrow Lake specification update (revision 024, October 2026) lists ARL037 as "Planned Fix" on HX, but the column mapping was read from text extraction and from an earlier revision, and Intel does not map errata to microcode revisions in public text. Whether microcode 0x121 or 0x122 changes anything for I-116 or I-118 is unknown. The contents of Lenovo's BIOS S2CN26WW (microcode revision, SAGV, ASPM and C-state options) were inferred from sibling readmes and the revision the machine reports, not read from the firmware.

Search reach was limited. The shared web search budget (200 calls) was exhausted during the run, so the later work used direct fetches only, and every "no report found" statement means "none found in one pass". Specific blind spots: Chinese-language Hackintosh forums (pcbeta, the 黑果小兵 blog, bilibili); gitlab.freedesktop.org issue pages (behind a bot check, so comments came through the public GraphQL endpoint and closure reasons stayed invisible); lore.kernel.org (403, so patch bodies are quoted from tracker comments); FreeBSD Phabricator and Bugzilla; Intel's older specification-update revisions (403). The Legion Pro and 285HX Gen 10 variants have no Hackintosh reports in the sources reached.

Self-reported project claims were not reproduced. The Intel Xe on macOS projects (ArrowWhatever, jwx29's fork, VedCloud, zep245) publish frame rates, soak lengths and "zero panics" figures without attached logs, and several are partly built on this project's own XeGfx core. They are graded B and treated as claims. None of their longest soaks exceeds about 40 minutes, which is shorter than the failure window of I-116.

The 26.7.2 work is byte-level only. The kernel collections were reconstructed and checked against hashes, and a class-layout comparison against 25G241 ran, but nothing was loaded on hardware and nothing was installed. Whether the three layout differences break MtkWlanNative, and whether the build-specific Bluetooth byte patches still match, are untested. The public xnu source tag (12377.121.6) is older than the kernel the Legion runs (12377.161.x), so panic offsets map to source only approximately.

I-118 rests on analogy. The leading explanations (microcode persisting across a warm reboot, a Linux-armed TCO watchdog, GSP/WPR2 state left by the previous OS, a VT-d state difference) come from precedents on other CPUs or other drivers, one of them from 2019. No public report describes an Arrow Lake reset, as opposed to a hang, at that point in the boot. Nothing decisive can be said until the cold-versus-warm column and the microcode revision are recorded across a probe-then-macOS pair.

Date and naming conflicts remain in the sources. Two ARL037 column readings disagree about the H line in revision 008 (both agree HX is Planned Fix); a repository's commit dates read as 2026-10-28, after the day of the run; the project's own tracker calls 26.7.2 "25G330", which was the third release candidate. These are listed with the other inconsistencies in the contradictions section.

Devil's advocate

This section keeps the objections as raised. The theme text, the key insights and the ranked actions were edited in response, so some quotations below (for example the wording of the stalled-MMIO insight and the position of the NVRAM-trace run in the list) describe the drafts before the edits. I attacked the dossier's strongest claims and its ranked actions on 2026-10-27 with read-only fetches. The factual spine held: intel_idle has no Arrow Lake table (intel_idle.c, S, High), and S2CN26WW and microcode 0x11b are as stated. The inference on top did not: which mechanism I-116 is, which control is a control, and which experiment goes first.

Strongest objections

  1. The stalled-MMIO reading is over-read (high). Theme 1 says our observables "fit a stalled MMIO transaction" and leans on Gleixner's mail (A). That mail is about HPET-clocksource time failing to propagate after a hung PCI config read, so "the NMI is a red herring" is a statement about that path, not a rule. The N-287 panic CPU took an IPI (cpu_signal_handler sits above fwtable_write32+0xfa in evidence/native/N-287/panic-string.txt), so it was a waiter that happened to run driver code. N-288 to N-290 put the panic CPU in idle, in pmap_remove_range and in APFS nx_bio_doread: one run of four is in the driver. Both timeouts are xnu constants (S), and the silent CPU is unnamed. The data say the machine stopped answering for at least 2.5 s. They do not separate a hung uncore write, an SMI, an EC or firmware event, or a failed deep-idle wake. MMIO confidence: Low.

  2. SMM is an unnamed, testable rival (high; Low confidence). xegfx.nvram_trace writes xegfx-step every 250 ms through native NVRAM and has been on in every guard capture since N-223. On EDK2-derived firmware, runtime variable writes are normally sent into SMM (VariableSmmRuntimeDxe.c, S), and zep245 measured about 19 ms per sync (DESIGN.md, B). Whether this Insyde build does so is Unverified. An SMI stops all threads while TSC keeps counting, which fits the 2.0 s first phase; the second needs a stall that outlasts 2.5 s or recurs. The discriminator is the SMI count (MSR 0x34) plus TSC gaps. Theme 3 calls the switch "cheap to close and unlikely to be the cure" while the master list puts the run ninth.

  3. The experiment order is wrong (high). Cheaper steps sit behind a 12-session design. (a) Set debug.legioncpu.{pl,hwp,epp} to stock for one session: a sysctl, no kext change, no reboot. (b) Check whether the existing LegionCpuProbe 1.1 can already read MSR 0x34 before proposing a kext change. (c) One nvram_trace=0 run. Only then the 2x2. Thirty-minute sessions may show nothing: 0.0.43 passed 900 s and died at 88 minutes, and an arm with zero events teaches nothing. Each stall ends in a panic or hang, and an unclean end already rolled APFS file sizes back at N-293 (N-292 README). Use a stopping rule, not a fixed 12.

  4. LegionCpuPower is an uncontrolled variable (high). Version 0.4.1 was loaded in N-290 (evidence/native/N-290/guard/kmutil.txt). It lifts the MCHBAR limit to 120/168 W and gives every core its own HWP range, which is MMIO and MSR traffic into the same power machinery any stall or idle-exit story involves. The I-116 themes never mention it, and Linux ran at stock limits, so it is no control for it.

  5. The controls are weaker than described (high for "another shim"). ArrowWhatever was created 2026-10-25, has 0 stars and describes itself as built on XeGfx, so it is our shim plus overlay patches. Its 40-minute soak is self-reported (B), tests its own userptr fix, and falls inside our own spread. Linux N-274 ran 47 minutes without WindowServer, XeGfx or LegionCpuPower. A read-only diff of its overlay patches against our branch is worth more than either.

  6. Firmware and idle reasoning contradict themselves (medium). Theme 1 says the fix "may live outside every driver" and asks for "a BIOS with the pcode half"; Theme 2 says "No firmware fix exists to wait for" at High. Both rest on absence claims from one search pass. macOS does not load microcode, and no newer BIOS exists to flash. Theme 2 says the waker "adds C6 transitions" while the N-290 README says it keeps cores out of deep idle; neither is measured. The spinner arm also changes power, temperature and the guard's 10 W steps, so it is not a clean idle control.

  7. Risk and wasted reboots (medium to high). tlbto_us=0 makes xnu trace without panicking, which removes the one artifact I-116 yields and turns a stall into a power-button hang. A larger slto_us answers "does it end" only for stalls between 2 and N seconds; a TSC-gap log needs no NVRAM. On 2026-10-27 the live OCEFI config reads SetupVirtualMap false and ForceExitBootServices true, while the public EFI copy shows the reverse, so the Booter A/B changes a working, picker-less boot path and may reproduce an I-118 stop for nothing. The "per-CPU heartbeat" is a second waker. The allow-list entry looks like policy, but MtkNativeAbi.hpp (source) is a safety gate, and kcabi's _kern_netif_queue_rx_enqueue field move (0x4d8 to 0x4e8) is unreviewed.

Biases in the corpus

  • Selection. Linux trackers hold failures; clean runs are silent. The "Linux Xe reports" class is over-represented.
  • Confirmation. Our two hypotheses (MMIO stall, C6 and the waker) framed the queries; SMM, EC and MCA material is thin because nobody searched for it.
  • Recency and volume. About two thirds of the sources are GitHub, many under two weeks old, and some Intel comments are LLM-assisted.
  • Vendor. Intel's spec update lists what Intel found; "Planned Fix" is not "absent".
  • Survivorship and transfer. Public ports are the ones that worked, and the forcewake-hold evidence comes from two non-Arrow-Lake ports (Tiger Lake, Meteor Lake).
  • Self-report and citation loops. Repos like ArrowWhatever grade themselves; FreeBSD and OpenBSD import Linux i915, so agreement is not independent.

What would change our mind

  • Stalls persist at stock LegionCpuPower limits: the power kext drops out. They vanish: it becomes the lead.
  • nvram_trace=0 removes the stall: SMM or firmware cost becomes the lead, and the MMIO model drops.
  • SMI count jumps across a stall, or TSC gaps appear with no SMI: that separates SMM from an uncore hang.
  • A symbolized panic RIP and a named silent CPU in two runs.
  • An ArrowWhatever overlay patch we lack that plausibly removes a stall.

Decisive evidence

Per run: LegionCpuPower setting, MSR 0x34 before and after, TSC gaps, cold or warm start, time to stall, panic CPU context, under a fixed load and a stopping rule set in advance.

Actionable takeaways

The list below ranks the actions from all four themes by value for the cost and risk of the step. The per-theme lists after it keep the full wording and evidence. "OK" means the step needs Bash's explicit approval under the project rules (kexts, boot-args, NVRAM, BIOS, macOS updates, outside posts). Nothing here was done by the research run.

Ranked list

Group 1: no approval needed (records, reading, analysis)

  1. Fix the 26.7.2 build name in the project records. Replace "25G330" with "25G332" (and say 25G330 was the third release candidate) in tracker rows R073 and R074, the handoff and the follow-ups to the reply in mt7925-hackintosh-wifi issue 4. A public correction on that thread is Bash's call. Target: tracker and docs. Evidence: appledb 25G332. Confidence: High. OK: not for the records.
  2. Add four columns to every boot attempt row: cold or warm start, microcode revision before and after, GPU mode, VT-d state. Include the Ubuntu probe's microcode and watchdog lines. Target: tracker attempt rows, the I-118 evidence folder. Evidence: i915 16052, Intel microcode releases. Confidence: High that it costs nothing, Medium that it will separate the I-118 candidates. OK: not needed.
  3. Correct the I-116 and I-118 notes. The panic's 2.0 s is a timeout and not the stall length; the 27 s figure in one run record contradicts the saved progress file; "EXITBS" is a logging boundary; StartupPowerEvents does not decode reset causes; max_cstate=2 still allows a C6-class state; ARL037 is synthetic-only and Planned Fix on HX; only two newer microcode revisions exist. Target: I-116 and I-118 evidence READMEs, handoff. Evidence: xnu mp.c, Intel 834774. Confidence: High. OK: not needed.
  4. Write the N-294 attribution note before booting. List NullMoth's 2.5.4 and 2.5.5 driver changes apart from the project's commits and the two state-cache switches, and note a cold-cache warning, so one result can be read against both sets. Target: handoff and the attempt README. Evidence: NullMoth 2.6.2, issue 370. Confidence: High.
  5. Read-only checks that remove candidates for I-116: whether the SSD sits behind Intel VMD (ARL004), whether powermetrics shows C-state residency, the VT-d and X2APIC rows in the BIOS and a MADT dump, whether the live bluetoothd differs from the OTA record (and why). Target: notes. Evidence: Intel 834774, Theme 2 and Theme 4. Confidence: Medium. OK: not needed for reading.
  6. Audit the shim stand-ins by reading source: in_atomic, irqs_disabled, rcu_preempt_depth, the cancel_delayed_work_sync return value, the IRQ handler's context, and the cache attribute of the CT, ADS and log pages. Target: XeGfx shim. Evidence: freebsd-src 4f2f26fb1e8a, 79e290d96786. Confidence: Medium. OK: not needed for reading.
  7. Review the three kcabi differences by hand (the _kern_netif_queue_rx_enqueue field move and the two NAN datapath immediates) against MtkWlanNative's callers, and write the OTA route into a small helper beside kcabi that also lists changed user-space files. Target: kcabi, abi notes. Evidence: kcabi, bxdiff50.go. Confidence: Medium (analysis), High (method). OK: not needed.
  8. Document the Blackwell power finding and the 615.71.10 and 615.78.08 diff result in notes/power.md with one table of the 50, 100 and 115 W figures. Evidence: NVIDIA compare. Confidence: High.

Group 2: cheap experiments that need approval (existing switches, sysctls or stick-side work), in this order

  1. A session at stock LegionCpuPower limits (debug.legioncpu.{pl,hwp,epp}), with the SMI count read before and after. LegionCpuPower 0.4.1 was loaded in N-290 and lifts the MCHBAR limit to 120/168 W and gives each core its own HWP range, while Linux ran at stock limits; none of the I-116 analysis so far treats it as a variable. It is a sysctl with no kext change and no reboot. Check first whether LegionCpuProbe 1.1 can already read MSR 0x34. Target: LegionCpuPower, LegionCpuProbe. Evidence: devil's advocate section, the N-290 guard capture. Confidence: Medium that it is worth one session. OK: yes (the sysctls change power behaviour).
  2. One xe-guard run with xegfx.nvram_trace=0, paired with the SMI-count read. The trace has been on in every guard capture since N-223 and writes native NVRAM every 250 ms; the Tiger Lake macOS port measured about 19 ms per sync, and on EDK2-derived firmware runtime variable writes normally run in System Management Mode (Unverified for this Insyde build). If the stall vanishes, firmware cost becomes the lead; if the SMI count jumps across a stall, SMM is confirmed. Target: XeGfx debug knob. Evidence: zep245 design notes, VariableSmmRuntimeDxe.c. Confidence: Medium that it is worth one boot, Low that it is the cure. OK: yes (it changes what a guarded boot runs).
  3. Only then, the 2x2 of the 20 ms waker against gtawake 0 and 2 (and irqoff_check=0). Use a fixed I/O load, a session budget and a stopping rule set in advance (stop an arm pair after three stalls in one arm and none in the other). A 30 minute arm may show nothing, because N-290 passed 900 s and died at 88 minutes, and every stall ends in a panic or a hang with the risk of an APFS rollback (N-292 and N-293 showed file sizes rolled back). One run per arm cannot separate a rare event; xe 8760 used a single 20 minute arm. Target: XeGfx 0.0.45, xe-guard. Evidence: drm-kmod 457, xe 8678. Confidence: Medium. OK: yes (confirm the batch).
  4. I-118 arms with the Ubuntu probe stick and a full power-off between sessions, with modprobe.blacklist=nouveau so the dGPU's GSP state cannot persist, and the watchdog state recorded. Target: probe stick, no macOS change. Evidence: open-gpu-kernel-modules 1353, Arch FS#64498 (background only). Confidence: Medium. OK: Bash must be present for the power-off and any macOS restart outside a staged attempt.
  5. Passive timing in XeGfx: TSC deltas around the doorbell write, the forcewake wait and the TLB-ack wait, and per-CPU timestamps in a ring read at panic. Do not add a per-CPU heartbeat thread, which is a second waker and recreates the confound; do not mix it with waker arms in one boot. The aim is to name the missing CPU of "23 of 24". Target: XeGfx shim, debug.xegfx_log. Evidence: LKML on stalled MMIO (about HPET after a hung PCI read, so a model and not a rule), 6d46d09a0d7d. Confidence: Medium. OK: yes (kext change).
  6. Extend LegionCpuProbe with C-state residency MSRs, the SMI count and the MCA banks, and read the banks on the first boot after the next stall. Target: LegionCpuProbe. Evidence: Intel 834774. Confidence: Medium. OK: yes (kext change). Reading with an existing tool is read-only.

Group 3: code that closes a known defect (log it as such)

  1. Port the userptr unwire fix as the project's own commit, written from the invariant stated in the ArrowWhatever note and not from their patch text, and log it as "race removed", never as an I-116 attempt. Target: XeGfx xg_vm.c, branch xe-2.6.2. Evidence: userptr note, xg_vm.c. Confidence: Medium that the window exists in the project's code, High that it differs from I-116's signature. OK: yes (kext change).
  2. Test the N-294 drag work with a heavily redrawing terminal and the two state-cache switches toggled, and record the result for NullMoth issue 412. Target: NvGfx plugin, my-settings block. Evidence: issue 412. Confidence: Medium. OK: yes (staging and reboot, GPU guard rules).

Group 4: needs approval and has a real downside, or low expected value

  1. A long slto_us for one stall run, as a late optional step. It only separates stalls between the old and the new timeout, needs an NVRAM write, and may waste a reboot; a TSC-gap log answers the same question passively. Do not use tlbto_us=0: it makes xnu trace without panicking, which removes the one artifact I-116 produces and turns a stall into a power-button hang. Confidence: Low to Medium. OK: yes (boot-args in NVRAM).
  2. Route PPGTT TLB invalidation through the MMIO fallback. Not a one-flag change because GGTT invalidation also goes through the CT on these parts; prefer throttling or batching frees. Evidence: 2d6e2b10a773, af58ee227662. Confidence: Medium on the warning. OK: yes.
  3. Decide whether to add the 25G332 kernel tag (701.48~2) to the MtkWlanNative allow-list as an unverified build, only after the hand review of the three kcabi differences (item 7) and a reporter's ioreg output. The gate is a safety gate with a live class-size check, so a wrong entry could panic other people's machines; the Legion cannot test it without updating macOS. Confidence: Low. OK: yes (kext change; updating macOS is a separate yes).
  4. Quirk A/B for I-118 (SetupVirtualMap on with ForceExitBootServices off on OCEFI, stick untouched). A hypothesis from two other 275HX EFIs; normal boots pass today. The live OCEFI config reads SetupVirtualMap false and ForceExitBootServices true (read 2026-10-27) while the public EFI copy shows the reverse, so reconcile the two first, run it only with the stick ready and after the cold-or-warm column exists, because it changes the only picker-less boot path and could produce an I-118 style stop for nothing. Evidence: ASUS FX608LP EFI, 1401 issue 58. Confidence: Low. OK: yes (OpenCore config).
  5. Do not do: chase a BIOS flash or microcode injection as a mitigation, install 26.7.2 on the Legion to look, or change VT-d on the strength of desktop reports. None has public support strong enough for the risk. Any of them needs Bash's OK first.

Outside posts (Bash decides, and each needs a contact log afterwards): a signature comment on xe 8678, xe 9168 or an i915 tracker after the timing data exists; a 385 test result and a 354 datapoint for NullMoth; the open reply to jwx29; a correction on mt7925-hackintosh-wifi issue 4.

Actions in full, by theme

EOF

Actions from theme 1: I-116, the Intel iGPU stall and panic

  1. Reconcile the N-287 27 s gap with ws-progress.txt and record the 2.0 s rendezvous arithmetic in the I-116 evidence README and the handoff (XNU mp.c). Documentation only. Confidence: High. Bash's OK: not needed.
  2. Audit the shim stand-ins by reading source: in_atomic, irqs_disabled, rcu_preempt_depth, cancel_delayed_work_sync return values, irq_work under RCU, the IRQ handler's context, and the cache attribute and PAT of the CT, ADS and log pages (C9). Evidence: 4f2f26fb1e8a, 79e290d96786, 0d022baa047a. Confidence: Medium. Bash's OK: not needed.
  3. Queue paired runs of the built-but-unbooted XeGfx 0.0.45 switches (gtawake=1, gtawake=2, irqoff_check=0) against a control, same load and window, including an I/O-heavy run like N-290. One run per arm cannot separate a rare event (xe 8760 used a single 20 minute arm), so plan repeats. Evidence: zep245, xe 8678. Confidence: Medium. Bash's OK: needed (installs a kext; boots follow the project rules).
  4. Add TSC-delta timing around the doorbell write, the forcewake ack wait and the TLB-ack wait, plus a ring of near-miss late acks and passive per-CPU timestamps read at panic (not a heartbeat thread, which is a second waker) so the missing CPU of "23 of 24" can be named, logged to debug.xegfx_log. Evidence: 6d46d09a0d7d, LKML. Confidence: Medium. Bash's OK: needed (kext change).
  5. Optionally a larger slto_us for one run, to learn whether the stall ends or never ends. Never use tlbto_us=0, which loses the panic string. Confidence: Low to Medium. Bash's OK: needed (boot-args).
  6. Before any TLB-path test, study why Meteor Lake requires GuC TLB invalidation (2d6e2b10a773, af58ee227662); prefer throttling or batching frees over clearing the flag. Confidence: Medium. Bash's OK: needed for any boot test, not for reading.
  7. Idle-state and microcode A/B (C-state limit); no BIOS with the pcode half exists, since S2CN26WW is the newest, and any BIOS setting change needs Bash's explicit OK. Evidence: 8fa1c7cd1fe9, Intel 834774. Confidence: Low. Bash's OK: needed (BIOS).
  8. GuC 70.74.0 trial. Low expected value, since 70.72.1 matched 70.53.0 in xe 8678. Confidence: Low. Bash's OK: needed (firmware loaded by the kext).
  9. A comment on xe 8678, xe 9168 or an i915 tracker describing our signature (23 of 24, NMI silence, a forcewake-hold A/B) would help upstream, but whether and when to post is Bash's decision; I suggest waiting for action 4.

Actions from theme 2: platform, errata and the I-118 early resets

  1. Add cold/warm, microcode-before-and-after, GPU-mode and screen-photo columns to every boot attempt row; record the Ubuntu probe's microcode line. Tracker and process, no OK needed. Evidence: 2.5, 2.9. Confidence: High.
  2. Correct the notes: StartupPowerEvents does not report reset causes, max_cstate=2 does not exclude C6, ARL037 is synthetic-only and Planned Fix on HX, and only two newer microcode revisions exist. Docs and handoff, no OK. Evidence: 2.1, 2.3, 2.4, 2.5. Confidence: High.
  3. Run the I-118 arms A to D with the Ubuntu probe stick and a full power-off between sessions. Probe-stick procedure; needs Bash at the machine and his go for any macOS restart outside a staged attempt. Evidence: 2.6 and 2.9. Confidence: Medium.
  4. Run the I-116 2 by 2 (waker, gtawake) only after a stock-limit LegionCpuPower session and the nvram_trace=0 run, with a stopping rule and a session budget, a fixed I/O load, through xe-guard. XeGfx 0.0.45 knobs exist; the xe-guard standing go covers self-judged runs, but confirm the batch with Bash. Evidence: 2.8. Confidence: Medium.
  5. Try powermetrics for C-state residency; if empty, extend LegionCpuProbe with the C-state MSRs, SMI count (0x34) and MCA banks (0x401 on). Kext change, needs Bash's OK. Evidence: 2.3. Confidence: Medium.
  6. Run a 2-hour Ubuntu probe with the disk loop and an iGPU workload as the platform-only control, grepping for Invalid mmio. Probe stick, no OK beyond Bash's presence. Evidence: 2.2 and 2.8. Confidence: Medium.
  7. Raise slto_us for one stall run to see whether the stall is finite. Boot-arg in NVRAM, needs Bash's OK. Evidence: 2.1 and 2.8. Confidence: Low.
  8. Optionally comment on i915 16052 with cold/warm and dGPU facts. Outside post: Bash decides, and the issue is slated to close on 2026-10-27. Evidence: 2.2. Confidence: Medium.
  9. Do not chase BIOS flashes or microcode injection. None is available; any BIOS change needs Bash's OK. Evidence: 2.4. Confidence: High.

Actions from theme 3: NVIDIA and Intel Xe on macOS

  1. Run XeGfx with xegfx.nvram_trace=0 in the next xe-guard batch (XeGfx, xe-guard queue). Highest value per risk: one existing switch, never tested (xg_kext.cpp, DESIGN.md). Confidence Medium. Needs Bash's OK (it changes what a guarded boot runs).
  2. Write the N-294 attribution note before booting (docs: handoff and the attempt README): base-change items (2.5.4, 2.5.5) listed apart from our commits, the two switches, a cold-cache warning (release, 370). Confidence High. No OK needed.
  3. Port the ArrowWhatever unwire fix as our own commit after reading the patch against xg_vm.c (XeGfx shim, branch xe-2.6.2), logged as "race removed", not as an I-116 attempt (patch). Licence matches ours. Confidence Medium. Needs Bash's OK (kext change).
  4. Test N-294 drag work with a heavily redrawing terminal, the two switches toggled (NvGfx plugin, my-settings block of nvrm610.conf), and record the result for 412. Confidence Medium. Needs Bash's OK for staging and the reboot.
  5. Keep the existing gtawake=1|2 and irqoff_check=0 A/Bs, one variable per boot (xe-guard queue), and read any "TLB flush timeout" panic as CPU-side (mp.c). Confidence Medium. Needs Bash's OK.
  6. Add the 615.71.10 and 615.78.08 diff finding, and one table of the 50, 100 and 115 W figures, to notes/power.md and the power evidence folder (compare, NVIDIA). Confidence High. No OK needed (docs; the PSREF line still has to be read by a PDF reader).
  7. Outside posts are Bash's call: a 385 test result, a 354 datapoint, and the open jwx29 A/B reply would help others, but nothing is sent without his decision (385, 354). Confidence High that they are useful.

Actions from theme 4: macOS 26.7.2, MT7925 and Gen 10 reports

  1. Correct the 25G330 wording in the tracker research rows (R073, R074), the handoff and the issue 4 follow-ups, and record the OTA provenance (25G241 plus Intel delta, verified by result SHA-1 and bill of materials, shortened identities only). Docs only, no OK needed. Evidence: AppleDB 25G332. Confidence: High.
  2. Ask 25G332 reporters for ioreg -rc MtkWlanNative -l -w0 | grep -E "MtkNativeDeclined|MtkNativeLast", and whether LegionBtFix and MtkBt loaded, so the real refusal reason is on record. Read-only, on our own issue; Bash decides on any post elsewhere. Evidence: MtkNativeAbi.hpp. Confidence: High.
  3. Review the three kcabi differences by hand: read the callers of _kern_netif_queue_rx_enqueue in MtkWlanNative against the 0x4d8 to 0x4e8 move and confirm no MtkWlanNative code uses the NAN interface classes. Analysis only, no OK needed. Evidence: kcabi. Confidence: Medium.
  4. Check LegionBtFix's byte window and page hash against the 25G332 bluetoothd without touching system files. First explain why the live /usr/sbin/bluetoothd differs from the OTA pre.bom CRC32 (read-only), then apply the patch to the right base or ask a reporter for his file. The read-only part needs no OK; any LegionBtFix change touches a kext and needs Bash's OK. Evidence: LegionBtFix. Confidence: Medium.
  5. Turn the OTA route into a small standard-library helper beside kcabi, named plainly, and add airportd and other changed user-space files to its BOM diff. Keep Apple binaries and long hashes out of git and the public repos. Tooling and docs only. Evidence: bxdiff50.go. Confidence: High.
  6. Keep the Legion on 25G241 and ask Bash before any update. If he approves one: a cold power-off (the MT7925 warm-restart wedge, issue 1), the kcabi refresh, the gpu-guard and xe-guard flows, an expected LegionBtFix decline, and a restorable 25G241 EFI and volume. Needs Bash's explicit OK. Evidence: Apple macOS page. Confidence: High.
  7. Decide whether to add 701.48~2 to the MtkWlanNative allow-list as an unverified build for 25G332 reporters. Touches a kext, so Bash must say yes; the Legion cannot test it without updating macOS (item 6), so only a reporter could. Evidence: 4.3 and 4.4. Confidence: Low.
  8. Read-only BIOS and OpenCore survey: the VT-d and X2APIC rows in S2CN26WW and a MADT dump. The A/B of SetupVirtualMap on with ForceExitBootServices off on OCEFI (stick untouched) needs Bash's OK. Evidence: 1401 issue 58, ASUS FX608LP EFI. Confidence: Low.
  9. Port Linux ideas after a diff read: ROC lifetime through the 4-way handshake, drv_pmctrl and fw_pmctrl return checks, a reset on WMT timeout in MtkBt, and a 20261016 firmware A/B with the old pair as rollback. Kext changes, so Bash's OK. Evidence: ac22c8c723c6, b3078bb2ee12. Confidence: Low.
  10. Compare the LenovoLegionLinux 0x5508 fan table with the LegionFan curve (read-only), and publish a dated MT7925-on-macOS comparison or a 1401 note only if Bash wants them. Outside posting is Bash's decision. Evidence: LenovoLegionLinux. Confidence: Low.

Methodology

Scope and framing. The brief was a technical research question with an implementation-planning purpose: what the public web, up to late October 2026, knows that helps the project. The inferred type is technical research plus claim verification, with the project's own tracker rows treated as claims to check and not as ground truth. It is not a high-stakes domain in the legal or medical sense, but changes to boot configuration can leave the machine unbootable, so every action lists whether it needs Bash's explicit approval.

Plan. Fifteen aspects were derived from the six questions in the brief, each with queries covering a primary source, a recent source, an adversarial angle, a practitioner angle and a failure angle where they applied: GuC CT stalls (1), MMIO and forcewake (2), TLB invalidation and the free worker (3), C-states, RC6, DC and PSR (4), platform errata, microcode and BIOS (5), Arrow Lake enablement, workarounds, firmware and Mesa (6), FreeBSD and OpenBSD ports (7), NVIDIA on macOS through NullMoth and forks (8), Blackwell laptop power (9), Intel Xe on macOS (10), macOS 26.7.2 (11), offline kernel collections (12), MT7925 on macOS (13), Legion Gen 10 and Arrow Lake Hackintosh reports (14) and early resets after ExitBootServices (15).

Execution. The skill's Workflow tool was not available in this session, so the same roster ran as parallel agent calls. Wave one was fifteen aspect agents, each writing a report of 30 to 44 KB with a per-claim tier, date, confidence and direct-versus-inference label. Wave two was four agents over the whole set: a source auditor (domain counts, regrade of tiers, citation loops, weak sources, recommended removals), a contradiction hunter that also re-verified load-bearing facts independently (and corrected several), a timeline agent and a practitioner-reality agent. Four theme drafters then wrote the main findings from the aspect reports and the wave-two files, a devil's advocate attacked the drafts, and the editor assembled the dossier and applied the gate.

Tools and reach. Reads used gh api for GitHub (read-only GET), the GitLab REST and GraphQL interfaces for freedesktop.org, plain HTTP with range requests for Apple's delta OTA listing, local reads of the project's own evidence and source, and web fetches. The shared web-search budget ran out part way through, after which only direct fetches were possible. The limits that follow from this are in the gaps section.

Tiers. S is a primary artifact (a commit, source code, a specification or a vendor document). A is maintainer or expert text with data. B is a user report, an issue thread or a self-reported project. C is press or a blog. The auditor regraded the agents' own labels, which were inflated: by the agents' labels about 75 percent of unique URLs were S or A, by the auditor's rule-based regrade about 50 percent. The sources table uses the regrade. Every claim in the evidence table carries High, Medium, Low, Unverified or Contradicted, with the date checked (2026-10-27).

Claim hygiene. A claim from one self-reported repository is Unverified until reproduced. A reading of a commit message is Medium unless the source code also shows it. Anything that rests on the panic text alone, with no register offset in the report, is inference and is labelled so. Where the verification pass disagreed with an aspect report, the verification wins and the text says so.

Privacy. The dossier names no serials, MAC addresses, keys or recovery data. Apple download paths that embed random identifiers are cited through the appledb entry that lists them. Long hashes are shortened to the form commit messages use. Nothing downloaded from Apple or third parties is stored in the repository or run; the reconstruction of the 26.7.2 collections happened in a scratch folder.

Quality gate (editor's scoring, 0 to 1).

Dimension Score Why
Saturation 0.75 Fifteen aspects and a second verification wave, but the search budget ended early and several forums are uncovered
Source diversity 0.55 About two thirds of URLs are GitHub; GitLab trackers, Apple, Intel, Lenovo and kernel mailing list sources fill most of the rest
Tier quality 0.65 Primary artifacts carry the load-bearing claims, but half the unique URLs are B tier after regrade
Evidence depth 0.80 Commit-level and source-level reading for the main mechanisms, byte-level work for 26.7.2
Recency 0.90 Most key sources date from September and October 2026
Contradiction coverage 0.80 An independent re-verification pass corrected the aspect reports in several places (the ARL037 column mapping, the one-flag TLB experiment, the 25G330 naming, the tier of ArrowWhatever and others)
Practical usefulness 0.85 Each theme ends in ranked actions with the approval each needs
Claim hygiene 0.75 Links and dates on claims; some inference chains remain long
Uncertainty honesty 0.85 Gaps, the devil's advocate and the unresolved items are stated openly

Counts: 229 sources in the table, of which 108 are S or A tier by the auditor's and editor's regrade (an upper bound; the auditor's stricter reading of the whole corpus gives about 170 of 337 canonical URLs). The key-insight list has 14 entries and each theme adds five. Verdict: PASS for use as a planning document for this project, WARN on source diversity and on the limited reach of the search; it should not be read as a complete survey of non-English communities.

Sources

Tiers: S primary artifact (commit, source code, specification, vendor document), A expert or maintainer text with data, B user report, issue thread or self-reported project, C press or blog. The first part lists the sources the research reports used, with the auditor's regrade; the second part lists further links that the sections above cite directly, tiered by source type. "Used in" names the research reports (A1 to A15, one per aspect) or the dossier sections that cite the link. Dates checked: 2026-10-27 unless stated.

Sources read in the research reports

# Source URL Tier Used In Why It Matters
1 drm/i915/mtl: Wake GT before sending H2G message (commit 6d46d09a0d7d, 2024-01-19) https://github.com/torvalds/linux/commit/6d46d09a0d7dd412c5b76f74f89fe4448ba2117e S A1, A2 ties the GuC H2G doorbell write (0x1901f0) to a GT forcewake range on MTL
2 drm/xe: Implement Wa_22016122933 (commit d5b0bf3f37f1, 2026-09-22) https://github.com/torvalds/linux/commit/d5b0bf3f37f152583a884c696cf6caa152aa7ed5 S A1, A3 newest measured cause of MTL/ARL late GuC acks (stale CPU cache of media-GT CTB); in master after v7.3
3 drm/i915/mtl: workaround coherency issue for Media (commit a161b6dba6e0, 2023-04-24) https://github.com/torvalds/linux/commit/a161b6dba6e0e8132921a6b948d311cdf67f3476 S A1 i915 version (2023) of the same media-GT shared-memory coherency workaround
4 drm/i915: Define and use GuC and CTB TLB invalidation routines (commit af58ee227662, 2023-10-17) https://github.com/torvalds/linux/commit/af58ee227662d8421eb15cace9c65c2022653c01 S A1 origin of the GuC TLB invalidation path that sits under our free-worker stack
5 drm/xe: Log when a timed out TLB invalidation ack finally arrives (commit fc668a6e9c5f, 2026-09-22) https://github.com/torvalds/linux/commit/fc668a6e9c5f2d9800947bdd3d027f000030bcbc S A3 Intel's own instrumentation for late acks, companion to the Wa_22016122933 fix
6 i915 intel_guc_ct.c at master (CT send, blocking wait, deadlock timeout) https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c S A1 defines the 1.5 s CT deadlock and the doorbell position under the CTB lock
7 i915 intel_uncore.c at master (forcewake ranges, ack timeouts, fwtable_write32) https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/intel_uncore.c S A1 source of the MMIO and forcewake stall bounds in our panic stack
8 freebsd/drm-kmod intel_uncore.c at c16de0f (our base commit) https://github.com/freebsd/drm-kmod/blob/c16de0f/drivers/gpu/drm/i915/intel_uncore.c S A1 proves our base already carries the MTL H2G FORCEWAKE_GT range
9 drm/i915/mtl: do not enable render power-gating on MTL (commit 25e7976db86b, 2023-05-18) https://github.com/torvalds/linux/commit/25e7976db86b S A4 original render power-gating workaround, later relaxed in production
10 i915 intel_workarounds.c at master (workaround set for graphics IP 12.70) https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gt/intel_workarounds.c S A6 checklist XeGfx must carry; names every ARL/MTL workaround and its gate
11 Linux commit 84bf82f4f866: i915 support for graphics IP 12.74 (Xe_LPG+, ARL-H) https://github.com/torvalds/linux/commit/84bf82f4f866 S A6 separates 12.74 (ARL-H) from 12.70 (MTL and our 7D67)
12 drm/i915/mtl: Adding DeviceID for Arrowlake-S under MTL (commit 8940da9fe5f2, 2023-08-23) https://github.com/torvalds/linux/commit/8940da9fe5f278ac6ecb4cafa55c784f524cb3b2 S A6 why the kernel treats 7D67 as METEORLAKE with an ARL-S subplatform
13 drm/i915/mtl: Remove the 'force_probe' requirement for Meteor Lake (commit 213c43676beb) https://github.com/torvalds/linux/commit/213c43676beb5f5a63cb27a0c8e8e71035b08445 S A6 i915 is the supported driver for ARL; xe still needs force_probe
14 Mesa iris_pci_ids.h (main): 7d67 listed as arl_u https://gitlab.freedesktop.org/mesa/mesa/-/raw/main/include/pci_ids/iris_pci_ids.h S A6 device id the ANV side must see for 7D67
15 linux-firmware WHENCE (GuC, HuC, GSC and DMC versions) https://gitlab.com/kernel-firmware/linux-firmware/-/raw/main/WHENCE S A6 exact firmware names and versions; ARL loads the mtl_* blobs (GuC 70.53.0)
16 drm-firmware MR !84: Update GUC to v70.74.0 for MTL, DG2, BMG, LNL, PTL, NVL-S https://gitlab.com/kernel-firmware/drm-firmware/-/merge_requests/84 S A1 a newer MTL GuC exists in drm-firmware although not yet in linux-firmware main
17 Intel Core Ultra Processors (Series 2) Specification Update 834774, Rev 024 (2026-10) https://cdrdv2-public.intel.com/834774/834774_024.pdf S A5 newest errata list; per asp05 ARL037 is Planned Fix on HX (H moved to Fixed); column mapping disputed, see audit
18 Intel Core Ultra Processors (Series 2) Specification Update 834774, Rev 008 (2025-05) https://edc.intel.com/output/DownloadPdfDocument?id=8247 S A2, A4, A5 2025-05 revision listing ARL031, ARL036, ARL037; superseded by rev 024
19 Intel Core Ultra Processor Specification Update 792254, Rev 014 (Meteor Lake) https://edc.intel.com/output/DownloadPdfDocument?id=8251 S A2, A4 MTL037 and MTL042 RC6-exit system hang errata
20 Intel Core Ultra 200H/200U Datasheet Vol 1: Package C-States https://edc.intel.com/content/www/us/en/design/products-and-solutions/processors-and-chipsets/core-ultra-200h-and-200u-series-processors-datasheet-volume-1-of-2/package-c-states S A4 package C-state rules (H/U datasheet, not HX)
21 Intel-Linux-Processor-Microcode-Data-Files releases (06-c6-02 revisions 0x118 to 0x122) https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases S A5 authoritative microcode revision history for ARL-S/HX
22 INTEL-SA-01441 security advisory (microcode release 20260811) https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-01441.html S A5 microcode 0x121 and 0x122 post-date our BIOS; no public text maps them to ARL037
23 Lenovo BIOS readme S2CN26WW for Legion 5 15IAX10 (dated 2026-03-24) https://download.lenovo.com/consumer/mobiles/s2cn26ww.txt S A5 our BIOS is already the newest Lenovo publishes
24 Lenovo catalog 83F0_Win11.xml (package descriptors, hashes, dates) https://download.lenovo.com/catalog/83F0_Win11.xml S A5 catalog (2026-05-06) lists nothing newer than S2CN26WW
25 Lenovo PSREF: Legion 5 15IAX10 specification PDF https://psref.lenovo.com/syspool/Sys/PDF/Legion/Legion_5_15IAX10/Legion_5_15IAX10_Spec.PDF S A5, A9 vendor statement of 115 W GPU TGP and platform options
26 intel_idle: Avoid using deep idle states during initialization (commit 9eadbed788df, 2026-08-03) https://github.com/torvalds/linux/commit/9eadbed788df453289b5927327bd22edb542f472 S A5 maintainer text that deep idle early in boot disturbs device init on ARL
27 platform/x86/intel/pmc/arl: Put GNA device in D3 (commit ac2d1fd9688f) https://github.com/torvalds/linux/commit/ac2d1fd9688f S A4 why ARL packages need NPU and GNA in D3 to reach package C-states
28 xnu osfmk/i386/mp.c (main): rendezvous, NMIPI and TLB flush timeout logic https://raw.githubusercontent.com/apple-oss-distributions/xnu/main/osfmk/i386/mp.c S A4 explains the panic strings we see; source is older than our kernel
29 apple-oss-distributions/xnu tags (last drop xnu-12377.121.6) https://github.com/apple-oss-distributions/xnu/tags S A11 public xnu source ends at xnu-12377.121.6, before our kernel (12377.161.15.700.19)
30 Re: NMI stack overflow during resume of PCIe bridge with CONFIG_HARDLOCKUP_DETECTOR=y (Gleixner, 2026-01-13) https://lkml.iu.edu/2601.1/13174.html S A2 maintainer view that a stuck MMIO transaction makes the NMI a red herring
31 UEFI Specification 2.11, Boot Services (watchdog timer) https://uefi.org/specs/UEFI/2.11/07_Services_Boot_Services.html S A15 boot-services watchdog is disabled at ExitBootServices
32 edk2 MdeModulePkg DxeMain.c (CoreExitBootServices) https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c S A15 stops the timer tick at EBS, so no UEFI watchdog after it
33 OpenCorePkg OpenCoreMisc.c (DisableWatchDog handling) https://github.com/acidanthera/OpenCorePkg/blob/master/Library/OcMainLib/OpenCoreMisc.c S A15 confirms what the watchdog quirk does and logs
34 OpenCorePkg Docs/Configuration.tex https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.tex S A15 reference for ProtectMemoryRegions, SetupVirtualMap and related quirks
35 OpenCorePkg releases (1.0.7, 1.0.8) https://github.com/acidanthera/OpenCorePkg/releases S A5, A11, A14 latest release 1.0.8 (2026-09-27); no ARL item; 1.0.9 exists only on master
36 Linux drivers/iommu/intel/iommu.c (quirk_igfx_skip_te_disable on 0x7d devices) https://github.com/torvalds/linux/blob/master/drivers/iommu/intel/iommu.c S A15 Linux leaves the iGPU DMA remapping on at shutdown on our device id
37 nova-core unload series v5 cover letter (NVIDIA author) https://lkml.indiana.edu/2605.1/14132.html S A15 NVIDIA-authored unload series; closest public text on GSP state across unload (I-118 candidate)
38 NVIDIA open-gpu-kernel-modules (source tags 595.104.02, 610.57.04, 615.78.08) https://github.com/NVIDIA/open-gpu-kernel-modules S A9, A15 RM source for WPR2, NPCF and power-limit behaviour
39 Linux drivers/watchdog/iTCO_wdt.c https://github.com/torvalds/linux/blob/master/drivers/watchdog/iTCO_wdt.c S A15 30 s default heartbeat for the only watchdog class that survives EBS
40 About the security content of macOS Tahoe 26.7.2 https://support.apple.com/en-us/149522 S A11, A13 Apple security content for 26.7.2 (CSAF parsed: 213 CVE entries)
41 Apple release notes index for macOS Tahoe 26.7.2 (122868) https://support.apple.com/en-us/122868 S A11 release-notes link in appledb; says nothing about kexts or kernel collections
42 Apple full installer for macOS 26.7.2 25G332 (swcdn.apple.com, download path listed in the appledb entry) https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25G332.json S A12 Apple's full installer (18.39 GB) via appledb; not downloaded in the corpus
43 Apple CDN delta OTA from 25G241 to 25G332 for Intel (MobileAsset zip, path listed in the appledb entry) https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25G332.json S A12 carries the BKC, SKC and kernel patches (about 4 MB useful)
44 Kernel Debug Kit 26.7.2 build 25G330 (developer.apple.com download, login required) https://developer.apple.com/download/all/ S A12 only 26.7.2 KDK (25G330, RC3); Aspect 12 finds its kernel, BKC and SKC byte-identical to 25G332 on Intel (login required)
45 NVIDIA GeForce laptops compare page https://www.nvidia.com/en-us/geforce/laptops/compare S A9 NVIDIA's 50 to 100 W range for the RTX 5070 Laptop
46 NVIDIA Linux 595.84 README: Dynamic Boost chapter https://download.nvidia.com/XFree86/Linux-x86_64/595.84/README/dynamicboost.html S A9 Dynamic Boost rules per driver version (AC only versus AC or battery)
47 mt7925: trigger reset on WMT timeout (commit b3078bb2ee12, 2026-10-14) https://github.com/torvalds/linux/commit/b3078bb2ee12 S A13 recent upstream MT7925 reset fix relevant to warm-restart wedges
48 FreeBSD Status Report 2026-04 to 2026-06: DRM drivers https://www.freebsd.org/status/report-2026-04-2026-06/drm-drivers S A7 FreeBSD status wording on Meteor and Arrow Lake graphics; no published ARL-S success
49 OpenBSD src commit bd7ea2868af8: process GuC responses while waiting (2026-09-29) https://github.com/openbsd/src/commit/bd7ea2868af853ba59d5d16cae7e808c1520fe78 S A7 OpenBSD's CT receive polling change for MTL/ARL
50 xe issue 8678: TLB invalidation fence timeout on ARL, GuC 70.53.0 consumes H2G but delays ack ~2.3s https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8678 A A1, A6 measured late-ack data behind the Wa_22016122933 fix; ARL-H machines
51 i915 issue 14469: GPU Hang Intel Core Ultra 9 185H / Intel Arc Graphics (MTL) https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/14469 A A6 Intel GuC engineer reasoning about GuC not servicing requests
52 xe issue 7953: mtl_guc_70.bin v70.53.0 stops acknowledging TLB invalidations (MTL_P) https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7953 A A6 same ack failure under both drivers, with Intel developer comments
53 i915 issue 16052: Arrow Lake-S iGPU 8086:7d67 intermittently fails i915 probe with MMIO 0xFFFFFFFF https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16052 A A6 closest public analog to I-118; Intel analysis is marked LLM assisted
54 Mesa issue 16491: Intel Meteor Lake: Unigine Heaven and Valley trigger GPU hangs with Mesa 26.2.0-26.2.4 https://gitlab.freedesktop.org/mesa/mesa/-/work_items/16491 A A6 ANV/brw hazard for MTL-class parts, fixed by MR !43702
55 freebsd/drm-kmod issue 457: i915kms Meteor Lake (0x7d55) recognized by Mesa, but graphics freeze after a while in xfce4 freebsd/drm-kmod#457 A A2, A7 clearest non-Linux root-cause hypothesis for MTL GuC hangs (RC6 plus delayed wake)
56 freebsd/drm-kmod PR 418: Meteor Lake graphics fixes (amshafer, merged 2026-05-11) freebsd/drm-kmod#418 A A3, A7 only other LinuxKPI i915 port with MTL working; related commit disables the media GT
57 Intel microcode repo issue 112: Meteor Lake 06-aa-04 release 20260811 instant reboot at early load intel/Intel-Linux-Processor-Microcode-Data-Files#112 A A5 Meteor Lake early-load reboot after release 20260811 (opened 2026-08-11, still open)
58 Intel microcode repo issue 113: Sierra Forest boot hang with 20260512 intel/Intel-Linux-Processor-Microcode-Data-Files#113 A A5 Sierra Forest boot hang with 20260512 when firmware is old; fixed by Intel in 0x030003b2
59 appledb osFiles record for macOS 26.7.2 (25G332.json) https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25G332.json A A11, A12 names every Apple CDN URL for 25G332; settles 25G332 as the release
60 appledb osFiles record 25F84.json https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25F84.json A A12 shows the Universal IPSW is Apple silicon only; Intel has no IPSW
61 blacktop/ipsw pkg/ota/bxdiff50/bxdiff50.go https://github.com/blacktop/ipsw/blob/master/pkg/ota/bxdiff50/bxdiff50.go A A12 documents the BXDIFF50 patch format used to rebuild the 25G332 kernel collections
62 dortania/KdkSupportPkg release 25G330 https://github.com/dortania/KdkSupportPkg/releases/tag/25G330 A A12 public mirror of the 25G330 KDK; no 25G332 KDK exists yet
63 Eclectic Light: Apple has just released updates to Golden Gate 27.2, 26.7.2 and 15.8.2 (2026-10-26) https://eclecticlight.co/2026/10/26/apple-has-just-released-updates-to-golden-gate-27-2-26-7-2-and-15-8-2 A A11 independent confirmation of the 26.7.2 release date
64 OpenCore-Legacy-Patcher issue 1183 (maintainer statement on macOS 27 and Intel Macs) dortania/OpenCore-Legacy-Patcher#1183 A A11 OCLP maintainers: Intel kexts removed, no plan for Golden Gate
65 LenovoLegionLinux repository (README, Features and Testing) https://github.com/johnfanv2/LenovoLegionLinux A A9, A14, A15 community EC and fan project; its issues #359 and #475 cover the Legion 5 15IAX10 (83F0)
66 nullmoth/nvidia-macos-driver releases https://github.com/nullmoth/nvidia-macos-driver/releases A A8 upstream release notes (2.6.x); unaudited project, maintainer text
67 zep245/IrisXe-macos-driver DESIGN.md at 52fee974 https://github.com/zep245/IrisXe-macos-driver/blob/52fee9748625305ef41881a074bda239abc53fd3/DESIGN.md B A7 design notes of an i915-on-xnu port; self-reported, dated crash notes
68 xe issue 9168: Recurring 'TLB invalidation fence timeout' on Arrow Lake (Core Ultra 9 285HX) integrated graphics https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/9168 B A1, A6 same silicon 7d67; stall then freeze; DC/PSR/FBC off did not help
69 i915 issue 16987 (ARL): 'DSB 0 poll error', i915_flip stuck in D state, Legion 7 16IAX10 report https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16987 B A1 display-side hang on 7d67 hardware, separate from the CT stall
70 i915 issue 16937: ARL-P hard hang with a silent NMI watchdog https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16937 B A1 closest public match for a stall the NMI watchdog never reports
71 i915 issue 12104: Complete system crash with Ultra 7 155H (both i915 and xe) https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/12104 B A6 long-running MTL whole-machine hang; Intel analysis marked LLM assisted
72 freebsd/drm-kmod PR 496: MTL BAR2 advertised as CPU GGTT aperture (author says LLM-developed) freebsd/drm-kmod#496 B A2, A7 BAR2 mapping hypothesis for a MTL hang; single author
73 Fedora Discourse 183627: Random freeze on idle/sleep, ThinkPad T14p 2025, Intel Ultra 9 285H https://discussion.fedoraproject.org/t/random-freeze-on-idle-sleep-thinkpad-t14p-2025-intel-ultra-9-285h-arc-pro-integrated-gpu/183627 B A4, A5 ARL-H idle freeze with TLB-flush IPI stall and C-state limits
74 Arch BBS 308313: Random freezes on Intel Meteor Lake (i915) - GSC proxy errors https://bbs.archlinux.org/viewtopic.php?id=308313 B A4 practitioner outcome for IRQ pinning and C-state limits
75 Unraid forum: intel_idle not registering native C-states on Intel Core Ultra 200 series (model 0xc6) https://forums.unraid.net/topic/197400-intel_idle-not-registering-native-c-states-on-intel-core-ultra-200-series-arrow-lake-model-0xc6 B A4 single user report that intel_idle does not register native C-states on ARL (model 0xc6)
76 Arch Linux bug FS#64498 (2019): bootloader-loaded microcode survived a warm reboot https://bugs.archlinux.org/task/64498 B A5 old precedent for I-118 microcode persistence; background only
77 Mountainatic/ArrowWhatever (Arrow Lake-HX 7D67 on our XeGfx, README and docs) https://github.com/Mountainatic/ArrowWhatever B A10 same silicon (7D67) as ours; self-reported; partly derived from our code (see audit)
78 VedCloud/Meteor-Lake-Xe-LPG-Metal-Graphics https://github.com/VedCloud/Meteor-Lake-Xe-LPG-Metal-Graphics B A10 most documented GuC and LinuxKPI work on Meteor Lake (Dell 5350, 7D45); self-reported
79 jwx29/NvGfx branch meteor-lake-local https://github.com/jwx29/NvGfx/tree/meteor-lake-local B A10 Meteor Lake engineering on a fork of our NvGfx; IOFBDependentID conclusion
80 b00t0x/WhateverXe release 0.6.1 https://github.com/b00t0x/WhateverXe/releases/tag/0.6.1 B A10 0.6.1 release notes: the answer for Arrow Lake support is no
81 steelbrain/metal2vulkan intel-arl-anv.json validation profile https://raw.githubusercontent.com/steelbrain/metal2vulkan/master/crates/metal2vulkan-validation/profiles/intel-arl-anv.json B A6 ANV profile for ARL in a translator project; method only
82 thanhnndev/mt7925-macos-wifi (README and ROADMAP) https://github.com/thanhnndev/mt7925-macos-wifi B A13 another native MT7925 effort on Tahoe's own stack; says written with Claude
83 laobamac/SimpleMtkWlan (README; fork lists v1.5.0) https://github.com/laobamac/SimpleMtkWlan B A13 legacy-stack MT7925 driver; self-reported
84 watchthelight-labs/mt7925-hackintosh-wifi issue 4: Wi-Fi and Bluetooth lost after updating to 26.7.2 watchthelight-labs/mt7925-hackintosh-wifi#4 B A11, A13 only first-hand 25G332 failure report; our own repo, one board
85 InsanelyMac: [Release] macOS Tahoe 26.7.2 https://www.insanelymac.com/forum/topic/363378-release-macos-tahoe-2672 B A11 first-day Hackintosh reports on 26.7.2
86 acidanthera/BrcmPatchRAM issue 39 (bluetoothd byte patches are build specific) acidanthera/BrcmPatchRAM#39 B A11 warns Bluetooth patches are tied to specific macOS builds
87 nullmoth/nvidia-macos-driver #377: [2.5.3] Geekbench 7 Metal MPS depthwiseConv_3x3 fails AIR translation nullmoth/nvidia-macos-driver#377 B A8 exact match of our I-117 error
88 nullmoth/nvidia-macos-driver #412: [Feature] Window-drag stall fixes from NvGfx, rebased on 2.6.2 and measured nullmoth/nvidia-macos-driver#412 B A8 independent drag-stall measurements of our plugin commits on an RTX 5080
89 nullmoth/nvidia-macos-driver #252: [Bug] Boot freezes right after EXITBS:START - Arrow Lake-HX laptop, RTX 5070 Ti nullmoth/nvidia-macos-driver#252 B A8, A9, A14 same class of EXITBS stop on an Arrow Lake-HX laptop (MUX Discrete)
90 nullmoth/1401 #58: HONOR MagicBook, Core Ultra 7 255H, EXITBS hang (VT-d and X2APIC settings) nullmoth/1401#58 B A14 best documented fix chain for an Arrow Lake EXITBS hang
91 b00t0x/CpuTopologyRebuild (README and releases) https://github.com/b00t0x/CpuTopologyRebuild B A14 CPU topology kext implicated in the 1401 #58 hang chain
92 wsjj-official/EFI-2025Y9000P (Lenovo Y9000P, machine 83F5, Sequoia 15.8) https://github.com/wsjj-official/EFI-2025Y9000P B A14 nearest Lenovo EFI with SetupVirtualMap on; different machine type from 83F0
93 CENSEDAXIS20025/ASUS-FX608LP-Hackintosh-Multiboot (275HX, macos26/config.plist) https://github.com/CENSEDAXIS20025/ASUS-FX608LP-Hackintosh-Multiboot B A14 275HX config.plist for quirk comparison; repo dates read 2026-10-28, future-dated (see audit)
94 Mountainatic/YaoShi16-Ultra-OpenCore-efi (MECHREVO Yaoshi 16 Ultra, 275HX) https://github.com/Mountainatic/YaoShi16-Ultra-OpenCore-efi B A14 275HX EFI and boot-issue notes; same author as ArrowWhatever
95 NVIDIA/open-gpu-kernel-modules #1162: HP OMEN Slim 16, NVDA0820 at _SB.NPCF not bound, Dynamic Boost inactive NVIDIA/open-gpu-kernel-modules#1162 B A9 OEM ACPI naming decides whether NPCF binds
96 Phoronix: Linux 6.15 Fix ARL U/H s2idle https://www.phoronix.com/news/Linux-6.15-Fix-ARL-U-H-s2idle C A4 press quoting the pmc commit; use the commit instead
97 Notebookcheck: Lenovo Legion 5 15IRX10 gaming laptop review (RTX 5070) https://www.notebookcheck.net/Lenovo-Legion-5-15IRX10-gaming-laptop-review-Brilliant-OLED-and-RTX-5070-for-EUR1-499-approx-1-742.1147338.0.html C A9 different SKU (IRX10); used only for MUX context, no figure from it is relied on
98 Mr. Macintosh: macOS Tahoe full installer database https://mrmacintosh.com/macos-tahoe-full-installer-database-download-directly-from-apple C A11 installer DB row 26.7.2 / 25G332 / Latest (10/26) cross-checks the build; its separate 26.7 update page is stale
99 Phoronix: Mesa 26.3 Enables Intel's New Jay Shader Compiler By Default https://www.phoronix.com/news/Mesa-26.3-Intel-Jay-Compiler C A6 Jay default covers Xe2 and newer; MTL and ARL staying on brw is inference

Further sources cited in the sections above

# Source URL Tier Used In Why It Matters
100 Red Hat bug 2463170 https://bugzilla.redhat.com/show_bug.cgi?id=2463170 B Theme 1 project page, README or notes read for status and claims
101 download.lenovo.com/consumer/mobiles/s2cn27ww.txt https://download.lenovo.com/consumer/mobiles/s2cn27ww.txt S Theme 2 vendor or specification text
102 BelikPePe-UA/legion5-15irx10-hackintosh (repository) https://github.com/BelikPePe-UA/legion5-15irx10-hackintosh B Theme 4 project page, README or notes read for status and claims
103 HackSucks/mtwlm (repository) https://github.com/HackSucks/mtwlm B Theme 4 project page, README or notes read for status and claims
104 Mountainatic/ArrowWhatever file docs/k9-deferred-flip.md https://github.com/Mountainatic/ArrowWhatever/blob/main/docs/k9-deferred-flip.md B Theme 3 source or document read directly
105 Mountainatic/ArrowWhatever file docs/route.md https://github.com/Mountainatic/ArrowWhatever/blob/main/docs/route.md B Theme 3 source or document read directly
106 Mountainatic/ArrowWhatever file docs/userptr-panic.md: ArrowWhatever userptr note https://github.com/Mountainatic/ArrowWhatever/blob/main/docs/userptr-panic.md B Actions, Evidence table, Summary, Theme 3 source or document read directly
107 Mountainatic/ArrowWhatever file docs/zero-copy-flip.md https://github.com/Mountainatic/ArrowWhatever/blob/main/docs/zero-copy-flip.md B Theme 3 source or document read directly
108 Mountainatic/ArrowWhatever file patches/0001-xg_vm-userptr-race.patch https://github.com/Mountainatic/ArrowWhatever/blob/main/patches/0001-xg_vm-userptr-race.patch B Actions, Theme 3 source or document read directly
109 NVIDIA/open-gpu-kernel-modules file ctrl2080/ctrl2080internal.h https://github.com/NVIDIA/open-gpu-kernel-modules/blob/615.78.08/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080internal.h S Theme 3 source or document read directly
110 NVIDIA/open-gpu-kernel-modules file gsp/kernel_gsp.c https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/nvidia/src/kernel/gpu/gsp/kernel_gsp.c S Evidence table, Theme 2 source or document read directly
111 NVIDIA/open-gpu-kernel-modules compare 615.71.09...615.71.10: compare 71.09...71.10 https://github.com/NVIDIA/open-gpu-kernel-modules/compare/615.71.09...615.71.10 S Evidence table, Theme 3 source diff between two driver releases
112 NVIDIA/open-gpu-kernel-modules compare 615.71.09...615.78.08: 615.71.09 to 615.78.08 diff https://github.com/NVIDIA/open-gpu-kernel-modules/compare/615.71.09...615.78.08 S Actions, Evidence table, Summary, Theme 3 source diff between two driver releases
113 NVIDIA/open-gpu-kernel-modules issue 1237 NVIDIA/open-gpu-kernel-modules#1237 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
114 NVIDIA/open-gpu-kernel-modules issue 1287 NVIDIA/open-gpu-kernel-modules#1287 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
115 NVIDIA/open-gpu-kernel-modules issue 1344 NVIDIA/open-gpu-kernel-modules#1344 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
116 NVIDIA/open-gpu-kernel-modules issue 1353: open-gpu-kernel-modules 1353 NVIDIA/open-gpu-kernel-modules#1353 B Actions, Evidence table, Summary, Theme 2, Theme 3 tracker thread read for reports, reproduction and maintainer replies
117 NVIDIA/open-gpu-kernel-modules issue 1389 NVIDIA/open-gpu-kernel-modules#1389 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
118 NVIDIA/open-gpu-kernel-modules issue 1393 NVIDIA/open-gpu-kernel-modules#1393 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
119 NVIDIA/open-gpu-kernel-modules issue 1421 NVIDIA/open-gpu-kernel-modules#1421 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
120 apple-oss-distributions/xnu file i386/machine_routines.c https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/i386/machine_routines.c S Technical details source or document read directly
121 apple-oss-distributions/xnu file i386/mp.c: xnu CPU-side message https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/i386/mp.c S Actions, Evidence table, Summary, Technical details, Theme 1, Theme 2, Theme 3 source or document read directly
122 b00t0x/WhateverXe (repository) https://github.com/b00t0x/WhateverXe B Evidence table, Theme 3 project page, README or notes read for status and claims
123 flxxxxddd/SimpleMtkWlan release v1.5.0: flxxxxddd/SimpleMtkWlan v1.5.0 https://github.com/flxxxxddd/SimpleMtkWlan/releases/tag/v1.5.0 B Theme 4 release notes and dates
124 freebsd/drm-kmod commit c16de0f9fa84 https://github.com/freebsd/drm-kmod/commit/c16de0f9fa84 S Evidence table, Theme 1 commit text and diff read for the mechanism or workaround it names
125 freebsd/drm-kmod issue 399 freebsd/drm-kmod#399 B Theme 1 tracker thread read for reports, reproduction and maintainer replies
126 freebsd/freebsd-src commit 0d022baa047a https://github.com/freebsd/freebsd-src/commit/0d022baa047a S Actions, Theme 1 commit text and diff read for the mechanism or workaround it names
127 freebsd/freebsd-src commit 4f2f26fb1e8a: freebsd-src 4f2f26fb1e8a https://github.com/freebsd/freebsd-src/commit/4f2f26fb1e8a S Actions, Evidence table, Summary, Theme 1 commit text and diff read for the mechanism or workaround it names
128 freebsd/freebsd-src commit 79e290d96786 https://github.com/freebsd/freebsd-src/commit/79e290d96786 S Actions, Evidence table, Theme 1 commit text and diff read for the mechanism or workaround it names
129 intel/Intel-Linux-Processor-Microcode-Data-Files release microcode-20260512 https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20260512 S Evidence table, Theme 2 release notes and dates
130 intel/Intel-Linux-Processor-Microcode-Data-Files release microcode-20260811: microcode 20260811 https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20260811 S Evidence table, Theme 2 release notes and dates
131 johnfanv2/LenovoLegionLinux commit 29571790b209 https://github.com/johnfanv2/LenovoLegionLinux/commit/29571790b209 B Actions, Evidence table, Theme 4 commit text and diff read for the mechanism or workaround it names
132 johnfanv2/LenovoLegionLinux commit a897adf92a06 https://github.com/johnfanv2/LenovoLegionLinux/commit/a897adf92a06 B Evidence table, Theme 4 commit text and diff read for the mechanism or workaround it names
133 kitsuneislife/nmx-intel (repository) https://github.com/kitsuneislife/nmx-intel B Theme 3, Tradeoffs project page, README or notes read for status and claims
134 laobamac/SimpleBCM (repository) https://github.com/laobamac/SimpleBCM B Tradeoffs project page, README or notes read for status and claims
135 laobamac/itlwm release https://github.com/laobamac/itlwm/releases B Tradeoffs release notes and dates
136 littlebyteorg/appledb (repository) https://github.com/littlebyteorg/appledb B Technical details project page, README or notes read for status and claims
137 littlebyteorg/appledb file 25x%20-%2026.x/25G320.json https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25G320.json B Theme 4 source or document read directly
138 littlebyteorg/appledb file 25x%20-%2026.x/25G325.json https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25G325.json B Evidence table, Theme 4 source or document read directly
139 littlebyteorg/appledb file 25x%20-%2026.x/25G330.json https://github.com/littlebyteorg/appledb/blob/main/osFiles/macOS/25x%20-%2026.x/25G330.json B Evidence table, Theme 4 source or document read directly
140 mnnobre/AirportMtkWlan issue 2 mnnobre/AirportMtkWlan#2 B Theme 4 tracker thread read for reports, reproduction and maintainer replies
141 nullmoth/1401 file main/CHANGELOG.md: 2.6.0 changelog https://github.com/nullmoth/1401/blob/main/CHANGELOG.md B Evidence table, Theme 2, Theme 4 source or document read directly
142 nullmoth/1401 file p1401/efi_rules.json https://github.com/nullmoth/1401/blob/main/p1401/efi_rules.json B Theme 4, Tradeoffs source or document read directly
143 nullmoth/1401 issue 10 nullmoth/1401#10 B Theme 4 tracker thread read for reports, reproduction and maintainer replies
144 nullmoth/1401 issue 11 nullmoth/1401#11 B Theme 4 tracker thread read for reports, reproduction and maintainer replies
145 nullmoth/1401 issue 44 nullmoth/1401#44 B Theme 2, Theme 4 tracker thread read for reports, reproduction and maintainer replies
146 nullmoth/1401 issue 49 nullmoth/1401#49 B Theme 2 tracker thread read for reports, reproduction and maintainer replies
147 nullmoth/nvidia-macos-driver file main/LICENSE https://github.com/nullmoth/nvidia-macos-driver/blob/main/LICENSE B Theme 3 source or document read directly
148 nullmoth/nvidia-macos-driver file translator/Cargo.toml: LGPL-3.0-or-later https://github.com/nullmoth/nvidia-macos-driver/blob/main/translator/translator/Cargo.toml B Theme 3 source or document read directly
149 nullmoth/nvidia-macos-driver issue 111 nullmoth/nvidia-macos-driver#111 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
150 nullmoth/nvidia-macos-driver issue 187 nullmoth/nvidia-macos-driver#187 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
151 nullmoth/nvidia-macos-driver issue 293 nullmoth/nvidia-macos-driver#293 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
152 nullmoth/nvidia-macos-driver issue 297 nullmoth/nvidia-macos-driver#297 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
153 nullmoth/nvidia-macos-driver issue 30 nullmoth/nvidia-macos-driver#30 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
154 nullmoth/nvidia-macos-driver issue 302 nullmoth/nvidia-macos-driver#302 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
155 nullmoth/nvidia-macos-driver issue 312 nullmoth/nvidia-macos-driver#312 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
156 nullmoth/nvidia-macos-driver issue 328 nullmoth/nvidia-macos-driver#328 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
157 nullmoth/nvidia-macos-driver issue 333 nullmoth/nvidia-macos-driver#333 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
158 nullmoth/nvidia-macos-driver issue 334 nullmoth/nvidia-macos-driver#334 B Evidence table, Theme 3 tracker thread read for reports, reproduction and maintainer replies
159 nullmoth/nvidia-macos-driver issue 341 nullmoth/nvidia-macos-driver#341 B Evidence table, Summary, Theme 3 tracker thread read for reports, reproduction and maintainer replies
160 nullmoth/nvidia-macos-driver issue 348 nullmoth/nvidia-macos-driver#348 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
161 nullmoth/nvidia-macos-driver issue 354 nullmoth/nvidia-macos-driver#354 B Actions, Evidence table, Theme 3 tracker thread read for reports, reproduction and maintainer replies
162 nullmoth/nvidia-macos-driver issue 360 nullmoth/nvidia-macos-driver#360 B Evidence table, Theme 3 tracker thread read for reports, reproduction and maintainer replies
163 nullmoth/nvidia-macos-driver issue 363 nullmoth/nvidia-macos-driver#363 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
164 nullmoth/nvidia-macos-driver issue 370 nullmoth/nvidia-macos-driver#370 B Actions, Theme 3 tracker thread read for reports, reproduction and maintainer replies
165 nullmoth/nvidia-macos-driver issue 410 nullmoth/nvidia-macos-driver#410 B Theme 3 tracker thread read for reports, reproduction and maintainer replies
166 nullmoth/nvidia-macos-driver issue 419 nullmoth/nvidia-macos-driver#419 B Evidence table, Theme 3 tracker thread read for reports, reproduction and maintainer replies
167 nullmoth/nvidia-macos-driver pull request 385 nullmoth/nvidia-macos-driver#385 B Actions, Evidence table, Theme 3 tracker thread read for reports, reproduction and maintainer replies
168 nullmoth/nvidia-macos-driver release v2.6.2 https://github.com/nullmoth/nvidia-macos-driver/releases/tag/v2.6.2 B Actions, Evidence table, Theme 3 release notes and dates
169 torvalds/linux file gt/intel_ggtt.c https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gt/intel_ggtt.c S Theme 1 source or document read directly
170 torvalds/linux file gt/intel_tlb.c https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gt/intel_tlb.c S Evidence table, Theme 1 source or document read directly
171 torvalds/linux file uc/intel_guc.h https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gt/uc/intel_guc.h S Theme 1 source or document read directly
172 torvalds/linux file uc/intel_guc_submission.c https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c S Theme 1 source or document read directly
173 torvalds/linux file xe/xe_guc.c https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/xe/xe_guc.c S Theme 1 source or document read directly
174 torvalds/linux file idle/intel_idle.c https://github.com/torvalds/linux/blob/master/drivers/idle/intel_idle.c S Evidence table, Theme 2 source or document read directly
175 torvalds/linux file bluetooth/btusb.c: Linux btusb v7.3 https://github.com/torvalds/linux/blob/v7.3/drivers/bluetooth/btusb.c S Evidence table, Theme 4 source or document read directly
176 torvalds/linux commit 0a4ae87706c6 https://github.com/torvalds/linux/commit/0a4ae87706c6 S Evidence table, Theme 1 commit text and diff read for the mechanism or workaround it names
177 torvalds/linux commit 2d6e2b10a773 https://github.com/torvalds/linux/commit/2d6e2b10a773 S Actions, Evidence table, Theme 1 commit text and diff read for the mechanism or workaround it names
178 torvalds/linux commit 7938d61591d3 https://github.com/torvalds/linux/commit/7938d61591d3 S Theme 1 commit text and diff read for the mechanism or workaround it names
179 torvalds/linux commit 8d2f5990cd42 https://github.com/torvalds/linux/commit/8d2f5990cd42 S Theme 4 commit text and diff read for the mechanism or workaround it names
180 torvalds/linux commit 8fa1c7cd1fe9 https://github.com/torvalds/linux/commit/8fa1c7cd1fe9 S Actions, Evidence table, Summary, Theme 1 commit text and diff read for the mechanism or workaround it names
181 torvalds/linux commit ac22c8c723c6 https://github.com/torvalds/linux/commit/ac22c8c723c6 S Actions, Evidence table, Theme 4 commit text and diff read for the mechanism or workaround it names
182 torvalds/linux commit b623bd790db0 https://github.com/torvalds/linux/commit/b623bd790db0 S Theme 1, Tradeoffs commit text and diff read for the mechanism or workaround it names
183 torvalds/linux commit c781b74c3fd0 https://github.com/torvalds/linux/commit/c781b74c3fd0 S Theme 4 commit text and diff read for the mechanism or workaround it names
184 torvalds/linux commit d12a54be2604 https://github.com/torvalds/linux/commit/d12a54be2604 S Theme 4 commit text and diff read for the mechanism or workaround it names
185 torvalds/linux commit deeee411a975 https://github.com/torvalds/linux/commit/deeee411a975 S Evidence table, Theme 1 commit text and diff read for the mechanism or workaround it names
186 torvalds/linux commit e3ac0d9f1a20 https://github.com/torvalds/linux/commit/e3ac0d9f1a20 S Theme 4 commit text and diff read for the mechanism or workaround it names
187 torvalds/linux commit ff868667a4f9 https://github.com/torvalds/linux/commit/ff868667a4f9 S Evidence table, Theme 1 commit text and diff read for the mechanism or workaround it names
188 watchthelight-labs/LegionBtFix (repository) https://github.com/watchthelight-labs/LegionBtFix B (own project) Actions, Evidence table, Theme 4 project page, README or notes read for status and claims
189 watchthelight-labs/LegionCbmrFix (repository) https://github.com/watchthelight-labs/LegionCbmrFix B (own project) Evidence table, Theme 3 project page, README or notes read for status and claims
190 watchthelight-labs/NvGfx file NVRM/nvrm_power.cpp https://github.com/watchthelight-labs/NvGfx/blob/nvgfx-2.6.2/kexts/NVRM/nvrm_power.cpp B (own project) Evidence table, Theme 3 source or document read directly
191 watchthelight-labs/NvGfx file notes/power.md https://github.com/watchthelight-labs/NvGfx/blob/nvgfx-2.6.2/notes/power.md B (own project) Evidence table, Theme 3 source or document read directly
192 watchthelight-labs/NvGfx file fbsd/xg_vm.c: xe-2.6.2 xg_vm.c https://github.com/watchthelight-labs/NvGfx/blob/xe-2.6.2/gpu/xegfx/shim/src/fbsd/xg_vm.c B (own project) Actions, Evidence table, Theme 3 source or document read directly
193 watchthelight-labs/NvGfx file xnu/xg_kext.cpp: xg_trace_write https://github.com/watchthelight-labs/NvGfx/blob/xe-2.6.2/gpu/xegfx/shim/src/xnu/xg_kext.cpp B (own project) Actions, Evidence table, Theme 3 source or document read directly
194 watchthelight-labs/NvGfx commit 0794c7a028ec: nvgfx-2.6.2 branch https://github.com/watchthelight-labs/NvGfx/commit/0794c7a028ec B (own project) Evidence table, Theme 3 commit text and diff read for the mechanism or workaround it names
195 watchthelight-labs/NvGfx commit 200fa3a7e0ef: async cache writes https://github.com/watchthelight-labs/NvGfx/commit/200fa3a7e0ef B (own project) Theme 3 commit text and diff read for the mechanism or workaround it names
196 watchthelight-labs/NvGfx commit a8c3288e3f92: sampler-variant memo https://github.com/watchthelight-labs/NvGfx/commit/a8c3288e3f92 B (own project) Theme 3 commit text and diff read for the mechanism or workaround it names
197 watchthelight-labs/NvGfx commit f0864ceca324: repeat-pipeline skip https://github.com/watchthelight-labs/NvGfx/commit/f0864ceca324 B (own project) Theme 3 commit text and diff read for the mechanism or workaround it names
198 watchthelight-labs/NvGfx commit f48eb4033e77 https://github.com/watchthelight-labs/NvGfx/commit/f48eb4033e77 B (own project) Theme 3 commit text and diff read for the mechanism or workaround it names
199 watchthelight-labs/NvGfx commit fc07ff5e145d https://github.com/watchthelight-labs/NvGfx/commit/fc07ff5e145d B (own project) Theme 3 commit text and diff read for the mechanism or workaround it names
200 watchthelight-labs/NvGfx tree xe-2.6.2/gpu/xegfx: skips the media GT https://github.com/watchthelight-labs/NvGfx/tree/xe-2.6.2/gpu/xegfx B (own project) Theme 3 project page, README or notes read for status and claims
201 watchthelight-labs/XeGfx (repository) https://github.com/watchthelight-labs/XeGfx B (own project) Theme 1, Theme 3 project page, README or notes read for status and claims
202 watchthelight-labs/XeGfx file docs/HOW-IT-WORKS.md: XeGfx HOW-IT-WORKS https://github.com/watchthelight-labs/XeGfx/blob/main/docs/HOW-IT-WORKS.md B (own project) Evidence table, Theme 1 source or document read directly
203 watchthelight-labs/XeGfx file docs/xg_vm.md https://github.com/watchthelight-labs/XeGfx/blob/main/docs/xg_vm.md B (own project) Theme 1 source or document read directly
204 watchthelight-labs/XeGfx issue 2 watchthelight-labs/XeGfx#2 B (own project) Technical details, Theme 3 tracker thread read for reports, reproduction and maintainer replies
205 watchthelight-labs/kcabi (repository) https://github.com/watchthelight-labs/kcabi B (own project) Actions, Evidence table, Theme 4 project page, README or notes read for status and claims
206 watchthelight-labs/mt7925-hackintosh-bluetooth (repository) https://github.com/watchthelight-labs/mt7925-hackintosh-bluetooth B (own project) Theme 4 project page, README or notes read for status and claims
207 watchthelight-labs/mt7925-hackintosh-wifi-native (repository) https://github.com/watchthelight-labs/mt7925-hackintosh-wifi-native B (own project) Theme 4 project page, README or notes read for status and claims
208 watchthelight-labs/mt7925-hackintosh-wifi-native file src/MtkNativeAbi.hpp https://github.com/watchthelight-labs/mt7925-hackintosh-wifi-native/blob/main/src/MtkNativeAbi.hpp B (own project) Actions, Evidence table, Summary, Theme 4 source or document read directly
209 watchthelight-labs/mt7925-hackintosh-wifi issue 1 watchthelight-labs/mt7925-hackintosh-wifi#1 B (own project) Actions, Theme 4 tracker thread read for reports, reproduction and maintainer replies
210 watchthelight-labs/research file xe/2026-10-27.md https://github.com/watchthelight-labs/research/blob/main/scout/xe/2026-10-27.md B (own project) Theme 3 source or document read directly
211 zep245/IrisXe-macos-driver (repository) https://github.com/zep245/IrisXe-macos-driver B Actions, Theme 1 project page, README or notes read for status and claims
212 zep245/IrisXe-macos-driver file main/DESIGN.md: zep245 design notes https://github.com/zep245/IrisXe-macos-driver/blob/main/DESIGN.md B Actions, Evidence table, Summary, Theme 3 source or document read directly
213 mxtools PR 559 https://github.molgen.mpg.de/mariux64/mxtools/pull/559 B Theme 2 tracker thread read for reports, reproduction and maintainer replies
214 kernel-firmware/linux-firmware (repository) https://gitlab.com/kernel-firmware/linux-firmware S Evidence table, Theme 4 project page, README or notes read for status and claims
215 kernel-firmware/linux-firmware/- commit ad8d5f76c429 https://gitlab.com/kernel-firmware/linux-firmware/-/commit/ad8d5f76c429e5485764a9ecb7a2ce3fbc1386ae S Technical details commit text and diff read for the mechanism or workaround it names
216 drm/i915/kernel issue 13926 https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13926 B Theme 1 tracker thread read for reports, reproduction and maintainer replies
217 drm/i915/kernel issue 15708 https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15708 B Tradeoffs tracker thread read for reports, reproduction and maintainer replies
218 drm/i915/kernel issue 17098 https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/17098 B Tradeoffs tracker thread read for reports, reproduction and maintainer replies
219 drm/xe/kernel issue 8760 https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/8760 B Actions tracker thread read for reports, reproduction and maintainer replies
220 drm/xe/kernel issue 9224 https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/9224 B Tradeoffs tracker thread read for reports, reproduction and maintainer replies
221 intel_device_info.c https://gitlab.freedesktop.org/mesa/mesa/-/raw/main/src/intel/dev/intel_device_info.c S Technical details source or document read directly
222 lkml.iu.edu/2601.1/13033.html https://lkml.iu.edu/2601.1/13033.html S Technical details mailing-list message
223 nova-core unload v5 https://lore.gitlab.freedesktop.org/drm-ai-reviews/20260515-nova-unload-v5-0-c4d6250ad160@nvidia.com/T/ A Theme 2 mailing-list message
224 intel-xe list https://lore.kernel.org/intel-xe/20261003222145.67240-1-navonjohnlukose@gmail.com/ A Theme 1 mailing-list message
225 press-relayed https://sixcolors.com/post/2025/06/macos-tahoe-is-the-last-release-to-support-intel/ C Evidence table, Theme 4 project page, README or notes read for status and claims
226 USN-4182-3 https://ubuntu.com/security/notices/USN-4182-3 A Evidence table, Theme 2 project page, README or notes read for status and claims
227 Apple macOS page https://www.apple.com/os/macos/ S Actions, Evidence table, Summary, Theme 4 vendor or specification text
228 Intel SDM https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html S Theme 2 vendor or specification text
229 INTEL-SA-01427 https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-01427.html S Theme 2 vendor or specification text

Counts: 229 sources listed. S-tier 88, A-tier 20, B-tier 116, C-tier 5. The tiers are the auditor's and editor's, and the audit found the agents' own labels inflated; the S and A count is therefore an upper bound.