mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 19:10:13 +00:00
1d43e24b94
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> |
||
---|---|---|
.. | ||
brcmnand | ||
am335x_spl_bch.c | ||
arasan_nfc.c | ||
atmel_nand.c | ||
atmel_nand_ecc.h | ||
davinci_nand.c | ||
denali.c | ||
denali.h | ||
denali_dt.c | ||
denali_spl.c | ||
fsl_elbc_nand.c | ||
fsl_elbc_spl.c | ||
fsl_ifc_nand.c | ||
fsl_ifc_spl.c | ||
fsl_upm.c | ||
fsmc_nand.c | ||
kb9202_nand.c | ||
Kconfig | ||
kirkwood_nand.c | ||
kmeter1_nand.c | ||
lpc32xx_nand_mlc.c | ||
lpc32xx_nand_slc.c | ||
Makefile | ||
mxc_nand.c | ||
mxc_nand.h | ||
mxc_nand_spl.c | ||
mxs_nand.c | ||
mxs_nand_dt.c | ||
mxs_nand_spl.c | ||
nand.c | ||
nand_base.c | ||
nand_bbt.c | ||
nand_bch.c | ||
nand_ecc.c | ||
nand_ids.c | ||
nand_plat.c | ||
nand_spl_load.c | ||
nand_spl_loaders.c | ||
nand_spl_simple.c | ||
nand_timings.c | ||
nand_util.c | ||
omap_elm.c | ||
omap_gpmc.c | ||
pxa3xx_nand.c | ||
pxa3xx_nand.h | ||
stm32_fmc2_nand.c | ||
sunxi_nand.c | ||
sunxi_nand_spl.c | ||
tegra_nand.c | ||
tegra_nand.h | ||
vf610_nfc.c | ||
zynq_nand.c |