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

38 files changed:
arch/arm/cpu/armv8/fsl-layerscape/lowlevel.S
arch/arm/cpu/armv8/fsl-layerscape/mp.c
arch/arm/include/asm/arch-fsl-layerscape/mp.h
arch/arm/include/asm/arch-fsl-layerscape/soc.h
board/freescale/common/fsl_chain_of_trust.c
configs/ls1021atwr_nor_SECURE_BOOT_defconfig
configs/ls1021atwr_nor_defconfig
configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
configs/ls1021atwr_sdcard_ifc_defconfig
configs/ls1021atwr_sdcard_qspi_defconfig
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_qspi_defconfig
configs/ls1046aqds_sdcard_ifc_defconfig
configs/ls1046aqds_sdcard_qspi_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
configs/ls2088ardb_qspi_defconfig
drivers/pci/pcie_layerscape.h
drivers/spi/fsl_qspi.c
drivers/usb/common/fsl-errata.c
include/configs/ls1021atwr.h
include/configs/ls1043a_common.h
include/configs/ls1046a_common.h
include/configs/ls1046aqds.h
include/configs/ls1046ardb.h
include/configs/ls2080aqds.h
include/configs/ls2080ardb.h

index 619d9b7..3136e3f 100644 (file)
@@ -497,9 +497,7 @@ slave_cpu:
        rev     x0, x0                  /* BE to LE conversion */
 cpu_is_le:
        ldr     x5, [x11, #24]
-       ldr     x6, =IH_ARCH_DEFAULT
-       cmp     x6, x5
-       b.eq    1f
+       cbz     x5, 1f
 
 #ifdef CONFIG_ARMV8_SWITCH_TO_EL1
        adr     x4, secondary_switch_to_el1
@@ -541,9 +539,7 @@ ENTRY(secondary_switch_to_el1)
        ldr     x4, [x11]
 
        ldr     x5, [x11, #24]
-       ldr     x6, =IH_ARCH_DEFAULT
-       cmp     x6, x5
-       b.eq    2f
+       cbz     x5, 2f
 
        ldr     x5, =ES_TO_AARCH32
        bl      switch_to_el1
index 80fe1ad..ab61ac3 100644 (file)
@@ -29,9 +29,14 @@ void update_os_arch_secondary_cores(uint8_t os_arch)
        u64 *table = get_spin_tbl_addr();
        int i;
 
-       for (i = 1; i < CONFIG_MAX_CPUS; i++)
-               table[i * WORDS_PER_SPIN_TABLE_ENTRY +
-                       SPIN_TABLE_ELEM_OS_ARCH_IDX] = os_arch;
+       for (i = 1; i < CONFIG_MAX_CPUS; i++) {
+               if (os_arch == IH_ARCH_DEFAULT)
+                       table[i * WORDS_PER_SPIN_TABLE_ENTRY +
+                               SPIN_TABLE_ELEM_ARCH_COMP_IDX] = OS_ARCH_SAME;
+               else
+                       table[i * WORDS_PER_SPIN_TABLE_ENTRY +
+                               SPIN_TABLE_ELEM_ARCH_COMP_IDX] = OS_ARCH_DIFF;
+       }
 }
 
 #ifdef CONFIG_FSL_LSCH3
index fd3f851..88f40c0 100644 (file)
@@ -13,7 +13,7 @@
 *      uint64_t entry_addr;
 *      uint64_t status;
 *      uint64_t lpid;
-*      uint64_t os_arch;
+*      uint64_t arch_comp;
 * };
 * we pad this struct to 64 bytes so each entry is in its own cacheline
 * the actual spin table is an array of these structures
 #define SPIN_TABLE_ELEM_ENTRY_ADDR_IDX 0
 #define SPIN_TABLE_ELEM_STATUS_IDX     1
 #define SPIN_TABLE_ELEM_LPID_IDX       2
-#define SPIN_TABLE_ELEM_OS_ARCH_IDX    3
+/* compare os arch and cpu arch */
+#define SPIN_TABLE_ELEM_ARCH_COMP_IDX  3
 #define WORDS_PER_SPIN_TABLE_ENTRY     8       /* pad to 64 bytes */
 #define SPIN_TABLE_ELEM_SIZE           64
 
+/* os arch is same as cpu arch */
+#define OS_ARCH_SAME                   0
+/* os arch is different from cpu arch */
+#define OS_ARCH_DIFF                   1
+
 #define id_to_core(x)  ((x & 3) | (x >> 6))
 #ifndef __ASSEMBLY__
 extern u64 __spin_table[];
@@ -43,7 +49,4 @@ int is_core_online(u64 cpu_id);
 u32 cpu_pos_mask(void);
 #endif
 
