linux/drivers/mtd/nand/raw
Mason Yang 8423465259 mtd: rawnand: Add support for Macronix NAND randomizer
Macronix NANDs support randomizer operation for user data scrambled,
which can be enabled with a SET_FEATURE.

User data written to the NAND device without randomizer is still readable
after randomizer function enabled.
The penalty of randomizer are subpage accesses prohibited and more time
period is needed in program operation and entering deep power-down mode.
i.e., tPROG 300us to 340us(randomizer enabled)

For more high-reliability concern, if subpage write not available with
hardware ECC and then to enable randomizer is recommended by default.
Driver checks byte 167 of Vendor Blocks in ONFI parameter page table
to see if this high-reliability function is supported. By adding a new
specific DT property in children nodes to enable randomizer function.

Signed-off-by: Mason Yang <masonccyang@mxic.com.tw>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/1581922600-25461-2-git-send-email-masonccyang@mxic.com.tw
2020-03-11 16:17:54 +01:00
..
atmel mtd: rawnand: atmel: switch to using devm_fwnode_gpiod_get() 2020-01-21 20:00:34 +01:00
bcm47xxnflash treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
brcmnand mtd: rawnand: brcmnand: Set appropriate DMA mask 2020-01-21 20:00:33 +01:00
gpmi-nand mtd: rawnand: gpmi: Restore nfc timing setup after suspend/resume 2020-01-17 22:45:09 +01:00
ingenic mtd: rawnand: ingenic: Use devm_platform_ioremap_resource() 2020-03-09 14:51:01 +01:00
ams-delta.c mtd: rawnand: ams-delta: Rename structures and functions to gpio_nand* 2020-03-11 16:17:53 +01:00
au1550nd.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
cadence-nand-controller.c mtd: cadence: Fix cast to pointer from integer of different size warning 2020-01-09 20:05:15 +01:00
cafe_nand.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
cmx270_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cs553x_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
davinci_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
denali_dt.c mtd: rawnand: denali_dt: add reset controlling 2020-01-21 20:00:33 +01:00
denali_pci.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
denali.c mtd: rawnand: denali: deassert write protect pin 2020-03-09 14:49:14 +01:00
denali.h mtd: rawnand: denali: decouple controller and NAND chips 2019-04-18 08:54:03 +02:00
diskonchip.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
fsl_elbc_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
fsl_ifc_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
fsl_upm.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
fsmc_nand.c mtd: rawnand: fsmc: Use nand_op_trace for operation tracing 2019-06-27 20:05:26 +02:00
gpio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hisi504_nand.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
internals.h mtd: spinand: toshiba: Add comment about Kioxia ID 2020-03-09 14:49:14 +01:00
Kconfig mtd: rawnand: add unspecified HAS_IOMEM dependency 2020-01-27 17:44:21 +01:00
lpc32xx_mlc.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
lpc32xx_slc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
Makefile mtd: rawnand: Add new Cadence NAND driver to MTD subsystem 2019-10-04 18:02:22 +02:00
marvell_nand.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
meson_nand.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
mpc5121_nfc.c mtd: rawnand: mpc5121: Remove unneeded semicolon 2020-01-21 20:00:16 +01:00
mtk_ecc.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
mtk_ecc.h mtd: rawnand: mtk: Re-license MTK NAND driver as Dual MIT/GPL 2019-06-27 20:07:46 +02:00
mtk_nand.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
mxc_nand.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
mxic_nand.c mtd: rawnand: mxic: Remove dev_err() on platform_get_irq() failure 2019-10-29 14:40:42 +01:00
nand_amd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nand_base.c mtd: rawnand: free the nand_device object 2020-03-09 14:49:14 +01:00
nand_bbt.c mtd: rawnand: Fix a memory leak bug 2019-08-24 13:13:41 +02:00
nand_bch.c mtd: rawnand: Use kzalloc() instead of kmalloc() and memset() 2019-06-28 12:00:46 +02:00
nand_ecc.c docs: mtd: move it to the driver-api book 2019-07-15 09:20:28 -03:00
nand_esmt.c mtd: rawnand: ESMT: Also use the last page for bad block markers 2019-04-18 08:54:08 +02:00
nand_hynix.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nand_ids.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
nand_jedec.c mtd: rawnand: Get rid of chip->ecc_{strength,step}_ds 2019-04-08 10:21:16 +02:00
nand_legacy.c mtd: rawnand: Annotate implicit fall through in nand_command/nand_command_lp 2019-02-05 16:56:10 +01:00
nand_macronix.c mtd: rawnand: Add support for Macronix NAND randomizer 2020-03-11 16:17:54 +01:00
nand_micron.c mtd: rawnand: Change calculating of position page containing BBM 2019-10-04 18:02:20 +02:00
nand_onfi.c mtd: rawnand: Get rid of chip->ecc_{strength,step}_ds 2019-04-08 10:21:16 +02:00
nand_samsung.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nand_timings.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
nand_toshiba.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nandsim.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 150 2019-05-30 11:25:19 -07:00
ndfc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
omap2.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
omap_elm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
orion_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
oxnas_nand.c mtd: rawnand: oxnas: Add of_node_put() 2019-07-25 14:21:44 +02:00
pasemi_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
plat_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
qcom_nandc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
r852.c mtd: rawnand: r852: Use dev_get_drvdata 2019-08-07 18:15:38 +02:00
r852.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
s3c2410.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
sh_flctl.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
sharpsl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sm_common.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sm_common.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
socrates_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
stm32_fmc2_nand.c mtd: rawnand: stm32_fmc2: avoid to lock the CPU bus 2020-01-09 20:03:41 +01:00
sunxi_nand.c mtd: Remove dev_err() usage after platform_get_irq() 2019-10-08 19:01:49 +02:00
tango_nand.c mtd: rawnand: tango: Add of_node_put() before return 2019-07-25 14:21:44 +02:00
tegra_nand.c mtd: rawnand: Get rid of chip->ecc_{strength,step}_ds 2019-04-08 10:21:16 +02:00
tmio_nand.c mtd: rawnand: Stop using chip->state in drivers 2019-02-05 15:39:40 +01:00
txx9ndfmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
vf610_nfc.c mtd: rawnand: vf610: Add of_node_put() before goto 2019-07-25 14:21:44 +02:00
xway_nand.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00