All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/6] mtd: rawnand: add NVIDIA Tegra NAND flash support
@ 2018-06-11 20:52 Stefan Agner
  2018-06-11 20:52 ` [PATCH v4 1/6] mtd: rawnand: add Reed-Solomon error correction algorithm Stefan Agner
                   ` (5 more replies)
  0 siblings, 6 replies; 27+ messages in thread
From: Stefan Agner @ 2018-06-11 20:52 UTC (permalink / raw)
  To: boris.brezillon, dwmw2, computersforpeace, marek.vasut, robh+dt,
	mark.rutland, thierry.reding
  Cc: dev, miquel.raynal, richard, marcel, krzk, digetx,
	benjamin.lindqvist, jonathanh, pdeschrijver, pgaikwad, mirza.krak,
	gaireg, linux-mtd, linux-tegra, devicetree, linux-kernel,
	Stefan Agner

The most notable change in this forth revision is the addition of
raw page and oob read/write accessors which support DMA. After
looking a bit closer into the U-Boot implementation of the Tegra
NAND driver I realized that in my previous attempts I enabled
SKIP_SPARE_EN which seems not to work when not using ECC modes.

A bad block scan of a 1GiB chip dropped from 3.9s to 0.2s.

The MTD kernel module tests seem to pass still:

=================================================
mtd_speedtest: MTD device: 4
mtd_speedtest: MTD device size 1068498944, eraseblock size 262144, page size 4096, count of eraseblocks 4076, pages per eraseblock 64, OOB size 224
mtd_test: scanning for bad eraseblocks
mtd_test: block 4072 is bad
mtd_test: block 4073 is bad
mtd_test: block 4074 is bad
mtd_test: block 4075 is bad
mtd_test: scanned 4076 eraseblocks, 4 are bad
mtd_speedtest: testing eraseblock write speed
mtd_speedtest: eraseblock write speed is 11499 KiB/s
mtd_speedtest: testing eraseblock read speed
mtd_speedtest: eraseblock read speed is 15251 KiB/s
mtd_speedtest: testing page write speed
mtd_speedtest: page write speed is 9588 KiB/s
mtd_speedtest: testing page read speed
mtd_speedtest: page read speed is 15213 KiB/s
mtd_speedtest: testing 2 page write speed
mtd_speedtest: 2 page write speed is 10291 KiB/s
mtd_speedtest: testing 2 page read speed
mtd_speedtest: 2 page read speed is 15416 KiB/s
mtd_speedtest: Testing erase speed
mtd_speedtest: erase speed is 128000 KiB/s
mtd_speedtest: Testing 2x multi-block erase speed
mtd_speedtest: 2x multi-block erase speed is 333364 KiB/s
mtd_speedtest: Testing 4x multi-block erase speed
mtd_speedtest: 4x multi-block erase speed is 335187 KiB/s
mtd_speedtest: Testing 8x multi-block erase speed
mtd_speedtest: 8x multi-block erase speed is 345061 KiB/s
mtd_speedtest: Testing 16x multi-block erase speed
mtd_speedtest: 16x multi-block erase speed is 344264 KiB/s
mtd_speedtest: Testing 32x multi-block erase speed
mtd_speedtest: 32x multi-block erase speed is 347941 KiB/s
mtd_speedtest: Testing 64x multi-block erase speed
mtd_speedtest: 64x multi-block erase speed is 348522 KiB/s
mtd_speedtest: finished
=================================================

==================================================
mtd_nandbiterrs: MTD device: 3
mtd_nandbiterrs: MTD device size 1048576, eraseblock=262144, page=4096, oob=224
mtd_nandbiterrs: Device uses 1 subpages of 4096 bytes
mtd_nandbiterrs: Using page=0, offset=0, eraseblock=0
mtd_nandbiterrs: incremental biterrors test
mtd_nandbiterrs: write_page
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 0 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 0/5
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 1 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 1 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 0/2
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 2 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 2 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 0/0
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 3 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 3 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 1/7
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 4 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 4 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 1/5
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 5 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 5 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 1/2
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 6 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 6 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 1/0
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 7 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 7 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 2/6
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 8 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 8 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 2/5
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 9 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 9 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 2/2
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 10 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 10 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 2/0
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 11 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 11 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 3/7
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 12 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 12 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 3/6
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 13 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 13 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 3/5
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 14 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 14 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 3/2
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 15 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 15 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 3/0
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: Read reported 16 corrected bit errors
mtd_nandbiterrs: verify_page
mtd_nandbiterrs: Successfully corrected 16 bit errors per subpage
mtd_nandbiterrs: Inserted biterror @ 4/2
mtd_nandbiterrs: rewrite page
mtd_nandbiterrs: read_page
mtd_nandbiterrs: error: read failed at 0x0
mtd_nandbiterrs: After 17 biterrors per subpage, read reported error -74
mtd_nandbiterrs: finished successfully.
==================================================

