[RFC PATCH 0/2] Cavium NAND flash driver

Jan Glauber
2017-03-27T16:06:37Z

This series adds a driver for the nand flash controller as found on Cavium's
ARM64 SOCs. For details about the controller see description of patch #2.

The nand flash chip on the board I used for testing is:

[ 12.775877] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xf1
[ 12.782242] nand: Macronix MX30LF1GE8AB
[ 12.786072] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64

This chip has internal on-die ECC (which cannot be disabled). Data
sheet can be found here:
http://www.macronix.com/en-us/products/NAND-Flash/SLC-NAND-Flash/Pages/spec.aspx?p=MX30LF1GE8AB

I've tested with ecc-mode="none" but will use the new ecc-mode "on-die" when
it is available (already described it in DTS).

Passed tests:
- mtd-utils nandtest
- mtd kernel test modules (minus oob writetest)
- ubifs works :)

Known issues:
- OOB write is broken (read works)
- only one nand chip is supported currently
- 16 bit bus support probably broken

Feedback welcome!

thanks,
Jan

---

Jan Glauber (2):
dt-bindings: mtd: Add Cavium SOCs NAND bindings
nand: cavium: Nand flash controller for Cavium ARM64 SOCs

.../devicetree/bindings/mtd/cavium_nand.txt | 32 +
drivers/mtd/nand/Kconfig | 6 +
drivers/mtd/nand/Makefile | 1 +
drivers/mtd/nand/cavium_nand.c | 1160 ++++++++++++++++++++
drivers/mtd/nand/cavium_nand.h | 231 ++++
5 files changed, 1430 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mtd/cavium_nand.txt
create mode 100644 drivers/mtd/nand/cavium_nand.c
create mode 100644 drivers/mtd/nand/cavium_nand.h

--
2.9.0.rc0.21.g7777322