[U-Boot] [PATCH v4 00/10] mx6: SPL NAND support

Tim Harvey
2014-06-02T23:13:17Z

This series adds some necessary framework for IMX6 SPL support. The series
includes support for NAND SPL and has been tested with MMC as well. I have
tested this on five differing Ventana baseboards with a variety of memory
(32bit 512MB, 32bit 1024MB, 64bit 1024MB) and CPU configurations (IMX6Q,
IMX6DL, IMX6S).

This is based on top of Mashahiro Yamada's patch that consolidates
arch/arm/include/asm/arch-*/spl.h [1]

v4:
- removed unnecessary parens from a return
- removed patch 1 as it has been merged upstream

v3:
- re-ordered calls in board_init_f
- replace imx_iomux_v3_setup_multiple_pads_array with additional intelligence
in imx_iomux_v3_setup_multiple_pads
- added ifdef's around cpu specific mmdc iocfg functions for code-reduction
with single-variant board configs
- added checks for IMX6D
- added Freescale copyright to boot device support function
- fixed typo s/IMX6SLD/IMX6SDL
- encorporated cleanups in mxs_nand_spl.c per feedback

v2:
- use compatible linker script instead of creating new one
- remove structure passing data from SPL to u-boot
- remove dependence on mtdpart, mtdcore, nand_util, nand_ecc, nand_base
and nand_bbt to bring SPL down in size. This reduced codesize by about 32k
where now mxs_spl_nand is about 12k total
- adjust CONFIG_SPL_TEXT_BASE, CONFIG_SPL_STACK and CONFIG_SPL_MAX_SIZE
to accomodate the IMX6SOLO/DUALLITE which have half the iRAM of the
IMX6DUAL/IMX6QUAD
- move boot dev detection into imx-common/spl.c
- move macros for using pinmux array into iomux-v3.h
- remove missing/unnecessary include
- revert mtdparts change
- use get_ram_size() to detect memory
- add support for MX6SOLO and MX6DUAL
- set CS0_END for 4GB so get_ram_size() works
- updated DDR3 calibration values for ventana boards
- fixed build issue - only compile spl if doing spl build
- fixed line length issue in README
- remove CONFIG_SPL* conditions and conditionally compile instead
- removed prints for CPU type and DRAM size/width - uboot will print these l
- removed unused gw_ventana_spl.cfg
- use common read_eeprom function
- added MMC support to SPL
- added Masahiro Yamada's boot mode consolidation patch
http://patchwork.ozlabs.org/patch/341817 and rebase on top of it

[1] http://patchwork.ozlabs.org/patch/341817/

Tim Harvey (10):
spl: nand: add support for mxs nand
mx6: add common SPL configuration
mx6: add boot device support for SPL
imx: add comments and remove unused struct fields
mx6: add structs for mmdc and ddr iomux registers
mx6: add mmdc configuration for MX6Q/MX6DL
imx: iomux: add macros to setup iomux for multiple SoC types
imx: ventana: split read_eeprom into standalone file
imx: ventana: auto-configure for IMX6Q vs IMX6DL
imx: ventana: switch to SPL

arch/arm/cpu/armv7/mx6/Makefile | 1 +
arch/arm/cpu/armv7/mx6/ddr.c | 490 +++++++++++++++++++++++
arch/arm/imx-common/Makefile | 1 +
arch/arm/imx-common/cpu.c | 16 +-
arch/arm/imx-common/iomux-v3.c | 16 +-
arch/arm/imx-common/spl.c | 81 ++++
arch/arm/include/asm/arch-mx6/mx6-ddr.h | 231 +++++++++++
arch/arm/include/asm/imx-common/iomux-v3.h | 25 ++
board/gateworks/gw_ventana/Makefile | 3 +-
board/gateworks/gw_ventana/README | 92 +++--
board/gateworks/gw_ventana/eeprom.c | 89 +++++
board/gateworks/gw_ventana/gw_ventana.c | 597 +++++++++++++++-------------
board/gateworks/gw_ventana/gw_ventana.cfg | 15 -
board/gateworks/gw_ventana/gw_ventana_spl.c | 419 +++++++++++++++++++
board/gateworks/gw_ventana/ventana_eeprom.h | 11 +
boards.cfg | 6 +-
drivers/mtd/nand/Makefile | 1 +
drivers/mtd/nand/mxs_nand_spl.c | 231 +++++++++++
include/configs/gw_ventana.h | 11 +
include/configs/imx6_spl.h | 71 ++++
20 files changed, 2065 insertions(+), 342 deletions(-)
create mode 100644 arch/arm/cpu/armv7/mx6/ddr.c
create mode 100644 arch/arm/imx-common/spl.c
create mode 100644 board/gateworks/gw_ventana/eeprom.c
create mode 100644 board/gateworks/gw_ventana/gw_ventana_spl.c
create mode 100644 drivers/mtd/nand/mxs_nand_spl.c
create mode 100644 include/configs/imx6_spl.h

--
1.8.3.2