==================================================
mtd_nandbiterrs: MTD device: 3
mtd_nandbiterrs: MTD device size 1048576, eraseblock=262144, page=4096, oob=224
mtd_nandbiterrs: Device uses 1 subpages of 4096 bytes
mtd_nandbiterrs: Using page=0, offset=0, eraseblock=0
mtd_nandbiterrs: overwrite biterrors test
mtd_nandbiterrs: write_page
mtd_nandbiterrs: Read reported 1 corrected bit errors
mtd_nandbiterrs: Read reported 2 corrected bit errors
mtd_nandbiterrs: Read reported 3 corrected bit errors
mtd_nandbiterrs: Read reported 4 corrected bit errors
mtd_nandbiterrs: Read reported 5 corrected bit errors
mtd_nandbiterrs: Read reported 8 corrected bit errors
mtd_nandbiterrs: Read reported 10 corrected bit errors
mtd_nandbiterrs: Read reported 12 corrected bit errors
mtd_nandbiterrs: Read reported 14 corrected bit errors
mtd_nandbiterrs: Read reported 21 corrected bit errors
mtd_nandbiterrs: Read reported 28 corrected bit errors
mtd_nandbiterrs: Read reported 32 corrected bit errors
mtd_nandbiterrs: Read reported 40 corrected bit errors
mtd_nandbiterrs: Read reported 48 corrected bit errors
mtd_nandbiterrs: Read reported 56 corrected bit errors
mtd_nandbiterrs: Read reported 64 corrected bit errors
mtd_nandbiterrs: Read reported 72 corrected bit errors
mtd_nandbiterrs: Read reported 80 corrected bit errors
mtd_nandbiterrs: Read reported 88 corrected bit errors
mtd_nandbiterrs: Read reported 96 corrected bit errors
mtd_nandbiterrs: Read reported 104 corrected bit errors
mtd_nandbiterrs: Read reported 112 corrected bit errors
mtd_nandbiterrs: error: read failed at 0x0
mtd_nandbiterrs: Read reported error -74
mtd_nandbiterrs: Bit error histogram (2209 operations total):
mtd_nandbiterrs: Page reads with   0 corrected bit errors: 977
mtd_nandbiterrs: Page reads with   1 corrected bit errors: 92
mtd_nandbiterrs: Page reads with   2 corrected bit errors: 81
mtd_nandbiterrs: Page reads with   3 corrected bit errors: 7
mtd_nandbiterrs: Page reads with   4 corrected bit errors: 4
mtd_nandbiterrs: Page reads with   5 corrected bit errors: 3
mtd_nandbiterrs: Page reads with   6 corrected bit errors: 0
mtd_nandbiterrs: Page reads with   7 corrected bit errors: 0
mtd_nandbiterrs: Page reads with   8 corrected bit errors: 9
mtd_nandbiterrs: Page reads with   9 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  10 corrected bit errors: 42
mtd_nandbiterrs: Page reads with  11 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  12 corrected bit errors: 24
mtd_nandbiterrs: Page reads with  13 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  14 corrected bit errors: 62
mtd_nandbiterrs: Page reads with  15 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  16 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  17 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  18 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  19 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  20 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  21 corrected bit errors: 15
mtd_nandbiterrs: Page reads with  22 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  23 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  24 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  25 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  26 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  27 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  28 corrected bit errors: 75
mtd_nandbiterrs: Page reads with  29 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  30 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  31 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  32 corrected bit errors: 148
mtd_nandbiterrs: Page reads with  33 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  34 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  35 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  36 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  37 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  38 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  39 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  40 corrected bit errors: 74
mtd_nandbiterrs: Page reads with  41 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  42 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  43 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  44 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  45 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  46 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  47 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  48 corrected bit errors: 37
mtd_nandbiterrs: Page reads with  49 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  50 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  51 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  52 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  53 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  54 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  55 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  56 corrected bit errors: 93
mtd_nandbiterrs: Page reads with  57 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  58 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  59 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  60 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  61 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  62 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  63 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  64 corrected bit errors: 23
mtd_nandbiterrs: Page reads with  65 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  66 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  67 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  68 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  69 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  70 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  71 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  72 corrected bit errors: 258
mtd_nandbiterrs: Page reads with  73 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  74 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  75 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  76 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  77 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  78 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  79 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  80 corrected bit errors: 90
mtd_nandbiterrs: Page reads with  81 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  82 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  83 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  84 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  85 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  86 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  87 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  88 corrected bit errors: 14
mtd_nandbiterrs: Page reads with  89 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  90 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  91 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  92 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  93 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  94 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  95 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  96 corrected bit errors: 21
mtd_nandbiterrs: Page reads with  97 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  98 corrected bit errors: 0
mtd_nandbiterrs: Page reads with  99 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 100 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 101 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 102 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 103 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 104 corrected bit errors: 32
mtd_nandbiterrs: Page reads with 105 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 106 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 107 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 108 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 109 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 110 corrected bit errors: 0
mtd_nandbiterrs: Page reads with 111 corrected bit errors: 0
mtd_nandbiterrs: finished successfully.
==================================================

