u-boot-brain/drivers/mtd/nand/raw
Shyam Saini 1d43e24b94 i.MX6: nand: add nandbcb command for imx
Writing/updating boot image in nand device is not
straight forward in i.MX6 platform and it requires
boot control block(BCB) to be configured.

It becomes difficult to use uboot 'nand' command to
write BCB since it requires platform specific attributes
need to be taken care of.

It is even difficult to use existing msx-nand.c driver by
incorporating BCB attributes like mxs_dma_desc does
because it requires change in mtd and nand command.

So, cmd_nandbcb implemented in arch/arm/mach-imx

BCB contains two data structures, Firmware Configuration Block(FCB)
and Discovered Bad Block Table(DBBT). FCB has nand timings,
DBBT search area, page address of firmware.

On summary, nandbcb update will
- erase the entire partition
- create BCB by creating 2 FCB/DBBT block followed by
  1 FW block based on partition size and erasesize.
- fill FCB/DBBT structures
- write FW/SPL on FW1
- write FCB/DBBT in first 2 blocks

for nand boot, up on reset bootrom look for FCB structure in
first block's if FCB found the nand timings are loaded for
further reads. once FCB read done, DTTB will load and finally
firmware will be loaded which is boot image.

Refer section "NAND Boot" from doc/imx/common/imx6.txt for more usage
information.

Reviewed-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Sergey Kubushyn <ksi@koi8.net>
Signed-off-by: Shyam Saini <shyam.saini@amarulasolutions.com>
2019-07-19 14:51:25 +02:00
..
brcmnand drivers: nand: brcmnand: add an option to read the write-protect from device tree 2019-04-22 11:55:58 -04: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: arasan_nfc: Add support for nand multi chip select 2019-01-24 10:03:42 +01:00
atmel_nand_ecc.h mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
atmel_nand.c nand: atmel: Initialize pmecc smu with correct size 2018-10-22 09:18:49 -04:00
davinci_nand.c nand: davinci: remove dead code for dm644x 2019-05-04 13:04:07 -04:00
denali_dt.c mtd: rawnand: denali: add reset handling 2019-04-17 22:20:16 +02:00
denali_spl.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
denali.c mtd: rawnand: denali: fix a race condition when DMA is kicked 2018-12-29 11:38:37 +09:00
denali.h mtd: rawnand: denali: add reset handling 2019-04-17 22:20:16 +02:00
fsl_elbc_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
fsl_elbc_spl.c mpc83xx: Migrate CONFIG_SYS_{BR, OR}*_PRELIM to Kconfig 2019-05-21 07:52:33 +02:00
fsl_ifc_nand.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
fsl_ifc_spl.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
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 drivers: nand: brcmnand: add initial support 2019-04-22 11:55:58 -04: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_spl.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
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
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
mxs_nand.c i.MX6: nand: add nandbcb command for imx 2019-07-19 14:51:25 +02: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
nand.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_spl.c mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
sunxi_nand.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 mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30