2018-05-27 21:55:56

by Stefan Agner

[permalink] [raw]
Subject: [PATCH v2 0/6] mtd: rawnand: add NVIDIA Tegra NAND flash support

This picks up an older patchset written by Lucas Stach which
adds raw NAND flash support for Tegra 2.
http://lists.infradead.org/pipermail/linux-mtd/2015-November/063031.html

The driver has been reworked to implement the ->exec_op callback.
Some smaller changes and bug fixes have been applied too, but I did
not keep track of them. Since the original patchset has been posted
some years back already, I guess review needs to be done from scratch
anyway.

This second revision is a rather major overhaul again. There are some
open issues:
- Driver specific DMA enabled (read/write)_page_raw are non functional
(I am not sure why, or if this is maybe even not possible at all...)
- OOB layout discrepancy
When using HW BCH support, the location of the ECC bytes changes
depending on whether extra OOB bytes (tag data) are transmitted or
not... Writing/Reading should always be with tag enabled or always
without. I am not sure how to solve this correctly, maybe disallow
using OOB data with HW ECC completely?

--
Stefan

Changes since v1:
- Split controller and NAND chip structure
- Add BCH support
- Allow to select algorithm and strength using device tree
- Improve HW ECC error reporting and use DEC_STATUS_BUF only
- Use SPDX license identifier
- Use per algorithm mtd_ooblayout_ops
- Use setup_data_interface callback for NAND timing configuration

Lucas Stach (4):
mtd: rawnand: tegra: add devicetree binding
clk: tegra20: init NDFLASH clock to sensible rate
ARM: tegra: add Tegra20 NAND flash controller node
ARM: tegra: enable NAND flash on Colibri T20

Stefan Agner (2):
mtd: rawnand: add Reed-Solomon error correction algorithm
mtd: rawnand: add NVIDIA Tegra NAND Flash controller driver

.../bindings/mtd/nvidia,tegra20-nand.txt | 62 ++
MAINTAINERS | 7 +
arch/arm/boot/dts/tegra20-colibri-512.dtsi | 16 +
arch/arm/boot/dts/tegra20.dtsi | 13 +
drivers/clk/tegra/clk-tegra20.c | 1 +
drivers/mtd/nand/raw/Kconfig | 6 +
drivers/mtd/nand/raw/Makefile | 1 +
drivers/mtd/nand/raw/nand_base.c | 1 +
drivers/mtd/nand/raw/tegra_nand.c | 999 ++++++++++++++++++
include/linux/mtd/rawnand.h | 1 +
10 files changed, 1107 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mtd/nvidia,tegra20-nand.txt
create mode 100644 drivers/mtd/nand/raw/tegra_nand.c

--
2.17.0