=================================================
mtd_oobtest: MTD device: 3
mtd_oobtest: MTD device size 1048576, eraseblock size 262144, page size 4096, count of eraseblocks 4, pages per eraseblock 64, OOB size 224
mtd_test: scanning for bad eraseblocks
mtd_test: scanned 4 eraseblocks, 0 are bad
mtd_oobtest: test 1 of 5
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written 4 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: verified 4 eraseblocks
mtd_oobtest: test 2 of 5
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written 4 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: verified 4 eraseblocks
mtd_oobtest: test 3 of 5
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written 4 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: verified 4 eraseblocks
mtd_oobtest: test 4 of 5
mtd_oobtest: attempting to start write past end of OOB
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to start read past end of OOB
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to write past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to read past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to write past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: attempting to read past end of device
mtd_oobtest: an error is expected...
mtd_oobtest: error occurred as expected
mtd_oobtest: test 5 of 5
mtd_oobtest: writing OOBs of whole device
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written up to eraseblock 0
mtd_oobtest: written 3 eraseblocks
mtd_oobtest: verifying all eraseblocks
mtd_oobtest: verified up to eraseblock 0
mtd_oobtest: verified 3 eraseblocks
mtd_oobtest: finished with 0 errors
=================================================

=================================================
mtd_readtest: MTD device: 3
mtd_readtest: MTD device size 1048576, eraseblock size 262144, page size 4096, count of eraseblocks 4, pages per eraseblock 64, OOB size 224
mtd_test: scanning for bad eraseblocks
mtd_test: scanned 4 eraseblocks, 0 are bad
mtd_readtest: testing page read
mtd_readtest: finished
=================================================

=================================================
mtd_subpagetest: MTD device: 3
mtd_subpagetest: MTD device size 1048576, eraseblock size 262144, page size 4096, subpage size 4096, count of eraseblocks 4, pages per eraseblock 64, OOB size 224
mtd_test: scanning for bad eraseblocks
mtd_test: scanned 4 eraseblocks, 0 are bad
mtd_subpagetest: writing whole device
mtd_subpagetest: written up to eraseblock 0
mtd_subpagetest: written 4 eraseblocks
mtd_subpagetest: verifying all eraseblocks
mtd_subpagetest: verified up to eraseblock 0
mtd_subpagetest: verified 4 eraseblocks
mtd_subpagetest: verifying all eraseblocks for 0xff
mtd_subpagetest: verified up to eraseblock 0
mtd_subpagetest: verified 4 eraseblocks
mtd_subpagetest: writing whole device
mtd_subpagetest: written up to eraseblock 0
mtd_subpagetest: written 4 eraseblocks
mtd_subpagetest: verifying all eraseblocks
mtd_subpagetest: verified up to eraseblock 0
mtd_subpagetest: verified 4 eraseblocks
mtd_subpagetest: verifying all eraseblocks for 0xff
mtd_subpagetest: verified up to eraseblock 0
mtd_subpagetest: verified 4 eraseblocks
mtd_subpagetest: finished with 0 errors
=================================================

=================================================
mtd_stresstest: MTD device: 3
mtd_stresstest: MTD device size 1048576, eraseblock size 262144, page size 4096, count of eraseblocks 4, pages per eraseblock 64, OOB size 224
mtd_test: scanning for bad eraseblocks
mtd_test: scanned 4 eraseblocks, 0 are bad
mtd_stresstest: doing operations
mtd_stresstest: 0 operations done
mtd_stresstest: 1024 operations done
mtd_stresstest: 2048 operations done
mtd_stresstest: 3072 operations done
mtd_stresstest: 4096 operations done
mtd_stresstest: 5120 operations done
mtd_stresstest: aborting test due to pending signal!
mtd_stresstest: error -4 occurred
=================================================

