Merge git://git.denx.de/u-boot-fsl-qoriq
authorTom Rini <trini@konsulko.com>
Wed, 2 Aug 2017 14:52:26 +0000 (10:52 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 2 Aug 2017 14:52:26 +0000 (10:52 -0400)
Signed-off-by: Tom Rini <trini@konsulko.com>
Conflicts:
include/configs/ls1046aqds.h
include/configs/ls1046ardb.h

20 files changed:
1  2 
configs/ls1043ardb_SECURE_BOOT_defconfig
configs/ls1043ardb_defconfig
configs/ls1043ardb_sdcard_SECURE_BOOT_defconfig
configs/ls1043ardb_sdcard_defconfig
configs/ls1046aqds_SECURE_BOOT_defconfig
configs/ls1046aqds_defconfig
configs/ls1046aqds_lpuart_defconfig
configs/ls1046aqds_nand_defconfig
configs/ls1046aqds_sdcard_ifc_defconfig
configs/ls1046ardb_emmc_defconfig
configs/ls1046ardb_qspi_SECURE_BOOT_defconfig
configs/ls1046ardb_qspi_defconfig
configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
configs/ls1046ardb_sdcard_defconfig
configs/ls2080ardb_defconfig
include/configs/ls1021atwr.h
include/configs/ls1046aqds.h
include/configs/ls1046ardb.h
include/configs/ls2080aqds.h
include/configs/ls2080ardb.h

@@@ -9,7 -9,6 +9,7 @@@ CONFIG_BOOTDELAY=1
  CONFIG_HUSH_PARSER=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_USB=y
@@@ -40,3 -39,4 +40,4 @@@ CONFIG_USB_STORAGE=
  CONFIG_RSA=y
  CONFIG_SPL_RSA=y
  CONFIG_RSA_SOFTWARE_EXP=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -9,7 -9,6 +9,7 @@@ CONFIG_BOOTDELAY=1
  CONFIG_HUSH_PARSER=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_USB=y
@@@ -38,3 -37,4 +38,4 @@@ CONFIG_DM_USB=
  CONFIG_USB_XHCI_HCD=y
  CONFIG_USB_XHCI_DWC3=y
  CONFIG_USB_STORAGE=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -24,7 -24,6 +24,7 @@@ CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT=
  CONFIG_HUSH_PARSER=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_USB=y
@@@ -56,3 -55,4 +56,4 @@@ CONFIG_USB_XHCI_DWC3=
  CONFIG_USB_STORAGE=y
  CONFIG_RSA=y
  CONFIG_SPL_RSA=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -23,7 -23,6 +23,7 @@@ CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT=
  CONFIG_HUSH_PARSER=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_USB=y
@@@ -53,3 -52,4 +53,4 @@@ CONFIG_DM_USB=
  CONFIG_USB_XHCI_HCD=y
  CONFIG_USB_XHCI_DWC3=y
  CONFIG_USB_STORAGE=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -13,7 -13,6 +13,7 @@@ CONFIG_CMD_MEMTEST=
  CONFIG_CMD_MEMINFO=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -22,6 -21,7 +22,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
  CONFIG_MTD_NOR_FLASH=y
@@@ -13,7 -13,6 +13,7 @@@ CONFIG_CMD_MEMTEST=
  CONFIG_CMD_MEMINFO=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -22,6 -21,7 +22,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
  CONFIG_FSL_CAAM=y
@@@ -14,7 -14,6 +14,7 @@@ CONFIG_CMD_MEMTEST=
  CONFIG_CMD_MEMINFO=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -23,6 -22,7 +23,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
  CONFIG_FSL_CAAM=y
@@@ -19,7 -19,6 +19,7 @@@ CONFIG_CMD_MEMTEST=
  CONFIG_CMD_MEMINFO=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -28,6 -27,7 +28,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
  CONFIG_FSL_CAAM=y
@@@ -19,7 -19,6 +19,7 @@@ CONFIG_CMD_MEMTEST=
  CONFIG_CMD_MEMINFO=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -28,6 -27,7 +28,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  # CONFIG_SPL_EFI_PARTITION is not set
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
@@@ -16,7 -16,6 +16,7 @@@ CONFIG_HUSH_PARSER=
  # CONFIG_CMD_IMLS is not set
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -25,6 -24,7 +25,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  # CONFIG_SPL_EFI_PARTITION is not set
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
@@@ -12,7 -12,6 +12,7 @@@ CONFIG_HUSH_PARSER=
  # CONFIG_CMD_IMLS is not set
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -21,6 -20,7 +21,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
  CONFIG_SPI_FLASH=y
@@@ -36,3 -36,4 +37,4 @@@ CONFIG_FSL_QSPI=
  CONFIG_USB=y
  CONFIG_DM_USB=y
  CONFIG_RSA=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -12,7 -12,6 +12,7 @@@ CONFIG_HUSH_PARSER=
  # CONFIG_CMD_IMLS is not set
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -21,6 -20,7 +21,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
  CONFIG_FSL_CAAM=y
@@@ -36,3 -36,4 +37,4 @@@ CONFIG_DM_SPI=
  CONFIG_FSL_QSPI=y
  CONFIG_USB=y
  CONFIG_DM_USB=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -17,7 -17,6 +17,7 @@@ CONFIG_HUSH_PARSER=
  # CONFIG_CMD_IMLS is not set
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -26,6 -25,7 +26,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  # CONFIG_SPL_EFI_PARTITION is not set
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
@@@ -44,3 -44,4 +45,4 @@@ CONFIG_USB=
  CONFIG_DM_USB=y
  CONFIG_RSA=y
  CONFIG_SPL_RSA=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -17,7 -17,6 +17,7 @@@ CONFIG_HUSH_PARSER=
  # CONFIG_CMD_IMLS is not set
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_DHCP=y
@@@ -26,6 -25,7 +26,7 @@@ CONFIG_CMD_PING=
  CONFIG_CMD_CACHE=y
  CONFIG_CMD_EXT2=y
  CONFIG_CMD_FAT=y
+ CONFIG_CMD_USB=y
  # CONFIG_SPL_EFI_PARTITION is not set
  CONFIG_OF_CONTROL=y
  CONFIG_DM=y
@@@ -42,3 -42,4 +43,4 @@@ CONFIG_DM_SPI=
  CONFIG_FSL_QSPI=y
  CONFIG_USB=y
  CONFIG_DM_USB=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -12,7 -12,6 +12,7 @@@ CONFIG_CMD_GREPENV=
  CONFIG_CMD_EEPROM=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
 +CONFIG_CMD_NAND=y
  CONFIG_CMD_SF=y
  CONFIG_CMD_I2C=y
  CONFIG_CMD_USB=y
@@@ -40,3 -39,4 +40,4 @@@ CONFIG_USB_XHCI_HCD=
  CONFIG_USB_XHCI_DWC3=y
  CONFIG_USB_STORAGE=y
  CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
+ CONFIG_DISTRO_DEFAULTS=y
@@@ -50,6 -50,7 +50,6 @@@
  #ifdef CONFIG_HAS_FSL_XHCI_USB
  #define CONFIG_USB_XHCI_FSL
  #define CONFIG_USB_MAX_CONTROLLER_COUNT        1
 -#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS     2
  #endif
  
  #define CONFIG_SYS_CLK_FREQ           100000000
  #endif
  
  #define CONFIG_CMDLINE_TAG
- #define CONFIG_CMDLINE_EDITING
  
  #define CONFIG_PEN_ADDR_BIG_ENDIAN
  #define CONFIG_LAYERSCAPE_NS_ACCESS
  
  #define CONFIG_FSL_DEVICE_DISABLE
  
+ #include <config_distro_defaults.h>
+ #define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(USB, usb, 0)
+ #include <config_distro_bootcmd.h>
  
  #ifdef CONFIG_LPUART
  #define CONFIG_EXTRA_ENV_SETTINGS       \
        "bootargs=root=/dev/ram0 rw console=ttyLP0,115200\0" \
        "initrd_high=0xffffffff\0"      \
-       "fdt_high=0xffffffff\0"
+       "fdt_high=0xffffffff\0"         \
+       "fdt_addr=0x64f00000\0"         \
+       "kernel_addr=0x65000000\0"      \
+       "scriptaddr=0x80000000\0"       \
+       "scripthdraddr=0x80080000\0"    \
+       "fdtheader_addr_r=0x80100000\0" \
+       "kernelheader_addr_r=0x80200000\0"      \
+       "kernel_addr_r=0x81000000\0"    \
+       "fdt_addr_r=0x90000000\0"       \
+       "ramdisk_addr_r=0xa0000000\0"   \
+       "load_addr=0xa0000000\0"        \
+       "kernel_size=0x2800000\0"       \
+       BOOTENV                         \
+       "boot_scripts=ls1021atwr_boot.scr\0"    \
+       "boot_script_hdr=hdr_ls1021atwr_bs.out\0"       \
+               "scan_dev_for_boot_part="       \
+                       "part list ${devtype} ${devnum} devplist; "     \
+                       "env exists devplist || setenv devplist 1; "    \
+                       "for distro_bootpart in ${devplist}; do "       \
+                       "if fstype ${devtype} "                         \
+                               "${devnum}:${distro_bootpart} "         \
+                               "bootfstype; then "                     \
+                               "run scan_dev_for_boot; "               \
+                       "fi; "                  \
+               "done\0"                        \
+       "scan_dev_for_boot="                              \
+               "echo Scanning ${devtype} "               \
+                               "${devnum}:${distro_bootpart}...; "  \
+               "for prefix in ${boot_prefixes}; do "     \
+                       "run scan_dev_for_scripts; "      \
+               "done;"                                   \
+               "\0"                                      \
+       "boot_a_script="                                  \
+               "load ${devtype} ${devnum}:${distro_bootpart} "  \
+                       "${scriptaddr} ${prefix}${script}; "    \
+               "env exists secureboot && load ${devtype} "     \
+                       "${devnum}:${distro_bootpart} "         \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "&& esbc_validate ${scripthdraddr};"    \
+               "source ${scriptaddr}\0"          \
+       "installer=load mmc 0:2 $load_addr "    \
+               "/flex_installer_arm32.itb; "           \
+               "bootm $load_addr#ls1021atwr\0" \
+       "qspi_bootcmd=echo Trying load from qspi..;"    \
+               "sf probe && sf read $load_addr "       \
+               "$kernel_addr $kernel_size && bootm $load_addr#$board\0"        \
+       "nor_bootcmd=echo Trying load from nor..;"      \
+               "cp.b $kernel_addr $load_addr "         \
+               "$kernel_size && bootm $load_addr#$board\0"
  #else
  #define CONFIG_EXTRA_ENV_SETTINGS     \
        "bootargs=root=/dev/ram0 rw console=ttyS0,115200\0" \
        "initrd_high=0xffffffff\0"      \
-       "fdt_high=0xffffffff\0"
+       "fdt_high=0xffffffff\0"         \
+       "fdt_addr=0x64f00000\0"         \
+       "kernel_addr=0x65000000\0"      \
+       "scriptaddr=0x80000000\0"       \
+       "scripthdraddr=0x80080000\0"    \
+       "fdtheader_addr_r=0x80100000\0" \
+       "kernelheader_addr_r=0x80200000\0"      \
+       "kernel_addr_r=0x81000000\0"    \
+       "fdt_addr_r=0x90000000\0"       \
+       "ramdisk_addr_r=0xa0000000\0"   \
+       "load_addr=0xa0000000\0"        \
+       "kernel_size=0x2800000\0"       \
+       BOOTENV                         \
+       "boot_scripts=ls1021atwr_boot.scr\0"    \
+       "boot_script_hdr=hdr_ls1021atwr_bs.out\0"       \
+               "scan_dev_for_boot_part="       \
+                       "part list ${devtype} ${devnum} devplist; "     \
+                       "env exists devplist || setenv devplist 1; "    \
+                       "for distro_bootpart in ${devplist}; do "       \
+                       "if fstype ${devtype} "                         \
+                               "${devnum}:${distro_bootpart} "         \
+                               "bootfstype; then "                     \
+                               "run scan_dev_for_boot; "               \
+                       "fi; "                  \
+               "done\0"                        \
+       "scan_dev_for_boot="                              \
+               "echo Scanning ${devtype} "               \
+                               "${devnum}:${distro_bootpart}...; "  \
+               "for prefix in ${boot_prefixes}; do "     \
+                       "run scan_dev_for_scripts; "      \
+               "done;"                                   \
+               "\0"                                      \
+       "boot_a_script="                                  \
+               "load ${devtype} ${devnum}:${distro_bootpart} "  \
+                       "${scriptaddr} ${prefix}${script}; "    \
+               "env exists secureboot && load ${devtype} "     \
+                       "${devnum}:${distro_bootpart} "         \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "&& esbc_validate ${scripthdraddr};"    \
+               "source ${scriptaddr}\0"          \
+       "installer=load mmc 0:2 $load_addr "    \
+               "/flex_installer_arm32.itb; "           \
+               "bootm $load_addr#ls1021atwr\0" \
+       "qspi_bootcmd=echo Trying load from qspi..;"    \
+               "sf probe && sf read $load_addr "       \
+               "$kernel_addr $kernel_size && bootm $load_addr#$board\0"        \
+       "nor_bootcmd=echo Trying load from nor..;"      \
+               "cp.b $kernel_addr $load_addr "         \
+               "$kernel_size && bootm $load_addr#$board\0"
  #endif
  
+ #undef CONFIG_BOOTCOMMAND
+ #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
+ #define CONFIG_BOOTCOMMAND "run distro_bootcmd; env exists secureboot"        \
+                          "&& esbc_halt; run qspi_bootcmd;"
+ #else
+ #define CONFIG_BOOTCOMMAND "run distro_bootcmd; env exists secureboot"        \
+                          "&& esbc_halt; run nor_bootcmd;"
+ #endif
+ #define CONFIG_BOOTARGS                       "console=ttyS0,115200 root=/dev/ram0"
  /*
   * Miscellaneous configurable options
   */
@@@ -144,7 -144,7 +144,6 @@@ unsigned long get_board_ddr_clk(void)
  #define CONFIG_USB_XHCI_FSL
  #define CONFIG_USB_XHCI_DWC3
  #define CONFIG_USB_MAX_CONTROLLER_COUNT         3
- #define CONFIG_CMD_USB
 -#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS      2
  #define CONFIG_USB_STORAGE
  #endif
  
  #define CONFIG_SYS_NAND_BASE_LIST     { CONFIG_SYS_NAND_BASE }
  #define CONFIG_SYS_MAX_NAND_DEVICE    1
  #define CONFIG_MTD_NAND_VERIFY_WRITE
 -#define CONFIG_CMD_NAND
  
  #define CONFIG_SYS_NAND_BLOCK_SIZE    (256 * 1024)
  #endif
  
  #define CONFIG_CMDLINE_TAG
  
+ #undef CONFIG_BOOTCOMMAND
  #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
  #define CONFIG_BOOTCOMMAND            "sf probe && sf read $kernel_load "    \
                                        "e0000 f00000 && bootm $kernel_load"
@@@ -95,6 -95,7 +95,6 @@@
  #define CONFIG_SYS_NAND_BASE_LIST     { CONFIG_SYS_NAND_BASE }
  #define CONFIG_SYS_MAX_NAND_DEVICE    1
  #define CONFIG_MTD_NAND_VERIFY_WRITE
 -#define CONFIG_CMD_NAND
  
  #define CONFIG_SYS_NAND_BLOCK_SIZE    (128 * 1024)
  
  #define CONFIG_USB_XHCI_FSL
  #define CONFIG_USB_XHCI_DWC3
  #define CONFIG_USB_MAX_CONTROLLER_COUNT         3
- #define CONFIG_CMD_USB
 -#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS      2
  #define CONFIG_USB_STORAGE
  #endif
  #endif
  #endif
  
  #ifndef SPL_NO_MISC
- #define CONFIG_BOOTCOMMAND            "sf probe 0:0;sf read $kernel_load" \
-                                       "$kernel_start $kernel_size;" \
-                                       "bootm $kernel_load"
+ #undef CONFIG_BOOTCOMMAND
+ #define CONFIG_BOOTCOMMAND "run distro_bootcmd; env exists secureboot"        \
+                          "&& esbc_halt; run qspi_bootcmd;"
  #define MTDPARTS_DEFAULT "mtdparts=1550000.quadspi:1m(rcw)," \
                        "15m(u-boot),48m(kernel.itb);" \
                        "7e800000.flash:16m(nand_uboot)," \
@@@ -154,6 -154,7 +154,6 @@@ unsigned long get_board_ddr_clk(void)
  #define CONFIG_SYS_NAND_BASE_LIST     { CONFIG_SYS_NAND_BASE }
  #define CONFIG_SYS_MAX_NAND_DEVICE    1
  #define CONFIG_MTD_NAND_VERIFY_WRITE
 -#define CONFIG_CMD_NAND
  
  #define CONFIG_SYS_NAND_BLOCK_SIZE    (128 * 1024)
  
  #define CONFIG_SYS_NAND_U_BOOT_OFFS   (256 * 1024)
  #define CONFIG_SYS_NAND_U_BOOT_SIZE   (640 * 1024)
  #elif defined(CONFIG_SD_BOOT)
- #define CONFIG_ENV_OFFSET             0x200000
+ #define CONFIG_ENV_OFFSET             0x300000
  #define CONFIG_SYS_MMC_ENV_DEV                0
  #define CONFIG_ENV_SIZE                       0x20000
  #endif
  #define CONFIG_HAS_FSL_XHCI_USB
  #define CONFIG_USB_XHCI_FSL
  #define CONFIG_USB_MAX_CONTROLLER_COUNT               2
 -#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS    2
  
  #include <asm/fsl_secure_boot.h>
  
@@@ -163,6 -163,7 +163,6 @@@ unsigned long get_board_sys_clk(void)
  #define CONFIG_SYS_NAND_BASE_LIST     { CONFIG_SYS_NAND_BASE }
  #define CONFIG_SYS_MAX_NAND_DEVICE    1
  #define CONFIG_MTD_NAND_VERIFY_WRITE
 -#define CONFIG_CMD_NAND
  
  #define CONFIG_SYS_NAND_BLOCK_SIZE    (512 * 1024)
  #define CONFIG_FSL_QIXIS      /* use common QIXIS code */
  #define CONFIG_HAS_FSL_XHCI_USB
  #define CONFIG_USB_XHCI_FSL
  #define CONFIG_USB_MAX_CONTROLLER_COUNT         2
 -#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS      2
  
  #undef CONFIG_CMDLINE_EDITING
  #include <config_distro_defaults.h>
        func(DHCP, dhcp, na)
  #include <config_distro_bootcmd.h>
  
+ #ifdef CONFIG_QSPI_BOOT
+ #define MC_INIT_CMD                           \
+       "mcinitcmd=env exists secureboot && "   \
+       "esbc_validate 0x20700000 && "          \
+       "esbc_validate 0x20740000;"             \
+       "fsl_mc start mc 0x20a00000 0x20e00000 \0"
+ #else
+ #define MC_INIT_CMD                           \
+       "mcinitcmd=env exists secureboot && "   \
+       "esbc_validate 0x580700000 && "         \
+       "esbc_validate 0x580740000; "           \
+       "fsl_mc start mc 0x580a00000 0x580e00000 \0"
+ #endif
  /* Initial environment variables */
  #undef CONFIG_EXTRA_ENV_SETTINGS
- #ifdef CONFIG_SECURE_BOOT
  #define CONFIG_EXTRA_ENV_SETTINGS             \
        "hwconfig=fsl_ddr:bank_intlv=auto\0"    \
-       "scriptaddr=0x80800000\0"               \
-       "kernel_addr_r=0x81000000\0"            \
-       "pxefile_addr_r=0x81000000\0"           \
-       "fdt_addr_r=0x88000000\0"               \
-       "ramdisk_addr_r=0x89000000\0"           \
-       "loadaddr=0x80100000\0"                 \
-       "kernel_addr=0x100000\0"                \
        "ramdisk_addr=0x800000\0"               \
        "ramdisk_size=0x2000000\0"              \
        "fdt_high=0xa0000000\0"                 \
        "initrd_high=0xffffffffffffffff\0"      \
-       "kernel_start=0x581000000\0"            \
-       "kernel_load=0xa0000000\0"              \
+       "fdt_addr=0x64f00000\0"                 \
+       "kernel_addr=0x65000000\0"              \
+       "kernel_start=0x1000000\0"              \
+       "kernelheader_start=0x800000\0"         \
+       "scriptaddr=0x80000000\0"               \
+       "scripthdraddr=0x80080000\0"            \
+       "fdtheader_addr_r=0x80100000\0"         \
+       "kernelheader_addr_r=0x80200000\0"      \
+       "kernelheader_addr=0x580800000\0"       \
+       "kernel_addr_r=0x81000000\0"            \
+       "kernelheader_size=0x40000\0"           \
+       "fdt_addr_r=0x90000000\0"               \
+       "load_addr=0xa0000000\0"                \
        "kernel_size=0x2800000\0"               \
-       "mcmemsize=0x40000000\0"                \
-       "fdtfile=fsl-ls2080a-rdb.dtb\0"         \
-       "mcinitcmd=esbc_validate 0x580700000;"  \
-       "esbc_validate 0x580740000;"            \
-       "fsl_mc start mc 0x580a00000"           \
-       " 0x580e00000 \0"                       \
-       BOOTENV
- #else
+       "console=ttyAMA0,38400n8\0"             \
+       MC_INIT_CMD                             \
+       BOOTENV                                 \
+       "boot_scripts=ls2088ardb_boot.scr\0"    \
+       "boot_script_hdr=hdr_ls2088ardb_bs.out\0"       \
+       "scan_dev_for_boot_part="               \
+               "part list ${devtype} ${devnum} devplist; "     \
+               "env exists devplist || setenv devplist 1; "    \
+               "for distro_bootpart in ${devplist}; do "       \
+                       "if fstype ${devtype} "                 \
+                               "${devnum}:${distro_bootpart} " \
+                               "bootfstype; then "             \
+                               "run scan_dev_for_boot; "       \
+                       "fi; "                                  \
+               "done\0"                                        \
+       "scan_dev_for_boot="                                    \
+               "echo Scanning ${devtype} "                     \
+                       "${devnum}:${distro_bootpart}...; "     \
+               "for prefix in ${boot_prefixes}; do "           \
+                       "run scan_dev_for_scripts; "            \
+               "done;\0"                                       \
+       "boot_a_script="                                        \
+               "load ${devtype} ${devnum}:${distro_bootpart} " \
+                       "${scriptaddr} ${prefix}${script}; "    \
+               "env exists secureboot && load ${devtype} "     \
+                       "${devnum}:${distro_bootpart} "         \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "&& esbc_validate ${scripthdraddr};"    \
+               "source ${scriptaddr}\0"                        \
+       "installer=load mmc 0:2 $load_addr "                    \
+               "/flex_installer_arm64.itb; "                   \
+               "bootm $load_addr#ls2088ardb\0"                 \
+       "qspi_bootcmd=echo Trying load from qspi..;"            \
+               "sf probe && sf read $load_addr "               \
+               "$kernel_start $kernel_size ; env exists secureboot &&" \
+               "sf read $kernelheader_addr_r $kernelheader_start "     \
+               "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\
+               " bootm $load_addr#$board\0"                    \
+       "nor_bootcmd=echo Trying load from nor..;"              \
+               "cp.b $kernel_addr $load_addr "                 \
+               "$kernel_size ; env exists secureboot && "      \
+               "cp.b $kernelheader_addr $kernelheader_addr_r " \
+               "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\
+               "bootm $load_addr#$board\0"
+ #undef CONFIG_BOOTCOMMAND
  #ifdef CONFIG_QSPI_BOOT
- #define CONFIG_EXTRA_ENV_SETTINGS             \
-       "hwconfig=fsl_ddr:bank_intlv=auto\0"    \
-       "scriptaddr=0x80800000\0"               \
-       "kernel_addr_r=0x81000000\0"            \
-       "pxefile_addr_r=0x81000000\0"           \
-       "fdt_addr_r=0x88000000\0"               \
-       "ramdisk_addr_r=0x89000000\0"           \
-       "loadaddr=0x80100000\0"                 \
-       "kernel_addr=0x100000\0"                \
-       "ramdisk_size=0x2000000\0"              \
-       "fdt_high=0xa0000000\0"                 \
-       "initrd_high=0xffffffffffffffff\0"      \
-       "kernel_start=0x21000000\0"             \
-       "mcmemsize=0x40000000\0"                \
-       "mcinitcmd=fsl_mc start mc 0x20a00000" \
-       " 0x20e00000 \0"                       \
-       BOOTENV
+ /* Try to boot an on-QSPI kernel first, then do normal distro boot */
+ #define CONFIG_BOOTCOMMAND                                            \
+                       "env exists mcinitcmd && env exists secureboot "\
+                       "&& esbc_validate 0x20780000; "                 \
+                       "env exists mcinitcmd && "                      \
+                       "fsl_mc lazyapply dpl 0x20d00000; "             \
+                       "run distro_bootcmd;run qspi_bootcmd; "         \
+                       "env exists secureboot && esbc_halt; "
  #else
- #define CONFIG_EXTRA_ENV_SETTINGS             \
-       "hwconfig=fsl_ddr:bank_intlv=auto\0"    \
-       "scriptaddr=0x80800000\0"               \
-       "kernel_addr_r=0x81000000\0"            \
-       "pxefile_addr_r=0x81000000\0"           \
-       "fdt_addr_r=0x88000000\0"               \
-       "ramdisk_addr_r=0x89000000\0"           \
-       "loadaddr=0x80100000\0"                 \
-       "kernel_addr=0x100000\0"                \
-       "ramdisk_addr=0x800000\0"               \
-       "ramdisk_size=0x2000000\0"              \
-       "fdt_high=0xa0000000\0"                 \
-       "initrd_high=0xffffffffffffffff\0"      \
-       "kernel_start=0x581000000\0"            \
-       "kernel_load=0xa0000000\0"              \
-       "kernel_size=0x2800000\0"               \
-       "mcmemsize=0x40000000\0"                \
-       "fdtfile=fsl-ls2080a-rdb.dtb\0"         \
-       "mcinitcmd=fsl_mc start mc 0x580a00000" \
-       " 0x580e00000 \0"                       \
-       BOOTENV
- #endif
+ /* Try to boot an on-NOR kernel first, then do normal distro boot */
+ #define CONFIG_BOOTCOMMAND                                            \
+                       "env exists mcinitcmd && env exists secureboot "\
+                       "&& esbc_validate 0x580780000; env exists mcinitcmd "\
+                       "&& fsl_mc lazyapply dpl 0x580d00000;"          \
+                       "run distro_bootcmd;run nor_bootcmd; "          \
+                       "env exists secureboot && esbc_halt; "
  #endif
  
  #undef CONFIG_BOOTARGS
  #define CONFIG_BOOTARGS               "console=ttyS1,115200 root=/dev/ram0 " \
                                "earlycon=uart8250,mmio,0x21c0600 " \
                                "ramdisk_size=0x2000000 default_hugepagesz=2m" \
                                " hugepagesz=2m hugepages=256"
  
- #undef CONFIG_BOOTCOMMAND
- #ifdef CONFIG_QSPI_BOOT
- /* Try to boot an on-QSPI kernel first, then do normal distro boot */
- #define CONFIG_BOOTCOMMAND "run mcinitcmd && fsl_mc lazyapply dpl 0x20d00000" \
-                          " && bootm $kernel_start" \
-                          " || run distro_bootcmd"
- #else
- /* Try to boot an on-NOR kernel first, then do normal distro boot */
- #define CONFIG_BOOTCOMMAND "run mcinitcmd && fsl_mc lazyapply dpl 0x580d00000" \
-                          " && cp.b $kernel_start $kernel_load $kernel_size" \
-                          " && bootm $kernel_load" \
-                          " || run distro_bootcmd"
- #endif
  /* MAC/PHY configuration */
  #ifdef CONFIG_FSL_MC_ENET
  #define CONFIG_PHYLIB_10G