u-boot/arch/arm/mach-imx
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
..
imx8 imx8: cpu: get temperature when print cpu desc 2019-06-11 10:43:00 +02:00
imx8m imx: i.MX8MQ: clear ocotp error bit 2019-04-25 19:16:24 +02:00
mx2 ARM: imx: Fix typo in select option for ZMX25 2019-04-25 19:16:24 +02:00
mx3 Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
mx5 CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
mx6 Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
mx7 Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
mx7ulp Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
mxs board/aries: Remove 2018-07-02 15:52:50 -04:00
cache.c CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
cmd_bmode.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cmd_dek.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cmd_hdmidet.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cmd_nandbcb.c i.MX6: nand: add nandbcb command for imx 2019-07-19 14:51:25 +02:00
cpu.c Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
ddrmc-vf610-calibration.c ddr: vybrid: Provide code to perform on-boot calibration 2019-02-15 12:16:50 +01:00
ddrmc-vf610-calibration.h ddr: vybrid: Provide code to perform on-boot calibration 2019-02-15 12:16:50 +01:00
ddrmc-vf610.c ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code 2019-02-15 12:16:50 +01:00
hab.c configs: Rename CONFIG_IMAGE_FORMAT_LEGACY to CONFIG_LEGACY_IMAGE_FORMAT 2019-07-11 14:11:18 -04:00
i2c-mxv7.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
imx_bootaux.c imx: rename mx8m,MX8M to imx8m,IMX8M 2019-01-01 14:12:18 +01:00
init.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
iomux-v3.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Kconfig i.MX6: nand: add nandbcb command for imx 2019-07-19 14:51:25 +02:00
lowlevel.S imx: add lowlevel init for ARM64 2019-04-25 19:16:24 +02:00
mac.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile i.MX6: nand: add nandbcb command for imx 2019-07-19 14:51:25 +02:00
misc.c imx: Fix potential lmb memory overwritten by stack 2019-01-28 20:35:47 +01:00
mkimage_fit_atf.sh imx: mkimage_fit_atf: introduce BL33_BASE_ADDR 2019-01-28 20:35:47 +01:00
mmc_env.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rdc-sema.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sata.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sip.c imx: sip: add call_imx_sip_ret2 2019-04-25 09:03:15 +02:00
speed.c Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
spl.c spl: Kconfig: Replace CONFIG_SPL_FAT_SUPPORT with CONFIG_SPL_FS_FAT 2019-02-01 09:12:48 -05:00
spl_sd.cfg SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
syscounter.c Merged imx8 architecture, fix build for imx8 + warnings 2018-10-25 10:16:21 -04:00
timer.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
video.c video: ipuv3: add DM_VIDEO support 2019-04-13 20:30:09 +02:00