u-boot/arch/arm/include/asm
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
..
arch-am33xx Add support for the MT41K128M16JT125K memory modules 2019-04-12 08:05:48 -04:00
arch-armada8k SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-armada100 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-armv7 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-aspeed watchdog: aspeed: restore default value of reset_mask 2018-10-22 09:18:49 -04:00
arch-bcm235xx SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-bcm281xx SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-bcmcygnus SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-bcmnsp SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-ep93xx SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-fsl-layerscape arm: ls1028a: define the integrated PCI bus (ECAM) 2019-06-19 12:54:57 +05:30
arch-hi3798cv200 poplar: clean up board level mmc initialization code 2019-01-25 12:12:57 -05:00
arch-hi6220 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-imx imx: drop imx-regs.h 2019-06-11 10:43:00 +02:00
arch-imx8 imx: define ARCH_MXC for i.MX8/8M/7ULP 2019-06-11 10:43:00 +02:00
arch-imx8m imx: define ARCH_MXC for i.MX8/8M/7ULP 2019-06-11 10:43:00 +02:00
arch-lpc32xx Convert CONFIG_FLASH_CFI_DRIVER et al to Kconfig 2018-10-19 19:19:50 -04:00
arch-ls102xa armv7: ls102xa: Add workaround for DDR erratum A-008850 2019-03-15 11:52:01 +05:30
arch-mediatek reset: MedaiTek: add reset controller driver for MediaTek SoCs 2019-01-14 17:43:18 -05:00
arch-meson ARM: meson: add unique MAC address generation 2019-07-04 16:04:59 +02:00
arch-mvebu km/spi: remove deprecated SPI flash driver code for KM Kirkwood boards 2019-07-11 10:58:03 +02:00
arch-mx5 arm: mx5: Add LDB clock config code 2018-10-16 10:34:02 +02:00
arch-mx6 imx: imx6ull: fix pinmux input_val for uart5 rx pin 2018-09-14 15:22:52 +02:00
arch-mx7 pico-imx7d: Correct uart clock root 2019-06-11 10:42:48 +02:00
arch-mx7ulp imx: define ARCH_MXC for i.MX8/8M/7ULP 2019-06-11 10:43:00 +02:00
arch-mx25 watchdog: mx25: use the imx_watchdog driver for mx25 2018-09-04 08:47:23 +02:00
arch-mx27 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-mx31 mx31: Convert MX31_HCLK_FREQ and MX31_CLK32 to Kconfig. 2018-05-17 12:02:28 +02:00
arch-mx35 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-mxs SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-omap3 i2c: omap24xx_i2c: Move away from SoC specific headers for reg offset 2018-12-10 06:09:34 +01:00
arch-omap4 i2c: omap24xx_i2c: Move away from SoC specific headers for reg offset 2018-12-10 06:09:34 +01:00
arch-omap5 i2c: omap24xx_i2c: Move away from SoC specific headers for reg offset 2018-12-10 06:09:34 +01:00
arch-orion5x SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-owl clk: Add Actions Semi OWL clock support 2018-07-09 15:25:31 -04:00
arch-pxa SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-rk322x rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3036 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3128 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3188 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3288 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3328 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3368 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3399 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rockchip rockchip: pinctrl: rk3399: Add support for UART3. 2019-05-30 18:22:35 +08:00
arch-rv1108 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-s32v234 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-sa1100 Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
arch-spear arm: spear: fix enabling of SSP2 clock 2018-09-25 21:49:18 -04:00
arch-stih410 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-stm32 gpio: stm32f7: Move STM32_GPIOS_PER_BANK into gpio.h 2018-12-07 08:13:47 -05:00
arch-stm32f4 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-stm32f7 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-stm32h7 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-stv0991 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-sunxi sunxi: H6: Add DDR3 support to DRAM controller driver 2019-07-16 17:09:41 +05:30
arch-tegra ARM: tegra: Implement cboot_get_ethaddr() 2019-06-05 09:16:34 -07:00
arch-tegra20 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra30 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra114 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra124 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra186 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-tegra210 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-vf610 arm: vf610: add uart2 clock/pinmux support 2019-04-13 20:30:09 +02:00
armv8 Use _AC and UL macros from linux/const.h 2018-11-20 13:08:15 +01:00
iproc-common SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
kona-common SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-imx i.MX6: nand: add nandbcb command for imx 2019-07-19 14:51:25 +02:00
proc-armv ARM: correct detection of thumb mode 2019-07-18 11:31:24 -04:00
ti-common driver: net: ti: keystone_net: switch to use common mdio lib 2018-11-05 10:42:01 -06:00
armv7.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
armv7_mpu.h arm: v7R: Add support for MPU 2018-05-07 15:53:29 -04:00
armv7m.h arm: armv7m: clean up armv7m unified code compilation 2018-09-10 21:19:33 -04:00
assembler.h arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
atomic.h ARM: use asm-generic/atomic.h 2018-09-25 21:49:18 -04:00
barriers.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bitops.h arm/arm64: bitops: fix find_next_zero_bit to be compat with arm64 2018-07-19 16:31:36 -04:00
boot0-linux-kernel-header.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootm.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
byteorder.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
cache.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
config.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
davinci_rtc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma-mapping.h arm: Round the dma_alloc_coherent memory size to cache line aligned 2019-01-09 07:13:31 -05:00
ehci-omap.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
emif.h cmd: ti: Generalize cmd_ddr3 command 2018-01-19 15:49:26 -05:00
fsl_secure_boot.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gic.h arm64 patch: gicv3 support 2014-04-08 00:15:12 +02:00
global_data.h Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
gpio.h rockchip: arm: use 'arch-rockchip' for common header 2019-05-01 00:00:05 +02:00
hardware.h Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
io.h arm: asm: io.h: define readX_relaxed and writeX_relaxed 2019-04-22 11:55:58 -04:00
linkage.h arm: adapt asm/linkage.h from Linux 2012-05-15 08:31:26 +02:00
mach-types.h mcx: remove board 2019-05-28 13:58:06 -04:00
macro.h ARMv8: Enable all asynchronous abort exceptions taken to EL3 2018-11-16 13:34:33 -05:00
memory.h Various, accumulated typos collected from around the tree. 2016-10-06 20:57:40 -04:00
omap_common.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
omap_gpio.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
omap_i2c.h arm: omap_i2c: Remove unwanted header file inclusion 2019-07-17 11:12:54 -04:00
omap_mmc.h mmc: omap_mmc: Remove invert references 2018-09-29 08:06:56 -04:00
omap_musb.h usb: musb-new: Add support for DM_USB 2018-12-14 17:59:10 +01:00
omap_sec_common.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
opcodes-sec.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
opcodes-virt.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
opcodes.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pl310.h ARM: pl310: Add macro's for handling tag and data latency mask 2019-05-05 08:48:50 -04:00
posix_types.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
processor.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
psci.h psci: arm: remove armv7 function psci_save_target_pc 2018-05-07 11:52:55 -04:00
ptrace.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
sections.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
secure.h ARMv8: Allow SiP service extensions on top of PSCI code 2019-04-22 18:13:21 -04:00
setjmp.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
setup.h Various, accumulated typos collected from around the tree. 2016-10-06 20:57:40 -04:00
spin_table.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
spl.h arm: K3: am654: Add support for boot device detection 2018-09-11 08:32:55 -04:00
string.h ARM: revive CONFIG_USE_ARCH_MEMCPY/MEMSET for UniPhier and Tegra 2016-12-27 11:24:15 -05:00
system.h ARMv8: Enable all asynchronous abort exceptions taken to EL3 2018-11-16 13:34:33 -05:00
types.h arch: types.h: factor out fixed width typedefs to int-ll64.h 2018-09-10 20:48:16 -04:00
u-boot-arm.h arm: remove duplicated prototypes in u-boot.arm.h 2018-10-10 13:35:10 -04:00
u-boot.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
unaligned.h arm64: core support 2014-01-09 16:08:44 +01:00
unified.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
utils.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00