--
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

Changes since v2:
- Set clock rate using assigned-clocks
- Use BIT() macro
- Fix and improve timing calculation
- Improve ECC error handling
- Store OOB layout for tag area in Tegra chip structure
- Update/fix bindings
- Use more specific variable names (replace "value")
- Introduce nand-is-boot-medium
- Choose sensible ECC strenght automatically
- Use wait_for_completion_timeout
- Print register dump on completion timeout
- Unify tegra_nand_(read|write)_page in tegra_nand_page_xfer

Changes since v3:
- Implement tegra_nand_(read|write)_raw using DMA
- Implement tegra_nand_(read|write)_oob using DMA
- Name registers according to Tegra 2 Technical Reference Manual (v02p)
- Use wait_for_completion_io_timeout to account for IO
- Get chip select id from device tree reg property
- Clear interrupts and reinit wait queues in case command/DMA times out
- Set default MTD name after nand_set_flash_node
- Move MODULE_DEVICE_TABLE after declaration of tegra_nand_of_match
- Make (rs|bch)_strength static

Lucas Stach (1):
  ARM: dts: tegra: add Tegra20 NAND flash controller node

Stefan Agner (5):
  mtd: rawnand: add Reed-Solomon error correction algorithm
  mtd: rawnand: add an option to specify NAND chip as a boot device
  mtd: rawnand: tegra: add devicetree binding
  mtd: rawnand: add NVIDIA Tegra NAND Flash controller driver
  ARM: dts: tegra: enable NAND flash on Colibri T20

 .../devicetree/bindings/mtd/nand.txt          |    6 +-
 .../bindings/mtd/nvidia-tegra20-nand.txt      |   64 +
 MAINTAINERS                                   |    7 +
 arch/arm/boot/dts/tegra20-colibri-512.dtsi    |   16 +
 arch/arm/boot/dts/tegra20.dtsi                |   15 +
 drivers/mtd/nand/raw/Kconfig                  |    6 +
 drivers/mtd/nand/raw/Makefile                 |    1 +
 drivers/mtd/nand/raw/nand_base.c              |    4 +
 drivers/mtd/nand/raw/tegra_nand.c             | 1248 +++++++++++++++++
 include/linux/mtd/rawnand.h                   |    7 +
 10 files changed, 1373 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/mtd/nvidia-tegra20-nand.txt
 create mode 100644 drivers/mtd/nand/raw/tegra_nand.c

-- 
2.17.1

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2018-06-17 16:57 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-11 20:52 [PATCH v4 0/6] mtd: rawnand: add NVIDIA Tegra NAND flash support Stefan Agner
2018-06-11 20:52 ` [PATCH v4 1/6] mtd: rawnand: add Reed-Solomon error correction algorithm Stefan Agner
2018-06-12 18:37   ` Rob Herring
2018-06-11 20:52 ` [PATCH v4 2/6] mtd: rawnand: add an option to specify NAND chip as a boot device Stefan Agner
2018-06-11 20:52   ` Stefan Agner
2018-06-11 20:52 ` [PATCH v4 3/6] mtd: rawnand: tegra: add devicetree binding Stefan Agner
2018-06-11 20:52   ` Stefan Agner
2018-06-11 20:52 ` [PATCH v4 4/6] mtd: rawnand: add NVIDIA Tegra NAND Flash controller driver Stefan Agner
2018-06-11 23:08   ` kbuild test robot
2018-06-11 23:08     ` kbuild test robot
2018-06-11 23:32   ` Dmitry Osipenko
2018-06-12  8:02     ` Stefan Agner
2018-06-12  8:13       ` Boris Brezillon
2018-06-17 16:57         ` Stefan Agner
2018-06-12  0:03   ` Dmitry Osipenko
2018-06-12  8:06     ` Stefan Agner
2018-06-12  8:27       ` Boris Brezillon
2018-06-12  9:17         ` Stefan Agner
2018-06-12  9:34           ` Boris Brezillon
2018-06-12 15:24           ` Jens Axboe
2018-06-12 20:20             ` Stefan Agner
2018-06-12 21:20               ` Boris Brezillon
2018-06-12 21:24               ` Jens Axboe
2018-06-12 21:30                 ` Boris Brezillon
2018-06-12 12:17   ` Dmitry Osipenko
2018-06-11 20:52 ` [PATCH v4 5/6] ARM: dts: tegra: add Tegra20 NAND flash controller node Stefan Agner
2018-06-11 20:52 ` [PATCH v4 6/6] ARM: dts: tegra: enable NAND flash on Colibri T20 Stefan Agner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.