Drive your NAND within Linux
summary
Linux gains exec_op as a unified NAND controller interface merged in kernel 4.16 that passes an array of low-level instructions (commands, addresses, data) so controllers can execute complex batched operations instead of ad-hoc common_fn hacks. Controller drivers migrate by providing a parser patterns table and callbacks; two drivers have already been migrated. Example limits used in the talk: up to five address cycles and 1KB data segments, with the parser splitting larger transfers and falling back cleanly when unsupported.
AI-written summary · about
chapters (34)
- 0:00Introduction
- 0:30Overview
- 2:25Silicon
- 3:08Crystal
- 3:42Doping
- 4:50Diode
- 7:22Extra floating gate
- 8:38Channeling effect
- 9:31Negative voltage
- 10:02NPN
- 10:40Logic Zero
- 11:16String Memory
- 12:55Page Blocks
- 13:35Erase Cell
- 14:20Map Cell
- 14:44Flaws
- 15:52Data Retention
- 16:39ReadWrite
- 17:24NonWrite
- 17:42NonController
- 19:35Cle
- 20:12Read NAND
- 21:33Controllers
- 22:09Linux Kernel
- 23:16NonCore Stack
- 24:26NonCore Limitations
- 25:37Common Funk
- 27:17XICAP
- 28:04How does it work
- 29:03Parser
- 29:34Example
- 31:48Other hooks
- 33:01Migration
- 33:49Torque
related talks
44mModernizing the NAND Framework: The Big Picture
36mFrom Raw To Refined: The Evolution of Raw Flash Support in Linux
36mIntroduction to HyperBus Memory Devices
43mThe Forefront of the Development for NVDIMM on Linux Kernel
57mRunning UBI/UBIFS on MLC NAND
23mDemystifying Linux NPU Subsystem: From Vision to LLM at Edge
31mLinux User Library for NVM Express
18mSPI Memory Support in Linux and U-Boot