-#define IH_ARCH_ARM            2       /* ARM */
-#define IH_ARCH_ARM64          22      /* ARM64 */
-
 #endif /* _FSL_LAYERSCAPE_MP_H */
index 497afe7..aeb1273 100644 (file)
@@ -65,8 +65,8 @@ struct cpu_type {
 #define SVR_LS2084A            0x870910
 #define SVR_LS2048A            0x870920
 #define SVR_LS2044A            0x870930
-#define SVR_LS2081A            0x870919
-#define SVR_LS2041A            0x870915
+#define SVR_LS2081A            0x870918
+#define SVR_LS2041A            0x870914
 
 #define SVR_DEV_LS2080A                0x8701
 
index 2cd4fba..dfe5d20 100644 (file)
@@ -81,7 +81,13 @@ int fsl_setenv_chain_of_trust(void)
         * bootcmd = CONFIG_CHAIN_BOOT_CMD (Validate and execute Boot script)
         */
        setenv("bootdelay", "0");
+
+#ifdef CONFIG_ARM
+       setenv("secureboot", "y");
+#else
        setenv("bootcmd", CONFIG_CHAIN_BOOT_CMD);
+#endif
+
        return 0;
 }
 #endif
index cf99770..c8cb215 100644 (file)
@@ -46,3 +46,4 @@ CONFIG_VIDEO_FSL_DCU_FB=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_RSA=y
 CONFIG_SPL_RSA=y
+CONFIG_DISTRO_DEFAULTS=y
index cdbf5a2..29d6ea1 100644 (file)
@@ -45,3 +45,4 @@ CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO_FSL_DCU_FB=y
 # CONFIG_VIDEO_SW_CURSOR is not set
+CONFIG_DISTRO_DEFAULTS=y
index d13652a..8689fa7 100644 (file)
@@ -61,3 +61,4 @@ CONFIG_VIDEO_FSL_DCU_FB=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_RSA=y
 CONFIG_SPL_RSA=y
+CONFIG_DISTRO_DEFAULTS=y
index b87a6d3..8647365 100644 (file)
@@ -57,3 +57,4 @@ CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO_FSL_DCU_FB=y
 # CONFIG_VIDEO_SW_CURSOR is not set
+CONFIG_DISTRO_DEFAULTS=y
index 9ab9e25..b254f3b 100644 (file)
@@ -64,3 +64,4 @@ CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO_FSL_DCU_FB=y
 # CONFIG_VIDEO_SW_CURSOR is not set
+CONFIG_DISTRO_DEFAULTS=y
index ada88c7..c7077fc 100644 (file)
@@ -40,3 +40,4 @@ CONFIG_USB_STORAGE=y
 CONFIG_RSA=y
 CONFIG_SPL_RSA=y
 CONFIG_RSA_SOFTWARE_EXP=y
+CONFIG_DISTRO_DEFAULTS=y
index 03e7adf..a551867 100644 (file)
@@ -38,3 +38,4 @@ CONFIG_DM_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
+CONFIG_DISTRO_DEFAULTS=y
index 61c0d38..a96cc56 100644 (file)
@@ -56,3 +56,4 @@ CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
 CONFIG_RSA=y
 CONFIG_SPL_RSA=y
+CONFIG_DISTRO_DEFAULTS=y
index d129832..1b18179 100644 (file)
@@ -53,3 +53,4 @@ CONFIG_DM_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
+CONFIG_DISTRO_DEFAULTS=y
index a5cfd09..08637e2 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_CMD_PING=y
 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
index 20e5737..94d0ea9 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_CMD_PING=y
 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
index fd45148..6fc5d6e 100644 (file)
@@ -23,6 +23,7 @@ CONFIG_CMD_PING=y
 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
index da550fc..802c69c 100644 (file)
@@ -28,6 +28,7 @@ CONFIG_CMD_PING=y
 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
index 3a3cff6..c47be08 100644 (file)
@@ -23,6 +23,7 @@ CONFIG_CMD_PING=y
 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
index 6d4bd74..f93854a 100644 (file)
@@ -28,6 +28,7 @@ CONFIG_CMD_PING=y
 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
index fd916a5..62a9b2e 100644 (file)
@@ -28,6 +28,7 @@ CONFIG_CMD_PING=y
 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
index 17e3be8..a315ac1 100644 (file)
@@ -25,6 +25,7 @@ CONFIG_CMD_PING=y
 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
index 13a73dc..6d40587 100644 (file)
@@ -21,6 +21,7 @@ CONFIG_CMD_PING=y
 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 +37,4 @@ CONFIG_FSL_QSPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_RSA=y
