u-boot/drivers/mtd/nand/raw
Marek Vasut 33672c970b mtd: rawnand: denali-spl: Add missing hardware init on SoCFPGA
On Altera SoCFPGA, upon either cold-boot or power-on reset, the
Denali NAND IP is initialized by the BootROM ; upon warm-reset,
the Denali NAND IP is NOT initialized by BootROM. In fact, upon
warm-reset, the SoCFPGA BootROM checks whether the SPL image in
on-chip RAM is valid and if so, completely skips re-loading the
SPL from the boot media.

This does sometimes lead to problems where the software left
the boot media in inconsistent state before warm-reset, and
because the BootROM does not reset the boot media, the boot
media is left in this inconsistent state, often until another
component attempts to access the boot media and fails with an
difficult to debug failure. To mitigate this problem, the SPL
on Altera SoCFPGA always resets all the IPs on the SoC early
on boot.

This results in a couple of register values, pre-programmed by
the BootROM, to be lost during this reset. To restore correct
operation of the IP on SoCFPGA, these values must be programmed
back into the controller by the driver. Note that on other SoCs
which do not use the HW-controlled bootstrap, more registers
may have to be programmed.

This also aligns the SPL behavior with the full Denali NAND
driver, which sets these values in denali_hw_init().

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2020-02-01 01:14:32 +09:00
..
brcmnand nand: brcmnand: add bcm68360 support 2020-01-23 07:29:58 -05:00
am335x_spl_bch.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
arasan_nfc.c mtd: nand: Remove hardcoded base address of nand 2020-01-14 09:05:52 +01:00
atmel_nand.c nand: atmel: Initialize pmecc smu with correct size 2018-10-22 09:18:49 -04:00
atmel_nand_ecc.h mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
davinci_nand.c nand: davinci: avoid out of bounds array access 2019-07-31 13:08:07 -04:00
denali.c mtd: denali: Drop custom dma mapping functions 2020-01-25 12:04:36 -05:00
denali.h mtd: rawnand: denali: add reset handling 2019-04-17 22:20:16 +02:00
denali_dt.c mtd: rawnand: denali: add reset handling 2019-04-17 22:20:16 +02:00
denali_spl.c mtd: rawnand: denali-spl: Add missing hardware init on SoCFPGA 2020-02-01 01:14:32 +09:00
fsl_elbc_nand.c common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
fsl_elbc_spl.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
fsl_ifc_nand.c common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
fsl_ifc_spl.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
fsl_upm.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
fsmc_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
kb9202_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
Kconfig nand: brcmnand: add bcm68360 support 2020-01-23 07:29:58 -05:00
kirkwood_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
kmeter1_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
lpc32xx_nand_mlc.c mtd: nand: lpc32xx mlc: predefine number of NAND chips to support 2018-11-16 13:34:36 -05:00
lpc32xx_nand_slc.c mtd: nand: lpc32xx slc: disable DMA support in SPL builds 2018-11-16 13:34:37 -05:00
Makefile drivers: nand: brcmnand: add initial support 2019-04-22 11:55:58 -04:00
mxc_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
mxc_nand.h mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
mxc_nand_spl.c common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
mxs_nand.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
mxs_nand_dt.c i.MX6: nand: add nandbcb command for imx 2019-07-19 14:51:25 +02:00
mxs_nand_spl.c i.MX6: nand: add nandbcb command for imx 2019-07-19 14:51:25 +02:00
nand.c mtd: rename CONFIG_MTD_DEVICE -> CONFIG_MTD 2019-12-03 23:04:10 -05:00
nand_base.c mtd: nand: raw: Fix CONFIG_SYS_NAND_DRIVER_ECC_LAYOUT behavior 2019-04-26 18:58:20 -04:00
nand_bbt.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_bch.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_ecc.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_ids.c mtd: nand: raw: Add Hynix H27UBG8T2BTR id table 2019-01-02 00:58:16 +05:30
nand_plat.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_spl_load.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_spl_loaders.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_spl_simple.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_timings.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
nand_util.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
omap_elm.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
omap_gpmc.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
pxa3xx_nand.c mtd: rawnand: pxa3xx: fix 2kiB pages with 8b strength chips layout 2018-11-22 11:38:13 +05:30
pxa3xx_nand.h mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
stm32_fmc2_nand.c mtd: rawnand: stm32_fmc2: avoid warnings when building with W=1 option 2019-07-12 11:50:57 +02:00
sunxi_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
sunxi_nand_spl.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
tegra_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
tegra_nand.h mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
vf610_nfc.c nand: vybrid: Extend the vf610 NFC NAND driver to support device tree (and DM) 2019-01-01 14:12:18 +01:00
zynq_nand.c zynq: mtd: nand: Remove hardcoded base addresses 2020-01-14 09:05:54 +01:00