Skip to content

Update for QCOM NAND driver

Abhishek Sahu linux-arm-msm linux-devicetree linux-mtd lkml stable 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest15 patches 5 repliesIn review
  2. v316 patches 35 repliesSuperseded
  3. v214 patches 24 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v19 patches38 repliesSuperseded

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/15mtd: rawnand: helper function for setting up ECC configurationdrivers/mtd/nand/raw/nand_base.c include/linux/mtd/rawnand.h+36 -01 reply
2/15mtd: rawnand: denali: use helper function for ecc setupdrivers/mtd/nand/raw/denali.c+2 -280 replies
3/15dt-bindings: qcom_nandc: update for ECC strength and step sizeDocumentation/devicetree/bindings/mtd/qcom_nandc.txt+3 -41 reply
4/15mtd: rawnand: qcom: remove dt property nand-ecc-step-sizedrivers/mtd/nand/raw/qcom_nandc.c+2 -90 replies
5/15mtd: rawnand: qcom: use the ecc strength from device parameterdrivers/mtd/nand/raw/qcom_nandc.c+21 -80 replies
6/15mtd: rawnand: qcom: wait for desc completion in all BAM channelsdrivers/mtd/nand/raw/qcom_nandc.c+52 -10 replies
7/15mtd: rawnand: qcom: erased page detection for uncorrectable errors onlydrivers/mtd/nand/raw/qcom_nandc.c+43 -220 replies
8/15mtd: rawnand: qcom: fix null pointer access for erased page detectiondrivers/mtd/nand/raw/qcom_nandc.c+15 -30 replies
9/15mtd: rawnand: qcom: parse read errors for read oob alsodrivers/mtd/nand/raw/qcom_nandc.c+9 -170 replies
10/15mtd: rawnand: qcom: modify write_oob to remove read codeword partdrivers/mtd/nand/raw/qcom_nandc.c+4 -120 replies
11/15mtd: rawnand: qcom: fix return value for raw page readdrivers/mtd/nand/raw/qcom_nandc.c+1 -10 replies
12/15mtd: rawnand: qcom: check for operation errors in case of raw readdrivers/mtd/nand/raw/qcom_nandc.c+40 -180 replies
13/15mtd: rawnand: qcom: code reorganization for raw readdrivers/mtd/nand/raw/qcom_nandc.c+78 -680 replies
14/15mtd: rawnand: qcom: erased page bitflips detectiondrivers/mtd/nand/raw/qcom_nandc.c+90 -371 reply
15/15mtd: rawnand: provide only single helper function for ECC confdrivers/mtd/nand/raw/nand_base.c include/linux/mtd/rawnand.h+15 -330 replies

Reviews trailers per patch

12 of 15 patches have a Reviewed-by or Acked-by.

PatchMiquel RaynalMasahiro YamadaRob Herring
1/15R-b
2/15A-b A-b
3/15R-b
4/15A-b
5/15A-b
6/15A-b
7/15A-b
8/15A-b
9/15R-b
10/15A-b
11/15A-b
12/15A-b
13/15
14/15
15/15

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v4 thread

Cover letter [PATCH v4 00/15] Update for QCOM NAND driver

* v4:

1. Added patch to make other ECC configurations function static.
2. Clubbed the DT update patches.
3. Removed the bad block related patch. Discussion is going on related with for proper solution so planning to submit separate patch series for all bad block related changes.
4. Made the single codeword raw read function and used the same for raw page read.
5. Changes in erased codeword detection to raw read function.

* v3:

1. Addressed all review comments in v2.
2. Added patch for removing redundant nand-ecc-step-size DT property.
3. Renamed ECC configuration setup function with minor code changes.
4. Modified comments and commit message for few patches.

* v2:

1. Addressed all review comments in v1.
1. Make the generic helper function for NAND ECC parameters setup and used this helper function for QCOM and Denali nand driver for ECC setup.
2. Modified commit message for some of the patches and added more comments.
3. Added new patch for fixing ‘return 0’ for raw read.
4. Removed the read last codeword part for nand oob write.
5. Reorganized bad block check function and removed the read_last_cw function completely.

* v1:

This patch series mainly deals with error handling and erased page bitflip detection for QCOM NAND driver.

1. The error handling was missing for some of the cases so fixed the same.

2. Add the support for taking ECC strength from ONFI parameter. The earlier QCOM boards were coming with 4-bit ECC chip but now the same boards are coming with 8-bit ECC chip since the earlier 4-bit parts are obsolete from some vendors.

3. We got few issues related with NAND erased page bitflips. The QCOM NAND controller can’t detect the bitflip in completely erased page so added the support to detect the same. It implemented the logic mentioned in patch [1] which didn’t go in mainline and later the generic functions were provided [2] to count the number of bitflips and make all 0xff. This patch series did some optimization logic to prevent the unnecessary full page raw read and data copy from QCOM NAND controller to DMA.

4. Following are the testing done for these patches in QCOM IPQ8074 HK01 (4-bit and 8-bit ECC chip) and IPQ806x AP148 boards. a. Run all mtd test and check if it passes
b. Introduce custom bitflips in erased page and check if it
returns no error/EUCLEAN/EBADMSG depending upon number of bitflips and position.
c. Introduce failure condition for operational failure and
check if it detects the same.

[1]: https://patchwork.ozlabs.org/patch/328994/
[2]: https://patchwork.ozlabs.org/patch/509970/

Abhishek Sahu (15):
mtd: rawnand: helper function for setting up ECC configuration
mtd: rawnand: denali: use helper function for ecc setup
dt-bindings: qcom_nandc: update for ECC strength and step size
mtd: rawnand: qcom: remove dt property nand-ecc-step-size
mtd: rawnand: qcom: use the ecc strength from device parameter
mtd: rawnand: qcom: wait for desc completion in all BAM channels
mtd: rawnand: qcom: erased page detection for uncorrectable errors
only
mtd: rawnand: qcom: fix null pointer access for erased page detection
mtd: rawnand: qcom: parse read errors for read oob also
mtd: rawnand: qcom: modify write_oob to remove read codeword part
mtd: rawnand: qcom: fix return value for raw page read
mtd: rawnand: qcom: check for operation errors in case of raw read
mtd: rawnand: qcom: code reorganization for raw read
mtd: rawnand: qcom: erased page bitflips detection
mtd: rawnand: provide only single helper function for ECC conf

 .../devicetree/bindings/mtd/qcom_nandc.txt         |   7 +-
 drivers/mtd/nand/raw/denali.c                      |  30 +-
 drivers/mtd/nand/raw/nand_base.c                   |  72 ++-
 drivers/mtd/nand/raw/qcom_nandc.c                  | 491 ++++++++++++++-------
 include/linux/mtd/rawnand.h                        |  10 +-
 5 files changed, 380 insertions(+), 230 deletions(-)
Signature · 7 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc.
is a member of Code Aurora Forum, hosted by The Linux Foundation


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/