Merge tag 'u-boot-imx-20191009' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
authorTom Rini <trini@konsulko.com>
Wed, 9 Oct 2019 13:35:43 +0000 (09:35 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 9 Oct 2019 15:44:45 +0000 (11:44 -0400)
u-boot-imx-20191009
-------------------

Travis : https://travis-ci.org/sbabic/u-boot-imx/builds/595148532

- MX6UL / ULZ
- Toradex board
- Allow to set OCRAM for MX6Q/D
- MX7ULP
- MX8: (container image, imx8mq_mek), SCU API
- fix several board booting from SD/EMMC (cubox-i for example)
- pico boards

[trini: display5 merged manually]
Signed-off-by: Tom Rini <trini@konsulko.com>
1  2 
Makefile
arch/arm/Kconfig
arch/arm/dts/Makefile
common/spl/Kconfig
configs/display5_defconfig
configs/display5_factory_defconfig
include/configs/display5.h
include/spl.h
scripts/config_whitelist.txt

diff --combined Makefile
index 3593039303180d6b1371c9e86966f5615732a6e3,80b7811f7be8caa2b7fa68bb54be0fc906166313..842bc6c11b6b7191452a3031ef4c23200bc1afc2
+++ b/Makefile
@@@ -337,18 -337,14 +337,18 @@@ endi
  #  KBUILD_MODULES := 1
  #endif
  
 +# Check ths size of a binary:
 +# Args:
 +#   $1: File to check
 +#   #2: Size limit in bytes (decimal or 0xhex)
  define size_check
        actual=$$( wc -c $1 | awk '{print $$1}'); \
        limit=$$( printf "%d" $2 ); \
        if test $$actual -gt $$limit; then \
                echo "$1 exceeds file size limit:" >&2; \
 -              echo "  limit:  $$limit bytes" >&2; \
 -              echo "  actual: $$actual bytes" >&2; \
 -              echo "  excess: $$((actual - limit)) bytes" >&2; \
 +              echo "  limit:  $$(printf %#x bytes $$limit) bytes" >&2; \
 +              echo "  actual: $$(printf %#x $$actual) bytes" >&2; \
 +              echo "  excess: $$(printf %#x $$((actual - limit))) bytes" >&2;\
                exit 1; \
        fi
  endef
@@@ -834,10 -830,10 +834,10 @@@ ALL-$(CONFIG_RAMBOOT_PBL) += u-boot.pb
  endif
  endif
  ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin
- ifeq ($(CONFIG_MX6)$(CONFIG_SECURE_BOOT), yy)
+ ifeq ($(CONFIG_MX6)$(CONFIG_IMX_HAB), yy)
  ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot-ivt.img
  else
- ifeq ($(CONFIG_MX7)$(CONFIG_SECURE_BOOT), yy)
+ ifeq ($(CONFIG_MX7)$(CONFIG_IMX_HAB), yy)
  ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot-ivt.img
  else
  ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img
@@@ -1217,9 -1213,7 +1217,9 @@@ u-boot.ldr:     u-boo
  # Use 'make BINMAN_DEBUG=1' to enable debugging
  quiet_cmd_binman = BINMAN  $@
  cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
 -                build -u -d u-boot.dtb -O . -m \
 +                --toolpath $(objtree)/tools \
 +              $(if $(BINMAN_VERBOSE),-v$(BINMAN_VERBOSE)) \
 +              build -u -d u-boot.dtb -O . -m \
                -I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \
                $(BINMAN_$(@F))
  
@@@ -1371,9 -1365,17 +1371,17 @@@ SPL: spl/u-boot-spl.bin FORC
        $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
  
  ifeq ($(CONFIG_ARCH_IMX8M)$(CONFIG_ARCH_IMX8), y)
+ ifeq ($(CONFIG_SPL_LOAD_IMX_CONTAINER), y)
+ u-boot.cnt: u-boot.bin FORCE
+       $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
+ flash.bin: spl/u-boot-spl.bin u-boot.cnt FORCE
+       $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
+ else
  flash.bin: spl/u-boot-spl.bin u-boot.itb FORCE
        $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
  endif
+ endif
  
  u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL u-boot.bin FORCE
        $(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
diff --combined arch/arm/Kconfig
index 7086db368fb6e7a6e553950b853fe5bba13080b1,c219a53be82346f5909a6988e09dafecc87c6b09..384e382e246c51510919422bfb51bcc77821f6d7
@@@ -812,7 -812,7 +812,7 @@@ config ARCH_MX
        select ARCH_MISC_INIT
        select BOARD_EARLY_INIT_F
        select CPU_V7A
-       select SYS_FSL_HAS_SEC if SECURE_BOOT
+       select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        imply MXC_GPIO
  config ARCH_MX6
        bool "Freescale MX6"
        select CPU_V7A
-       select SYS_FSL_HAS_SEC if SECURE_BOOT
+       select SYS_FSL_HAS_SEC if IMX_HAB
        select SYS_FSL_SEC_COMPAT_4
        select SYS_FSL_SEC_LE
        select SYS_THUMB_BUILD if SPL
@@@ -954,7 -954,7 +954,7 @@@ config ARCH_SUNX
        select USB if DISTRO_DEFAULTS
        select USB_KEYBOARD if DISTRO_DEFAULTS
        select USB_STORAGE if DISTRO_DEFAULTS
 -      select USE_TINY_PRINTF
 +      select SPL_USE_TINY_PRINTF
        imply CMD_DM
        imply CMD_GPT
        imply CMD_UBI if NAND
diff --combined arch/arm/dts/Makefile
index 6ea09ffd3bf84f9cbab8919fe48b502e71408cc8,2c86b293a8008165d3c3e70f7cfb3375c5b03556..73d47f5ac46467f504ee1234d787c3c4e98e6704
@@@ -552,33 -552,44 +552,44 @@@ dtb-$(CONFIG_MX53) += imx53-cx9020.dtb 
        imx53-kp.dtb \
        imx53-m53menlo.dtb
  
- dtb-$(CONFIG_MX6Q) += \
-       imx6-apalis.dtb \
-       imx6q-display5.dtb \
-       imx6q-logicpd.dtb \
-       imx6q-novena.dtb \
-       imx6q-tbs2910.dtb
- dtb-$(CONFIG_MX6QDL) += \
+ ifneq ($(CONFIG_MX6DL)$(CONFIG_MX6QDL)$(CONFIG_MX6S),)
+ dtb-y += \
        imx6dl-dhcom-pdk2.dtb \
        imx6dl-icore.dtb \
        imx6dl-icore-mipi.dtb \
        imx6dl-icore-rqs.dtb \
        imx6dl-mamoj.dtb \
+       imx6dl-nitrogen6x.dtb \
+       imx6dl-pico.dtb \
        imx6dl-sabreauto.dtb \
        imx6dl-sabresd.dtb \
        imx6dl-wandboard-revb1.dtb \
+ endif
+ ifneq ($(CONFIG_MX6Q)$(CONFIG_MX6QDL),)
+ dtb-y += \
+       imx6-apalis.dtb \
        imx6q-cm-fx6.dtb \
        imx6q-dhcom-pdk2.dtb \
+       imx6q-display5.dtb \
        imx6q-icore.dtb \
        imx6q-icore-mipi.dtb \
        imx6q-icore-rqs.dtb \
+       imx6q-logicpd.dtb \
+       imx6q-nitrogen6x.dtb \
+       imx6q-novena.dtb \
+       imx6q-pico.dtb \
        imx6q-sabreauto.dtb \
+       imx6q-sabrelite.dtb \
        imx6q-sabresd.dtb \
+       imx6q-tbs2910.dtb \
        imx6q-wandboard-revb1.dtb \
        imx6qp-sabreauto.dtb \
        imx6qp-sabresd.dtb \
-       imx6qp-wandboard-revd1.dtb
+       imx6qp-wandboard-revd1.dtb \
+ endif
  
  dtb-$(CONFIG_MX6SL) += imx6sl-evk.dtb
  
@@@ -606,7 -617,8 +617,8 @@@ dtb-$(CONFIG_MX6ULL) += 
        imx6ull-14x14-evk.dtb \
        imx6ull-colibri.dtb \
        imx6ull-phycore-segin.dtb \
-       imx6ull-dart-6ul.dtb
+       imx6ull-dart-6ul.dtb \
+       imx6ulz-14x14-evk.dtb
  
  dtb-$(CONFIG_ARCH_MX6) += \
        imx6-apalis.dtb \
@@@ -629,7 -641,8 +641,8 @@@ dtb-$(CONFIG_ARCH_IMX8) += 
        fsl-imx8qxp-colibri.dtb \
        fsl-imx8qxp-mek.dtb
  
- dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
+ dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb \
+       imx8mm-evk.dtb
  
  dtb-$(CONFIG_RCAR_GEN2) += \
        r8a7790-lager-u-boot.dtb \
@@@ -691,8 -704,6 +704,8 @@@ dtb-$(CONFIG_TARGET_AT91SAM9X5EK) += 
        at91sam9x25ek.dtb       \
        at91sam9x35ek.dtb
  
 +dtb-$(CONFIG_TARGET_SAM9X60EK) += sam9x60ek.dtb
 +
  dtb-$(CONFIG_TARGET_AT91SAM9N12EK) += at91sam9n12ek.dtb
  
  dtb-$(CONFIG_TARGET_GARDENA_SMART_GATEWAY_AT91SAM) += \
@@@ -729,9 -740,6 +742,9 @@@ dtb-$(CONFIG_TARGET_SAMA5D2_XPLAINED) +
  dtb-$(CONFIG_TARGET_SAMA5D27_SOM1_EK) += \
        at91-sama5d27_som1_ek.dtb
  
 +dtb-$(CONFIG_TARGET_SAMA5D27_WLSOM1_EK) += \
 +      at91-sama5d27_wlsom1_ek.dtb
 +
  dtb-$(CONFIG_TARGET_SAMA5D2_ICP) += \
        at91-sama5d2_icp.dtb
  
diff --combined common/spl/Kconfig
index ef4fb19e52c995620506f873d66fec8e0dabc75c,f59b6f5b51f41b80073ab72ac5ebf847983651f3..57d06ccece5952126b5ffea348a3cc23f373a3c2
@@@ -26,9 -26,10 +26,10 @@@ config SPL_FRAMEWOR
          and the Linux Kernel.  If unsure, say Y.
  
  config SPL_SIZE_LIMIT
 -      int "Maximum size of SPL image"
 +      hex "Maximum size of SPL image"
        depends on SPL
-       default 69632 if ARCH_MX6
+       default 69632 if ARCH_MX6 && !MX6_OCRAM_256KB
+       default 200704 if ARCH_MX6 && MX6_OCRAM_256KB
        default 0
        help
          Specifies the maximum length of the U-Boot SPL image.
@@@ -115,7 -116,7 +116,7 @@@ if SP
  
  config SPL_HANDOFF
        bool "Pass hand-off information from SPL to U-Boot proper"
 -      depends on HANDOFF
 +      depends on HANDOFF && SPL_BLOBLIST
        default y
        help
          This option enables SPL to write handoff information. This can be
@@@ -607,6 -608,15 +608,15 @@@ config SPL_MMC_SUPPOR
          this option to build the drivers in drivers/mmc as part of an SPL
          build.
  
+ config SPL_FORCE_MMC_BOOT
+       bool "Force SPL booting from MMC"
+       depends on SPL_MMC_SUPPORT
+       default n
+       help
+         Force SPL to use MMC device for Linux kernel booting even when the
+         SoC ROM recognized boot medium is not eMMC/SD. This is crucial for
+         factory or 'falcon mode' booting.
  config SPL_MMC_TINY
        bool "Tiny MMC framework in SPL"
        depends on SPL_MMC_SUPPORT
@@@ -963,7 -973,7 +973,7 @@@ config SPL_SERIAL_SUPPOR
          for displaying messages while SPL is running. It also brings in
          printf() and panic() functions. This should normally be enabled
          unless there are space reasons not to. Even then, consider
 -        enabling USE_TINY_PRINTF which is a small printf() version.
 +        enabling SPL_USE_TINY_PRINTF which is a small printf() version.
  
  config SPL_SPI_FLASH_SUPPORT
        bool "Support SPI flash drivers"
@@@ -1185,7 -1195,7 +1195,7 @@@ if TP
  
  config TPL_HANDOFF
        bool "Pass hand-off information from TPL to SPL and U-Boot proper"
 -      depends on HANDOFF
 +      depends on HANDOFF && TPL_BLOBLIST
        default y
        help
          This option enables TPL to write handoff information. This can be
index fdabd31c90a6be5422b7ae16d40db2777d5c00a0,46bcdaffc835a3d9d8d9bb376285a652bcbbc1b9..3227249413e43b490db8cb512370c563c33d5f6f
@@@ -46,13 -46,17 +46,17 @@@ CONFIG_CMD_GPT=
  CONFIG_CMD_I2C=y
  CONFIG_CMD_MMC=y
  CONFIG_CMD_PART=y
+ # CONFIG_CMD_PINMUX is not set
  CONFIG_CMD_SF=y
  CONFIG_CMD_SPI=y
+ CONFIG_CMD_WDT=y
  CONFIG_CMD_DHCP=y
  CONFIG_CMD_MII=y
  CONFIG_CMD_PING=y
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_TIME=y
+ CONFIG_CMD_PMIC=y
+ CONFIG_CMD_REGULATOR=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_EXT4=y
  CONFIG_CMD_FAT=y
@@@ -66,21 -70,45 +70,46 @@@ CONFIG_DEFAULT_DEVICE_TREE="imx6q-displ
  CONFIG_ENV_IS_IN_SPI_FLASH=y
  CONFIG_BOOTCOUNT_LIMIT=y
  CONFIG_BOOTCOUNT_BOOTLIMIT=3
+ CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
+ CONFIG_I2C_DEFAULT_BUS_NUMBER=0x2
+ CONFIG_SYS_I2C_MXC=y
+ CONFIG_SYS_I2C_MXC_I2C1=y
+ CONFIG_SYS_I2C_MXC_I2C2=y
+ CONFIG_SYS_I2C_MXC_I2C3=y
+ CONFIG_MISC=y
+ CONFIG_I2C_EEPROM=y
+ CONFIG_SYS_I2C_EEPROM_ADDR=0x50
+ CONFIG_SYS_I2C_EEPROM_BUS=2
+ CONFIG_SYS_EEPROM_SIZE=32768
+ CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=5
+ CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
  CONFIG_SUPPORT_EMMC_BOOT=y
  CONFIG_FSL_USDHC=y
  CONFIG_MTD_DEVICE=y
+ CONFIG_DM_SPI_FLASH=y
  CONFIG_SPI_FLASH=y
  CONFIG_SF_DEFAULT_BUS=1
  CONFIG_SF_DEFAULT_MODE=0
  CONFIG_SF_DEFAULT_SPEED=50000000
+ CONFIG_SPI_FLASH_SFDP_SUPPORT=y
  CONFIG_SPI_FLASH_SPANSION=y
  CONFIG_SPI_FLASH_STMICRO=y
+ CONFIG_SPI_FLASH_MTD=y
  CONFIG_PHYLIB=y
  CONFIG_PHY_MARVELL=y
  CONFIG_FEC_MXC=y
  CONFIG_MII=y
+ CONFIG_PINCTRL=y
+ CONFIG_PINCTRL_IMX6=y
+ CONFIG_DM_PMIC=y
+ CONFIG_DM_PMIC_PFUZE100=y
+ CONFIG_DM_REGULATOR=y
+ CONFIG_DM_REGULATOR_PFUZE100=y
  CONFIG_MXC_UART=y
  CONFIG_SPI=y
  CONFIG_MXC_SPI=y
 +CONFIG_WATCHDOG_TIMEOUT_MSECS=15000
+ CONFIG_SYSRESET=y
+ CONFIG_SYSRESET_WATCHDOG=y
+ CONFIG_I2C_EDID=y
  CONFIG_IMX_WATCHDOG=y
index d403ad9480778e225b7e08e6dc2e4097befef94b,c515d14a80eae91464fa5d7f9e87995906b3974a..a41a6329cb8cf772299fd97ccb82cee83f77cf8b
@@@ -4,14 -4,19 +4,19 @@@ CONFIG_SYS_TEXT_BASE=0x1780000
  CONFIG_SPL_GPIO_SUPPORT=y
  CONFIG_SPL_LIBCOMMON_SUPPORT=y
  CONFIG_SPL_LIBGENERIC_SUPPORT=y
+ CONFIG_SYS_MALLOC_F_LEN=0x1000
+ CONFIG_MX6_DDRCAL=y
  CONFIG_TARGET_DISPLAY5=y
+ CONFIG_SPL_MMC_SUPPORT=y
  CONFIG_SPL_SERIAL_SUPPORT=y
+ CONFIG_SPL_SYS_MALLOC_F_LEN=0x400
  CONFIG_NR_DRAM_BANKS=1
  CONFIG_SPL=y
  CONFIG_SPL_SPI_FLASH_SUPPORT=y
  CONFIG_SPL_SPI_SUPPORT=y
  CONFIG_SPL_TEXT_BASE=0x00908000
  CONFIG_FIT=y
+ CONFIG_SPL_LOAD_FIT=y
  CONFIG_OF_BOARD_SETUP=y
  CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6Q"
  CONFIG_BOOTDELAY=3
@@@ -47,11 -52,14 +52,14 @@@ CONFIG_CMD_PART=
  CONFIG_CMD_SF=y
  CONFIG_CMD_SPI=y
  CONFIG_CMD_USB_SDP=y
+ CONFIG_CMD_WDT=y
  CONFIG_CMD_DHCP=y
  CONFIG_CMD_MII=y
  CONFIG_CMD_PING=y
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_TIME=y
+ CONFIG_CMD_PMIC=y
+ CONFIG_CMD_REGULATOR=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_EXT4=y
  CONFIG_CMD_EXT4_WRITE=y
@@@ -62,31 -70,57 +70,58 @@@ CONFIG_MTDIDS_DEFAULT="nor0=02008000.sp
  CONFIG_MTDPARTS_DEFAULT="mtdparts=02008000.spi.1:128k(SPL),1m(u-boot),64k(env1),64k(env2),4m(swu-kernel),16m(swu-initramfs),1m(factory),-(reserved)"
  # CONFIG_SPL_EFI_PARTITION is not set
  CONFIG_PARTITION_TYPE_GUID=y
+ CONFIG_OF_CONTROL=y
+ CONFIG_DEFAULT_DEVICE_TREE="imx6q-display5"
  CONFIG_ENV_IS_IN_SPI_FLASH=y
  CONFIG_DFU_MMC=y
  CONFIG_DFU_SF=y
+ CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
+ CONFIG_I2C_DEFAULT_BUS_NUMBER=0x2
+ CONFIG_SYS_I2C_MXC=y
+ CONFIG_SYS_I2C_MXC_I2C1=y
+ CONFIG_SYS_I2C_MXC_I2C2=y
+ CONFIG_SYS_I2C_MXC_I2C3=y
+ CONFIG_MISC=y
+ CONFIG_I2C_EEPROM=y
+ CONFIG_SYS_I2C_EEPROM_ADDR=0x50
+ CONFIG_SYS_I2C_EEPROM_BUS=2
+ CONFIG_SYS_EEPROM_SIZE=32768
+ CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=5
+ CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
  CONFIG_SUPPORT_EMMC_BOOT=y
  CONFIG_FSL_USDHC=y
  CONFIG_MTD_DEVICE=y
+ CONFIG_DM_SPI_FLASH=y
  CONFIG_SPI_FLASH=y
  CONFIG_SF_DEFAULT_BUS=1
  CONFIG_SF_DEFAULT_MODE=0
  CONFIG_SF_DEFAULT_SPEED=50000000
+ CONFIG_SPI_FLASH_SFDP_SUPPORT=y
  CONFIG_SPI_FLASH_SPANSION=y
  CONFIG_SPI_FLASH_STMICRO=y
+ CONFIG_SPI_FLASH_MTD=y
  CONFIG_PHYLIB=y
+ CONFIG_PHY_MARVELL=y
  CONFIG_FEC_MXC=y
  CONFIG_MII=y
+ CONFIG_DM_PMIC=y
+ CONFIG_DM_PMIC_PFUZE100=y
+ CONFIG_DM_REGULATOR=y
+ CONFIG_DM_REGULATOR_PFUZE100=y
  CONFIG_MXC_UART=y
  CONFIG_SPI=y
  CONFIG_MXC_SPI=y
+ CONFIG_SYSRESET=y
+ CONFIG_SYSRESET_WATCHDOG=y
  CONFIG_USB=y
+ CONFIG_DM_USB=y
  CONFIG_USB_GADGET=y
  CONFIG_USB_GADGET_MANUFACTURER="Liebherr"
- CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
- CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
+ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
+ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
  CONFIG_CI_UDC=y
  CONFIG_USB_GADGET_DOWNLOAD=y
 +CONFIG_WATCHDOG_TIMEOUT_MSECS=15000
+ CONFIG_I2C_EDID=y
  CONFIG_IMX_WATCHDOG=y
- CONFIG_OF_LIBFDT=y
+ CONFIG_PANIC_HANG=y
index 182399a390f166af39f838a94e68f7b0817bbb35,de11ff61c66121514c3115da33975f9599f916fb..d80641568eb44c8294cbc7713762c984b9305574
   * 0x1540000 - 0x1640000 : SPI.factory  (1MiB)
   */
  
- #ifndef CONFIG_SPL_BUILD
- #define CONFIG_SPI_FLASH_MTD
+ /* SPI Flash Configs */
+ #if defined(CONFIG_SPL_BUILD)
+ #undef CONFIG_DM_SPI
+ #undef CONFIG_DM_SPI_FLASH
+ #undef CONFIG_SPI_FLASH_MTD
  #endif
  
  /* Below values are "dummy" - only to avoid build break */
  #define CONFIG_MXC_UART_BASE          UART5_BASE
  
  /* I2C Configs */
- #define CONFIG_SYS_I2C
- #define CONFIG_SYS_I2C_MXC
- #define CONFIG_SYS_I2C_MXC_I2C1
- #define CONFIG_SYS_I2C_MXC_I2C2
- #define CONFIG_SYS_I2C_MXC_I2C3
  #define CONFIG_I2C_MULTI_BUS
- #define CONFIG_SYS_I2C_SPEED          100000
- #define CONFIG_I2C_EDID
- #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN  2
- /* Ethernet */
- #ifdef CONFIG_FEC_MXC
- #define IMX_FEC_BASE                  ENET_BASE_ADDR
- #define CONFIG_FEC_XCV_TYPE           RGMII
- #define CONFIG_ETHPRIME                       "FEC"
- #define CONFIG_FEC_MXC_PHYADDR                0
- #endif
  
  /* MMC Configs */
  #define CONFIG_SYS_FSL_ESDHC_ADDR     0
        (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
  
  /* Watchdog */
 -#define CONFIG_WATCHDOG_TIMEOUT_MSECS   15000
+ #if defined(CONFIG_SPL_BUILD)
+ #undef CONFIG_WDT
+ #undef CONFIG_WATCHDOG
+ #define CONFIG_HW_WATCHDOG
+ #endif
 +
  /* ENV config */
  #ifdef CONFIG_ENV_IS_IN_SPI_FLASH
  #define CONFIG_ENV_SIZE               (SZ_64K)
diff --combined include/spl.h
index c7cc2b0767cfcb18a76a49b5bd65eabedf2ef155,f9c674d33bfd77240ed8005317cc6818b6188af1..4359636d87bc219465208a33b4ac2062f4be92ff
@@@ -49,72 -49,6 +49,72 @@@ static inline bool u_boot_first_phase(v
        return false;
  }
  
 +enum u_boot_phase {
 +      PHASE_TPL,      /* Running in TPL */
 +      PHASE_SPL,      /* Running in SPL */
 +      PHASE_BOARD_F,  /* Running in U-Boot before relocation */
 +      PHASE_BOARD_R,  /* Running in U-Boot after relocation */
 +};
 +
 +/**
 + * spl_phase() - Find out the phase of U-Boot
 + *
 + * This can be used to avoid #ifdef logic and use if() instead.
 + *
 + * For example, to include code only in TPL, you might do:
 + *
 + *    #ifdef CONFIG_TPL_BUILD
 + *    ...
 + *    #endif
 + *
 + * but with this you can use:
 + *
 + *    if (spl_phase() == PHASE_TPL) {
 + *       ...
 + *    }
 + *
 + * To include code only in SPL, you might do:
 + *
 + *    #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD)
 + *    ...
 + *    #endif
 + *
 + * but with this you can use:
 + *
 + *    if (spl_phase() == PHASE_SPL) {
 + *       ...
 + *    }
 + *
 + * To include code only in U-Boot proper, you might do:
 + *
 + *    #ifndef CONFIG_SPL_BUILD
 + *    ...
 + *    #endif
 + *
 + * but with this you can use:
 + *
 + *    if (spl_phase() == PHASE_BOARD_F) {
 + *       ...
 + *    }
 + *
 + * @return U-Boot phase
 + */
 +static inline enum u_boot_phase spl_phase(void)
 +{
 +#ifdef CONFIG_TPL_BUILD
 +      return PHASE_TPL;
 +#elif CONFIG_SPL_BUILD
 +      return PHASE_SPL;
 +#else
 +      DECLARE_GLOBAL_DATA_PTR;
 +
 +      if (!(gd->flags & GD_FLG_RELOC))
 +              return PHASE_BOARD_F;
 +      else
 +              return PHASE_BOARD_R;
 +#endif
 +}
 +
  /* A string name for SPL or TPL */
  #ifdef CONFIG_SPL_BUILD
  # ifdef CONFIG_TPL_BUILD
@@@ -200,6 -134,18 +200,18 @@@ int spl_load_simple_fit(struct spl_imag
  #define SPL_COPY_PAYLOAD_ONLY 1
  #define SPL_FIT_FOUND         2
  
+ /**
+  * spl_load_imx_container() - Loads a imx container image from a device.
+  * @spl_image:        Image description to set up
+  * @info:     Structure containing the information required to load data.
+  * @sector:   Sector number where container image is located in the device
+  *
+  * Reads the container image @sector in the device. Loads u-boot image to
+  * specified load address.
+  */
+ int spl_load_imx_container(struct spl_image_info *spl_image,
+                          struct spl_load_info *info, ulong sector);
  /* SPL common functions */
  void preloader_console_init(void);
  u32 spl_boot_device(void);
@@@ -453,7 -399,8 +465,8 @@@ void spl_invoke_opensbi(struct spl_imag
   * stage wants to return to the ROM code to continue booting, boards
   * can implement 'board_return_to_bootrom'.
   */
- void board_return_to_bootrom(void);
+ int board_return_to_bootrom(struct spl_image_info *spl_image,
+                           struct spl_boot_device *bootdev);
  
  /**
   * board_spl_fit_post_load - allow process images after loading finished
index a1bf63c1f498cab1a3ed3f51f177004873349a43,c7b02451e0cb648b317cda8dfb196d303a307d4a..19209544a4aa7956dd8a5ed9429d18134cad2968
@@@ -266,7 -266,6 +266,6 @@@ CONFIG_CPU_VR41X
  CONFIG_CQSPI_REF_CLK
  CONFIG_CS8900_BUS16
  CONFIG_CS8900_BUS32
- CONFIG_CSF_SIZE
  CONFIG_CTL_JTAG
  CONFIG_CTL_TBE
  CONFIG_CUSTOMER_BOARD_SUPPORT
@@@ -1721,6 -1720,7 +1720,6 @@@ CONFIG_SPL_NAND_MINIMA
  CONFIG_SPL_NAND_RAW_ONLY
  CONFIG_SPL_NAND_SOFTECC
  CONFIG_SPL_NAND_WORKSPACE
 -CONFIG_SPL_NO_CPU_SUPPORT_CODE
  CONFIG_SPL_PAD_TO
  CONFIG_SPL_PANIC_ON_RAW_IMAGE
  CONFIG_SPL_PBL_PAD
@@@ -4339,6 -4339,7 +4338,6 @@@ CONFIG_WATCHDOG_NOWAYOU
  CONFIG_WATCHDOG_PRESC
  CONFIG_WATCHDOG_RC
  CONFIG_WATCHDOG_TIMEOUT
 -CONFIG_WATCHDOG_TIMEOUT_MSECS
  CONFIG_WD_PERIOD
  CONFIG_X600
  CONFIG_X86EMU_DEBUG