+CONFIG_DISTRO_DEFAULTS=y
index a87c1b7..1dc74de 100644 (file)
@@ -21,6 +21,7 @@ CONFIG_CMD_PING=y
 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 +37,4 @@ CONFIG_DM_SPI=y
 CONFIG_FSL_QSPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
+CONFIG_DISTRO_DEFAULTS=y
index 3256893..9fdc437 100644 (file)
@@ -26,6 +26,7 @@ CONFIG_CMD_PING=y
 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 +45,4 @@ CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_RSA=y
 CONFIG_SPL_RSA=y
+CONFIG_DISTRO_DEFAULTS=y
index a15b28d..16cb8f1 100644 (file)
@@ -26,6 +26,7 @@ CONFIG_CMD_PING=y
 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 +43,4 @@ CONFIG_DM_SPI=y
 CONFIG_FSL_QSPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
+CONFIG_DISTRO_DEFAULTS=y
index da77d60..fe4bb27 100644 (file)
@@ -40,3 +40,4 @@ CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
 CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
+CONFIG_DISTRO_DEFAULTS=y
index 3a02233..4addbaf 100644 (file)
@@ -40,3 +40,4 @@ CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
 CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
+CONFIG_DISTRO_DEFAULTS=y
index 308b073..782e3ab 100644 (file)
 #define SVR_LS2084A            0x870910
 #define SVR_LS2048A            0x870920
 #define SVR_LS2044A            0x870930
-#define SVR_LS2081A            0x870919
-#define SVR_LS2041A            0x870915
+#define SVR_LS2081A            0x870918
+#define SVR_LS2041A            0x870914
 
 /* LS1021a PCIE space */
 #define LS1021_PCIE_SPACE_OFFSET       0x4000000000ULL
