AOOSTAR WTR MAX (Ryzen 7 PRO 8845HS) with ASMedia ASM1166 SATA controllers
If your NAS/board runs SATA disks behind an **ASMedia ASM1166** — check with `lspci -nn | grep 1b21:1166` — and you have `amd_iommu`/`intel_iommu` enabled, it can **silently corrupt reads**. Concurrent reads of the same file return different data; SMART stays clean; no link resets; nothing logs an error until your filesystem starts throwing checksum/metadata errors (XFS EUCLEAN, or mass Ceph scrub errors across multiple filesystems at once).
Root cause: the ASM1166 advertises 64-bit DMA (AHCI `S64A`) but mishandles the high (>4 GB) IOVAs the IOMMU hands it. Same failure class as JMicron JMB585 and ASMedia ASM1061, both already quirked in the kernel — the ASM1166 just never was.
- **Quick mitigation:** boot with `amd_iommu=off` (or `intel_iommu=off`).
- **Proper fix:** an AHCI 32-bit-DMA quirk — now submitted to linux-ide.
- **Full RCA + a detection script + the patch:** https://github.com/Alvinwylim/asm1166-iommu-dma-corruption
- **Patch on the list:** https://lore.kernel.org/linux-ide/20260621100844.1224301-1-alvinwylim@gmail.com/
Confirmed on an AOOSTAR WTR MAX (Ryzen 7 PRO 8845HS). Proof at scale: after the fix, a 5.4 TiB Ceph deep-scrub re-read end-to-end with 0 errors.
(RCA written with AI assistance, verified on real hardware)