u-boot-2016/drivers/mtd/nand
Md Sadre Alam 599391c231 driver: mtd: qpic: Enable support for page_scope & multi_page read command.
This change will enable page_scope_read & multipage_read support for
QPIC.
QPIC version 2.0 onwards , QPIC support page_scope_read &
multipage_read command to enhance the read performance.
In normal page read command SW is needed to write EXEC_CMD register
for each Code word and collect any Status related to that CW before
issueing EXEC_CMD for next CW.

For page_scope read command SW is required to issue EXEC_CMD
only once for a page. Controller HW takes care of Codeword specific
details and automatically returns status associated with each CW to
BAM pipe, dedicated for status deposition.

enabling all bits in NAND_AUTO_STATUS_EN will require 4 data
descriptors of 24 bytes each. This will publish all NANDc status
registers in system memory.

For multipage_read command SW is required to issue EXEC_CMD only
once for all the pages which configured in QPIC_NAND_MULTI_PAGE_CMD
register.
All interrupts will be operational and valid in these modes.

To check the status for each codeword, it is not possible to access
the status registers while the read command is operational in
page_scope & multi_page read  modes. Hence, another feature to publish the
status data (for all NAND status registers) by programming the
NAND_AUTO_STATUS_EN register.

For serial NAND:
Read command for page_scope_read = 0x78800032 (QPIC_NAND_FLASH_CMD)
Read command for multi_page_read = 0x78400032 (QPIC_NAND_FLASH_CMD)

For Parallel NAND:
Read command for page_scope_read = 0x00800032 (QPIC_NAND_FLASH_CMD)
Read command for multi_page_read = 0x00400032 (QPIC_NAND_FLASH_CMD)

Now we fixed maximum data bytes read in one go 128KiB(2KiB page),
256KiB (4KiB page), 512 KiB (8kiB page), because from upper layer
we are getting more than 128KiB data bytes request in one go. if so
just changing the value of "MAX_MULTI_PAGE" macro will increase the
maximum data bytes in one go.

Change-Id: I48eea51ff8f5f79f3490d8a538c295ecc3eeee19
Signed-off-by: Md Sadre Alam <mdalam@codeaurora.org>
2020-03-06 15:52:15 +05:30
..
am335x_spl_bch.c mtd: nand: am335x: Fix 'bit-flip' errors in SPL 2014-09-25 13:43:00 -05:00
atmel_nand.c nand, atmel: remove udelay in spl_nand_erase_one() 2015-08-12 20:47:27 -04:00
atmel_nand_ecc.h nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
bfin_nand.c Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
davinci_nand.c nand: Remove CONFIG_MTD_NAND_VERIFY_WRITE 2015-03-30 23:24:39 -05:00
denali.c nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
denali.h nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
denali_spl.c mtd: denali_spl: do not allocate page_buffer in .bss section 2015-08-30 22:18:00 +09:00
docg4.c nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
docg4_spl.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
fsl_elbc_nand.c nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
fsl_elbc_spl.c Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
fsl_ifc_nand.c nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
fsl_ifc_spl.c armv8/ls2085aqds: NAND boot support 2015-04-23 16:46:50 -07:00
fsl_upm.c nand: Remove CONFIG_MTD_NAND_VERIFY_WRITE 2015-03-30 23:24:39 -05:00
fsmc_nand.c mtd: nand: fsmc: Fixes and cleanup for fsmc_nand_switch_ecc() 2015-09-15 15:05:21 -04:00
ipq_nand.c ipq: Fix compiler warnings in u-boot-2016 2019-05-23 18:36:28 +05:30
jz4740_nand.c bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
kb9202_nand.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
Kconfig mtd: nand: Make CONFIG_SYS_NAND_U_BOOT_OFFS configurable through Kconfig 2015-08-31 08:43:42 +02:00
kirkwood_nand.c arm: marvell: Move arch/kirkwood.h to arch/soc.h 2014-10-23 09:59:20 -04:00
kmeter1_nand.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
lpc32xx_nand_mlc.c lpc32xx: mtd: nand: add MLC NAND controller 2015-04-10 14:22:56 +02:00
lpc32xx_nand_slc.c nand: lpc32xx: add ECC layout for small page NAND 2015-08-18 13:45:56 -04:00
Makefile mtd: nand: Add nand controller driver for IPQ806x 2016-10-17 02:33:39 -07:00
mpc5121_nfc.c nand: Remove CONFIG_MTD_NAND_VERIFY_WRITE 2015-03-30 23:24:39 -05:00
mxc_nand.c nand: Remove CONFIG_MTD_NAND_VERIFY_WRITE 2015-03-30 23:24:39 -05:00
mxc_nand.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
mxc_nand_spl.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
mxs_nand.c mtd: nand: mxs check maximum ecc that platfrom supports 2015-09-20 09:59:54 +02:00
mxs_nand_spl.c spl: nand: add support for mxs nand 2014-06-06 10:07:25 +02:00
nand.c nand: Introduce CONFIG_SYS_NAND_SELF_INIT 2012-01-26 16:09:06 -06:00
nand_base.c nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
nand_bbt.c nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
nand_bch.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
nand_ecc.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
nand_ids.c ipq807x: Add support for 512M Toshiba Nand in U-Boot 2019-06-03 15:38:26 +05:30
nand_plat.c mtd: nand_plat: add simple GPIO framework DEV_READY option 2010-07-08 16:52:12 -05:00
nand_spl_load.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
nand_spl_simple.c spl: nand: simple: replace readb() with chip specific read_buf() 2015-08-12 20:47:33 -04:00
nand_timings.c nand: Sync with Linux v4.1 2015-08-25 22:53:57 -05:00
nand_util.c Move malloc_cache_aligned() to its own header 2015-09-11 17:15:16 -04:00
ndfc.c nand: Remove CONFIG_MTD_NAND_VERIFY_WRITE 2015-03-30 23:24:39 -05:00
omap_elm.c mtd: nand: omap: fix error-codes returned from omap-elm driver 2014-06-06 17:46:00 -04:00
omap_gpmc.c nand: omap_gpmc: Change correctable bit-flips messages to debug() 2015-10-11 17:12:13 -04:00
pxa3xx_nand.c Fix typo: firstly -> first. 2015-12-05 18:22:23 -05:00
pxa3xx_nand.h mtd: nand: Add mvebu (PXA / AXP / A38x) NAND device driver 2015-08-25 22:53:58 -05:00
qpic_nand.c driver: mtd: qpic: Enable support for page_scope & multi_page read command. 2020-03-06 15:52:15 +05:30
s3c2410_nand.c mtd: nand: s3c: Unify the register definition and naming 2014-11-26 23:21:43 -06:00
sunxi_nand_spl.c sunxi_nand_spl: Be smarter about where to look for backup u-boot.bin 2015-09-29 11:50:07 +02:00
tegra_nand.c Move ALLOC_CACHE_ALIGN_BUFFER() to the new memalign.h header 2015-09-11 17:15:20 -04:00
tegra_nand.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
vf610_nfc.c mtd: nand: vf610_nfc: resync with upstream Linux version 2015-10-15 11:10:44 +02:00