index e61c67b..1dfa89a 100644 (file)
@@ -493,6 +493,8 @@ static void qspi_op_rdbank(struct fsl_qspi_priv *priv, u8 *rxbuf, u32 len)
                ;
 
        while (1) {
+               WATCHDOG_RESET();
+
                reg = qspi_read32(priv->flags, &regs->rbsr);
                if (reg & QSPI_RBSR_RDBFL_MASK) {
                        data = qspi_read32(priv->flags, &regs->rbdr[0]);
@@ -530,6 +532,8 @@ static void qspi_op_rdid(struct fsl_qspi_priv *priv, u32 *rxbuf, u32 len)
 
        i = 0;
        while ((RX_BUFFER_SIZE >= len) && (len > 0)) {
+               WATCHDOG_RESET();
+
                rbsr_reg = qspi_read32(priv->flags, &regs->rbsr);
                if (rbsr_reg & QSPI_RBSR_RDBFL_MASK) {
                        data = qspi_read32(priv->flags, &regs->rbdr[i]);
@@ -702,6 +706,8 @@ static void qspi_op_rdsr(struct fsl_qspi_priv *priv, void *rxbuf, u32 len)
                ;
 
        while (1) {
+               WATCHDOG_RESET();
+
                reg = qspi_read32(priv->flags, &regs->rbsr);
                if (reg & QSPI_RBSR_RDBFL_MASK) {
                        data = qspi_read32(priv->flags, &regs->rbdr[0]);
@@ -757,6 +763,8 @@ int qspi_xfer(struct fsl_qspi_priv *priv, unsigned int bitlen,
        static u32 wr_sfaddr;
        u32 txbuf;
 
+       WATCHDOG_RESET();
+
        if (dout) {
                if (flags & SPI_XFER_BEGIN) {
                        priv->cur_seqid = *(u8 *)dout;
index 4e642ae..823beb3 100644 (file)
@@ -202,6 +202,10 @@ bool has_erratum_a010151(void)
 #ifdef CONFIG_ARM64
        case SVR_LS2080A:
        case SVR_LS2085A:
+                       /* fallthrough */
+       case SVR_LS2088A:
+                       /* fallthrough */
+       case SVR_LS2081A:
        case SVR_LS1046A:
        case SVR_LS1012A:
                return IS_SVR_REV(svr, 1, 0);
index 0aa6fdd..98e902e 100644 (file)
 #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
  */
index 32f7162..443a665 100644 (file)
                        "5m(kernel),1m(dtb),9m(file_system)"
 #endif
 
+#include <config_distro_defaults.h>
+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(USB, usb, 0)
+#include <config_distro_bootcmd.h>
+#endif
+
 /* Initial environment variables */
 #define CONFIG_EXTRA_ENV_SETTINGS              \
        "hwconfig=fsl_ddr:bank_intlv=auto\0"    \
-       "loadaddr=0x80100000\0"                 \
        "fdt_high=0xffffffffffffffff\0"         \
        "initrd_high=0xffffffffffffffff\0"      \
-       "kernel_start=0x61100000\0"             \
-       "kernel_load=0xa0000000\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"               \
+       "load_addr=0xa0000000\0"                \
        "kernel_size=0x2800000\0"               \
-       "console=ttyS0,115200\0"                \
-       "mtdparts=" MTDPARTS_DEFAULT "\0"
+       "console=ttyS0,115200\0"                \
+       "mtdparts=" MTDPARTS_DEFAULT "\0"       \
+       BOOTENV                                 \
+       "boot_scripts=ls1043ardb_boot.scr\0"    \
+       "boot_script_hdr=hdr_ls1043ardb_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#ls1043ardb\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"
+
+#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 " \
                                        "earlycon=uart8250,mmio,0x21c0500 "    \
                                        MTDPARTS_DEFAULT
-
-#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
-#define CONFIG_BOOTCOMMAND             "sf probe && sf read $kernel_load "    \
-                                       "e0000 f00000 && bootm $kernel_load"
-#else
-#define CONFIG_BOOTCOMMAND             "cp.b $kernel_start $kernel_load "     \
-                                       "$kernel_size && bootm $kernel_load"
-#endif
 #endif
 
 /* Monitor Command Prompt */
 #define CONFIG_SYS_LONGHELP
 
 #ifndef SPL_NO_MISC
+#ifndef CONFIG_CMDLINE_EDITING
 #define CONFIG_CMDLINE_EDITING         1
 #endif
+#endif
 
 #define CONFIG_AUTO_COMPLETE
 #define CONFIG_SYS_MAXARGS             64      /* max command args */
index 1b91676..7d7da91 100644 (file)
 #define CONFIG_HWCONFIG
 #define HWCONFIG_BUFFER_SIZE           128
 
+#include <config_distro_defaults.h>
+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(USB, usb, 0)
+#include <config_distro_bootcmd.h>
+#endif
+
 #ifndef SPL_NO_MISC
 /* Initial environment variables */
 #define CONFIG_EXTRA_ENV_SETTINGS              \
        "hwconfig=fsl_ddr:bank_intlv=auto\0"    \
-       "loadaddr=0x80100000\0"                 \
        "ramdisk_addr=0x800000\0"               \
        "ramdisk_size=0x2000000\0"              \
        "fdt_high=0xffffffffffffffff\0"         \
        "initrd_high=0xffffffffffffffff\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"      \
+       "load_addr=0xa0000000\0"            \
+       "kernel_addr_r=0x81000000\0"            \
+       "fdt_addr_r=0x90000000\0"               \
+       "ramdisk_addr_r=0xa0000000\0"           \
        "kernel_start=0x1000000\0"              \
        "kernel_load=0xa0000000\0"              \
        "kernel_size=0x2800000\0"               \
        "console=ttyS0,115200\0"                \
-               MTDPARTS_DEFAULT "\0"
+               MTDPARTS_DEFAULT "\0"           \
+       BOOTENV                                 \
+       "boot_scripts=ls1046ardb_boot.scr\0"    \
+       "boot_script_hdr=hdr_ls1046ardb_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#ls1046ardb\0"  \
+       "qspi_bootcmd=echo Trying load from qspi..;"      \
+               "sf probe && sf read $load_addr "         \
+               "$kernel_start $kernel_size && bootm $load_addr#$board\0"
+
 
 #define CONFIG_BOOTARGS                        "console=ttyS0,115200 root=/dev/ram0 " \
                                        "earlycon=uart8250,mmio,0x21c0500 " \
 #define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE /* Boot args buffer */
 #define CONFIG_SYS_LONGHELP
 
-#ifndef SPL_NO_MISC
-#define CONFIG_CMDLINE_EDITING         1
-#endif
-
 #define CONFIG_AUTO_COMPLETE
 #define CONFIG_SYS_MAXARGS             64      /* max command args */
 
index 53cdcf2..9dc74b4 100644 (file)
@@ -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_USB_STORAGE
 #endif
 
@@ -460,6 +459,7 @@ unsigned long get_board_ddr_clk(void);
 
 #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"
index 10af410..3d3dfb1 100644 (file)
 #define CONFIG_USB_XHCI_FSL
 #define CONFIG_USB_XHCI_DWC3
 #define CONFIG_USB_MAX_CONTROLLER_COUNT         3
-#define CONFIG_CMD_USB
 #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)," \
index 6ce177e..6b943cd 100644 (file)
@@ -235,7 +235,7 @@ unsigned long get_board_ddr_clk(void);
 #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
index 2a6aa8e..b86726f 100644 (file)
@@ -356,97 +356,113 @@ unsigned long get_board_sys_clk(void);
        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