00:12.0 SD Host controller [0805]: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SD Controller [8086:2296] (rev 21) (prog-if 01) Subsystem: Intel Corporation Device [8086:2060] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 18 Region 0: Memory at 8141c000 (32-bit, non-prefetchable) [size=4K] Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-) Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME- Kernel driver in use: sdhci-pci Kernel modules: sdhci_pci Samsung EVO+ 32G SDHC Model: MB-MC32D https://www.samsung.com/uk/memory-storage/evo-plus-microsd-card/MB-MC32DEU/ $ uname -r 4.18.12-300.fc29.x86_64 $ cat /sys/block/mmcblk0/queue/scheduler [mq-deadline] none The problem: Oct 09 20:57:04 fnuc.local kernel: mmc0: Timeout waiting for hardware interrupt. Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: ============ SDHCI REGISTER DUMP =========== Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Sys addr: 0x00000040 | Version: 0x00001002 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000040 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Argument: 0x00c8bc00 | Trn mode: 0x0000002b Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Present: 0x01ff0001 | Host ctl: 0x00000017 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000080 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Timeout: 0x0000000e | Int stat: 0x00000000 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Int enab: 0x02ff008b | Sig enab: 0x02ff008b Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Caps: 0x0568c8b2 | Caps_1: 0x00000807 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Cmd: 0x0000193a | Max curr: 0x00000000 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Resp[0]: 0x00000f00 | Resp[1]: 0x5730e8f9 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Resp[2]: 0x4542324d | Resp[3]: 0x00000f00 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: Host ctl2: 0x0000008b Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x74000200 Oct 09 20:57:04 fnuc.local kernel: mmc0: sdhci: ============================================ Oct 09 20:57:07 fnuc.local kernel: mmc0: Card stuck in wrong state! mmcblk0 card_busy_detect status: 0xf00 Oct 09 20:57:07 fnuc.local kernel: mmcblk0: recovery failed! Oct 09 20:57:07 fnuc.local kernel: print_req_error: I/O error, dev mmcblk0, sector 13155328 Oct 09 20:57:07 fnuc.local kernel: BTRFS error (device mmcblk0p3): bdev /dev/mmcblk0p3 errs: wr 6, rd 0, flush 0, corrupt 0, gen 0 For some reason, Samsung SDHC cards keep dying in an Intel NUC. When they die, they go read only, and any attempt to write causes the writing process to hang indefinitely, and they do not recover. I'd like to know why this problem keeps happening. The original card died after just under one year of usage, and the replacement died after just 6 months of usage and similar workload. So long as no writes happen (mount ro, and if necessary norecovery), the file systems on the sd card are readable. There was no power failure or card removal near the time when the failures happen. Thanks, -- Chris Murphy