]> git.sur5r.net Git - u-boot/commitdiff
Merge git://git.denx.de/u-boot-fsl-qoriq
authorTom Rini <trini@konsulko.com>
Mon, 18 Dec 2017 23:39:00 +0000 (18:39 -0500)
committerTom Rini <trini@konsulko.com>
Mon, 18 Dec 2017 23:39:00 +0000 (18:39 -0500)
21 files changed:
arch/arm/cpu/armv8/fsl-layerscape/cpu.c
arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3
arch/arm/cpu/armv8/fsl-layerscape/fdt.c
arch/arm/cpu/armv8/fsl-layerscape/lowlevel.S
arch/arm/include/asm/arch-fsl-layerscape/soc.h
board/freescale/ls1012ardb/ls1012ardb.c
board/freescale/ls1088a/ls1088a.c
board/freescale/ls1088a/ls1088a_qixis.h
board/freescale/ls2080a/ls2080a.c
board/freescale/ls2080aqds/ls2080aqds.c
board/freescale/ls2080ardb/ls2080ardb.c
configs/ls1012afrdm_qspi_defconfig
configs/ls1012ardb_qspi_defconfig
drivers/net/fsl-mc/dpio/qbman_private.h
drivers/usb/common/fsl-errata.c
include/configs/ls1012a_common.h
include/configs/ls1012afrdm.h
include/configs/ls1012ardb.h
include/configs/ls1046aqds.h
include/configs/ls1088ardb.h
include/configs/ls2080a_common.h

index d08262971e74c1be3306fec011aa058e8681301f..00d2564c7998bb5e6643b66e88081fda4e804373 100644 (file)
@@ -538,8 +538,8 @@ int arch_early_init_r(void)
         * erratum A009635 is valid only for LS2080A SoC and
         * its personalitiesi
         */
-       svr_dev_id = get_svr() >> 16;
-       if (svr_dev_id == SVR_DEV_LS2080A)
+       svr_dev_id = get_svr();
+       if (IS_SVR_DEV(svr_dev_id, SVR_DEV(SVR_LS2080A)))
                erratum_a009635();
 #endif
 #if defined(CONFIG_SYS_FSL_ERRATUM_A009942) && defined(CONFIG_SYS_FSL_DDR)
@@ -604,8 +604,8 @@ int timer_init(void)
         * For LS2080A SoC and its personalities, timer controller
         * offset is different
         */
-       svr_dev_id = get_svr() >> 16;
-       if (svr_dev_id == SVR_DEV_LS2080A)
+       svr_dev_id = get_svr();
+       if (IS_SVR_DEV(svr_dev_id, SVR_DEV(SVR_LS2080A)))
                cntcr = (u32 *)SYS_FSL_LS2080A_LS2085A_TIMER_ADDR;
 
 #endif
index 025a1b7b2e060b6be2926adbbcfe53a4a62e7bcb..6c98d99d0ccea0fabe6321d86a91bcec3fc9d09a 100644 (file)
@@ -154,8 +154,8 @@ Booting from NAND
 -------------------
 Booting from NAND requires two images, RCW and u-boot-with-spl.bin.
 The difference between NAND boot RCW image and NOR boot image is the PBI
-command sequence. Below is one example for PBI commands for QDS which uses
-NAND device with 2KB/page, block size 128KB.
+command sequence. Below is one example for PBI commands for LS2085AQDS which
+uses NAND device with 2KB/page, block size 128KB.
 
 1) CCSR 4-byte write to 0x00e00404, data=0x00000000
 2) CCSR 4-byte write to 0x00e00400, data=0x1800a000
@@ -188,7 +188,7 @@ nand write <u-boot image in memory> 200000 <size of u-boot image>
 
 With these two images in NAND device, the board can boot from NAND.
 
-Another example for RDB boards,
+Another example for LS2085ARDB boards,
 
 1) CCSR 4-byte write to 0x00e00404, data=0x00000000
 2) CCSR 4-byte write to 0x00e00400, data=0x1800a000
@@ -201,6 +201,8 @@ nand write <u-boot image in memory> 80000 <size of u-boot image>
 Notice the difference from QDS is SRC, SRC_ADDR and the offset of u-boot image
 to match board NAND device with 4KB/page, block size 512KB.
 
+Note, LS2088A and LS1088A don't support booting from NAND.
+
 Booting from SD/eMMC
 -------------------
 Booting from SD/eMMC requires two images, RCW and u-boot-with-spl.bin.
index cae59da803b56c39d701a03ae58be0cf06c5ee37..39ffe1ab4d523f4d951ead975875131a5e9a637c 100644 (file)
@@ -42,6 +42,33 @@ void ft_fixup_cpu(void *blob)
        int addr_cells;
        u64 val, core_id;
        size_t *boot_code_size = &(__secondary_boot_code_size);
+       u32 mask = cpu_pos_mask();
+       int off_prev = -1;
+
+       off = fdt_path_offset(blob, "/cpus");
+       if (off < 0) {
+               puts("couldn't find /cpus node\n");
+               return;
+       }
+
+       fdt_support_default_count_cells(blob, off, &addr_cells, NULL);
+
+       off = fdt_node_offset_by_prop_value(blob, off_prev, "device_type",
+                                           "cpu", 4);
+       while (off != -FDT_ERR_NOTFOUND) {
+               reg = (fdt32_t *)fdt_getprop(blob, off, "reg", 0);
+               if (reg) {
+                       core_id = fdt_read_number(reg, addr_cells);
+                       if (!test_bit(id_to_core(core_id), &mask)) {
+                               fdt_del_node(blob, off);
+                               off = off_prev;
+                       }
+               }
+               off_prev = off;
+               off = fdt_node_offset_by_prop_value(blob, off_prev,
+                                                   "device_type", "cpu", 4);
+       }
+
 #if defined(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT) && \
        defined(CONFIG_SEC_FIRMWARE_ARMV8_PSCI)
        int node;
@@ -145,7 +172,7 @@ static void fdt_fixup_gic(void *blob)
 
        val = gur_in32(&gur->svr);
 
-       if (SVR_SOC_VER(val) != SVR_LS1043A) {
+       if (!IS_SVR_DEV(val, SVR_DEV(SVR_LS1043A))) {
                align_64k = 1;
        } else if (SVR_REV(val) != REV1_0) {
                val = scfg_in32(&scfg->gic_align) & (0x01 << GIC_ADDR_BIT);
@@ -327,7 +354,7 @@ static void fdt_fixup_msi(void *blob)
 
        rev = gur_in32(&gur->svr);
 
-       if (SVR_SOC_VER(rev) != SVR_LS1043A)
+       if (!IS_SVR_DEV(rev, SVR_DEV(SVR_LS1043A)))
                return;
 
        rev = SVR_REV(rev);
index fa93096c688c1ee3d52e02181d76c81580b1e72d..c089ceef3262f3032f7ffd623561ccda43a312bd 100644 (file)
@@ -37,9 +37,8 @@ ENTRY(get_gic_offset)
        ldr     x2, =DCFG_CCSR_SVR
        ldr     w2, [x2]
        rev     w2, w2
-       mov     w3, w2
-       ands    w3, w3, #SVR_WO_E << 8
-       mov     w4, #SVR_LS1043A << 8
+       lsr     w3, w2, #16
+       ldr     w4, =SVR_DEV(SVR_LS1043A)
        cmp     w3, w4
        b.ne    1f
        ands    w2, w2, #0xff
@@ -92,7 +91,7 @@ ENTRY(lowlevel_init)
         */
        bl      get_svr
        lsr     w0, w0, #16
-       ldr     w1, =SVR_DEV_LS2080A
+       ldr     w1, =SVR_DEV(SVR_LS2080A)
        cmp     w0, w1
        b.eq    1f
 
@@ -224,7 +223,7 @@ ENTRY(lowlevel_init)
         */
        bl      get_svr
        lsr     w0, w0, #16
-       ldr     w1, =SVR_DEV_LS2080A
+       ldr     w1, =SVR_DEV(SVR_LS2080A)
        cmp     w0, w1
        b.eq    1f
 
index 247f09e0f5ff69bd209aebac8ab5f9c01df704b2..09f64e7bd7e654e3b0d41bcf6515197edf071cfb 100644 (file)
@@ -76,8 +76,6 @@ struct cpu_type {
 #define SVR_LS2081A            0x870918
 #define SVR_LS2041A            0x870914
 
-#define SVR_DEV_LS2080A                0x8701
-
 #define SVR_MAJ(svr)           (((svr) >> 4) & 0xf)
 #define SVR_MIN(svr)           (((svr) >> 0) & 0xf)
 #define SVR_REV(svr)           (((svr) >> 0) & 0xff)
@@ -85,6 +83,8 @@ struct cpu_type {
 #define IS_E_PROCESSOR(svr)    (!((svr >> 8) & 0x1))
 #define IS_SVR_REV(svr, maj, min) \
                ((SVR_MAJ(svr) == (maj)) && (SVR_MIN(svr) == (min)))
+#define SVR_DEV(svr)           ((svr) >> 8)
+#define IS_SVR_DEV(svr, dev)   (((svr) >> 16) == (dev))
 
 /* ahci port register default value */
 #define AHCI_PORT_PHY_1_CFG    0xa003fffe
index c6c1c71202e1787f846ddbf7be19d09cb6822bc8..286f9d81995196b5d8852944ec7a97af35fa1c43 100644 (file)
@@ -35,25 +35,45 @@ int checkboard(void)
        /* Initialize i2c early for Serial flash bank information */
        i2c_set_bus_num(0);
 
-       if (i2c_read(I2C_MUX_IO1_ADDR, 1, 1, &in1, 1) < 0) {
+       if (i2c_read(I2C_MUX_IO_ADDR, I2C_MUX_IO_1, 1, &in1, 1) < 0) {
                printf("Error reading i2c boot information!\n");
                return 0; /* Don't want to hang() on this error */
        }
 
        puts("Version");
-       if ((in1 & (~__SW_REV_MASK)) == __SW_REV_A)
+       switch (in1 & SW_REV_MASK) {
+       case SW_REV_A:
                puts(": RevA");
-       else if ((in1 & (~__SW_REV_MASK)) == __SW_REV_B)
+               break;
+       case SW_REV_B:
                puts(": RevB");
-       else
+               break;
+       case SW_REV_C:
+               puts(": RevC");
+               break;
+       case SW_REV_C1:
+               puts(": RevC1");
+               break;
+       case SW_REV_C2:
+               puts(": RevC2");
+               break;
+       case SW_REV_D:
+               puts(": RevD");
+               break;
+       case SW_REV_E:
+               puts(": RevE");
+               break;
+       default:
                puts(": unknown");
+               break;
+       }
 
        printf(", boot from QSPI");
-       if ((in1 & (~__SW_BOOT_MASK)) == __SW_BOOT_EMU)
+       if ((in1 & SW_BOOT_MASK) == SW_BOOT_EMU)
                puts(": emu\n");
-       else if ((in1 & (~__SW_BOOT_MASK)) == __SW_BOOT_BANK1)
+       else if ((in1 & SW_BOOT_MASK) == SW_BOOT_BANK1)
                puts(": bank1\n");
-       else if ((in1 & (~__SW_BOOT_MASK)) == __SW_BOOT_BANK2)
+       else if ((in1 & SW_BOOT_MASK) == SW_BOOT_BANK2)
                puts(": bank2\n");
        else
                puts("unknown\n");
@@ -132,34 +152,49 @@ int board_init(void)
 
 int esdhc_status_fixup(void *blob, const char *compat)
 {
-       char esdhc0_path[] = "/soc/esdhc@1560000";
        char esdhc1_path[] = "/soc/esdhc@1580000";
-       u8 io = 0;
+       bool sdhc2_en = false;
        u8 mux_sdhc2;
-
-       do_fixup_by_path(blob, esdhc0_path, "status", "okay",
-                        sizeof("okay"), 1);
+       u8 io = 0;
 
        i2c_set_bus_num(0);
 
-       /*
-        * The I2C IO-expander for mux select is used to control the muxing
-        * of various onboard interfaces.
-        *
-        * IO1[3:2] indicates SDHC2 interface demultiplexer select lines.
-        *      00 - SDIO wifi
-        *      01 - GPIO (to Arduino)
-        *      10 - eMMC Memory
-        *      11 - SPI
-        */
-       if (i2c_read(I2C_MUX_IO1_ADDR, 0, 1, &io, 1) < 0) {
+       /* IO1[7:3] is the field of board revision info. */
+       if (i2c_read(I2C_MUX_IO_ADDR, I2C_MUX_IO_1, 1, &io, 1) < 0) {
                printf("Error reading i2c boot information!\n");
-               return 0; /* Don't want to hang() on this error */
+               return 0;
+       }
+
+       /* hwconfig method is used for RevD and later versions. */
+       if ((io & SW_REV_MASK) <= SW_REV_D) {
+#ifdef CONFIG_HWCONFIG
+               if (hwconfig("esdhc1"))
+                       sdhc2_en = true;
+#endif
+       } else {
+               /*
+                * The I2C IO-expander for mux select is used to control
+                * the muxing of various onboard interfaces.
+                *
+                * IO0[3:2] indicates SDHC2 interface demultiplexer
+                * select lines.
+                *      00 - SDIO wifi
+                *      01 - GPIO (to Arduino)
+                *      10 - eMMC Memory
+                *      11 - SPI
+                */
+               if (i2c_read(I2C_MUX_IO_ADDR, I2C_MUX_IO_0, 1, &io, 1) < 0) {
+                       printf("Error reading i2c boot information!\n");
+                       return 0;
+               }
+
+               mux_sdhc2 = (io & 0x0c) >> 2;
+               /* Enable SDHC2 only when use SDIO wifi and eMMC */
+               if (mux_sdhc2 == 2 || mux_sdhc2 == 0)
+                       sdhc2_en = true;
        }
 
-       mux_sdhc2 = (io & 0x0c) >> 2;
-       /* Enable SDHC2 only when use SDIO wifi and eMMC */
-       if (mux_sdhc2 == 2 || mux_sdhc2 == 0)
+       if (sdhc2_en)
                do_fixup_by_path(blob, esdhc1_path, "status", "okay",
                                 sizeof("okay"), 1);
        else
index 9daa00759083040c6c2c46f2a20d91e0ae40f844..96f183e1562f96bc12bab81791cabfc51300d58b 100644 (file)
@@ -18,6 +18,7 @@
 #include <environment.h>
 #include <asm/arch-fsl-layerscape/soc.h>
 #include <asm/arch/ppa.h>
+#include <hwconfig.h>
 
 #include "../common/qixis.h"
 #include "ls1088a_qixis.h"
@@ -296,6 +297,23 @@ void board_retimer_init(void)
        select_i2c_ch_pca9547(I2C_MUX_CH_DEFAULT);
 }
 
+#ifdef CONFIG_MISC_INIT_R
+int misc_init_r(void)
+{
+#ifdef CONFIG_TARGET_LS1088ARDB
+       u8 brdcfg5;
+
+       if (hwconfig("esdhc-force-sd")) {
+               brdcfg5 = QIXIS_READ(brdcfg[5]);
+               brdcfg5 &= ~BRDCFG5_SPISDHC_MASK;
+               brdcfg5 |= BRDCFG5_FORCE_SD;
+               QIXIS_WRITE(brdcfg[5], brdcfg5);
+       }
+#endif
+       return 0;
+}
+#endif
+
 int board_init(void)
 {
        init_final_memctl_regs();
@@ -360,7 +378,7 @@ void fdt_fixup_board_enet(void *fdt)
                return;
        }
 
-       if (get_mc_boot_status() == 0)
+       if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0))
                fdt_status_okay(fdt, offset);
        else
                fdt_status_fail(fdt, offset);
index 4790461b47a80dc54d6600fac898c28b1ab561b6..6cad396cff56be657509d85798706eb888c2b905 100644 (file)
 #define BRDCFG9_SFPTX_MASK             0x10
 #define BRDCFG9_SFPTX_SHIFT            4
 
+/* Definitions of QIXIS Registers for LS1088ARDB */
+
+/* BRDCFG5 */
+#define BRDCFG5_SPISDHC_MASK           0x0C
+#define BRDCFG5_FORCE_SD               0x08
+
 #endif
index 41417e9dc6914aed4b9a2f1b12b3f696702eec35..c60a090ea76f5d13dd4cdc0b62196cffc6839e4b 100644 (file)
@@ -90,7 +90,7 @@ void fdt_fixup_board_enet(void *fdt)
                return;
        }
 
-       if (get_mc_boot_status() == 0)
+       if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0))
                fdt_status_okay(fdt, offset);
        else
                fdt_status_fail(fdt, offset);
index 1842d14e87e674e65a66ae03c1014ce4f2913974..28c95383406414b3279562913ac2d5bc4beacfae 100644 (file)
@@ -295,7 +295,7 @@ void fdt_fixup_board_enet(void *fdt)
                return;
        }
 
-       if (get_mc_boot_status() == 0)
+       if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0))
                fdt_status_okay(fdt, offset);
        else
                fdt_status_fail(fdt, offset);
index 827bfad521d47414ff8236bdeb894f4f9ec36411..ee0f3a2069549dab735ec0d3f1f45627385cd0a7 100644 (file)
@@ -331,7 +331,7 @@ void fdt_fixup_board_enet(void *fdt)
                return;
        }
 
-       if (get_mc_boot_status() == 0)
+       if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0))
                fdt_status_okay(fdt, offset);
        else
                fdt_status_fail(fdt, offset);
index fe95f048be0cc8135e9e7d389216d1881d03acdc..42acff0de771b622ff65f6f9d28eebf08c8abdbf 100644 (file)
@@ -46,3 +46,4 @@ CONFIG_DM_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
+CONFIG_DISTRO_DEFAULTS=y
index 81702e374d979fe36768126ce99e28a531d21fe6..39d7a54d43d3f2fa68521c376f5b81f85d873535 100644 (file)
@@ -50,3 +50,4 @@ CONFIG_DM_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_STORAGE=y
+CONFIG_DISTRO_DEFAULTS=y
index 73bbae373efe71db16f20ffd941f691dd0690310..873323be0fc352d48abc937d89a371fdf8cc719e 100644 (file)
@@ -175,8 +175,8 @@ void qbman_version(u32 *major, u32 *minor)
         * LS2080A SoC and its personalities has qbman cotroller version 4.0
         * New SoCs like LS2088A, LS1088A has qbman conroller version 4.1
         */
-       svr_dev_id = get_svr() >> 16;
-       if (svr_dev_id == SVR_DEV_LS2080A) {
+       svr_dev_id = get_svr();
+       if (IS_SVR_DEV(svr_dev_id, SVR_DEV(SVR_LS2080A))) {
                *major = 4;
                *minor = 0;
        } else {
index 823beb32f6351bc8ddd81a2cfaaa06009334037c..6e2a464e0af3c729d0ea455696c1c33cabac24d2 100644 (file)
@@ -198,6 +198,11 @@ bool has_erratum_a010151(void)
        u32 svr = get_svr();
        u32 soc = SVR_SOC_VER(svr);
 
+#ifdef CONFIG_ARM64
+       if (IS_SVR_DEV(svr, SVR_DEV(SVR_LS1043A)))
+               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
+#endif
+
        switch (soc) {
 #ifdef CONFIG_ARM64
        case SVR_LS2080A:
@@ -209,8 +214,6 @@ bool has_erratum_a010151(void)
        case SVR_LS1046A:
        case SVR_LS1012A:
                return IS_SVR_REV(svr, 1, 0);
-       case SVR_LS1043A:
-               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
 #endif
 #ifdef CONFIG_ARCH_LS1021A
        case SOC_VER_LS1020:
index 57cae9498cbd20565a4664cb436491e814444546..db920bc5ccac4a20c5ddf386569bb535a6eaac8e 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
+
 /* Initial environment variables */
 #define CONFIG_EXTRA_ENV_SETTINGS              \
        "verify=no\0"                           \
        "kernel_load=0xa0000000\0"              \
        "kernel_size=0x2800000\0"               \
 
+#undef CONFIG_BOOTCOMMAND
 #define CONFIG_BOOTCOMMAND             "sf probe 0:0; sf read $kernel_load "\
                                        "$kernel_start $kernel_size && "\
                                        "bootm $kernel_load"
 /* Monitor Command Prompt */
 #define CONFIG_SYS_CBSIZE              512     /* Console I/O Buffer Size */
 #define CONFIG_SYS_LONGHELP
-#define CONFIG_CMDLINE_EDITING         1
 #define CONFIG_AUTO_COMPLETE
 #define CONFIG_SYS_MAXARGS             64      /* max command args */
 
index 5b4bf288e759cf6283e9f1f8f3c512cebaac7dd4..297c057292273f9e9b74290d17cc86c162e1a37e 100644 (file)
 #define CONFIG_SYS_MEMTEST_START       0x80000000
 #define CONFIG_SYS_MEMTEST_END         0x9fffffff
 
+#ifndef CONFIG_SPL_BUILD
+#undef BOOT_TARGET_DEVICES
+#define BOOT_TARGET_DEVICES(func) \
+       func(USB, usb, 0)
+#endif
+
 #undef CONFIG_EXTRA_ENV_SETTINGS
-#define CONFIG_EXTRA_ENV_SETTINGS              \
-       "verify=no\0"                           \
-       "loadaddr=0x80100000\0"                 \
-       "kernel_addr=0x100000\0"                \
-       "fdt_high=0xffffffffffffffff\0"         \
-       "initrd_high=0xffffffffffffffff\0"      \
-       "kernel_start=0x1000000\0"              \
-       "kernel_load=0x96000000\0"              \
-       "kernel_size=0x2800000\0"
+#define CONFIG_EXTRA_ENV_SETTINGS              \
+       "verify=no\0"                           \
+       "fdt_high=0xffffffffffffffff\0"         \
+       "initrd_high=0xffffffffffffffff\0"      \
+       "fdt_addr=0x00f00000\0"                 \
+       "kernel_addr=0x01000000\0"              \
+       "scriptaddr=0x80000000\0"               \
+       "fdtheader_addr_r=0x80100000\0"         \
+       "kernelheader_addr_r=0x80200000\0"      \
+       "kernel_addr_r=0x96000000\0"            \
+       "fdt_addr_r=0x90000000\0"               \
+       "load_addr=0x96000000\0"                \
+       "kernel_size=0x2800000\0"               \
+       "console=ttyS0,115200\0"                \
+       BOOTENV                                 \
+       "boot_scripts=ls1012afrdm_boot.scr\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"                                      \
+       "installer=load usb 0:2 $load_addr "    \
+                  "/flex_installer_arm64.itb; "        \
+                  "bootm $load_addr#$board\0"  \
+       "qspi_bootcmd=echo Trying load from qspi..;"    \
+               "sf probe && sf read $load_addr "       \
+               "$kernel_addr $kernel_size && bootm $load_addr#$board\0"
+
+#undef CONFIG_BOOTCOMMAND
+#define CONFIG_BOOTCOMMAND "run distro_bootcmd;run qspi_bootcmd"
 
 #define CONFIG_CMD_MEMINFO
 #define CONFIG_CMD_MEMTEST
index 89aa952dc61ff6a9adf7773458c051d87b3e8049..ab139b00dd7083f58f909307d4fd625adde8df64 100644 (file)
  * I2C IO expander
  */
 
-#define I2C_MUX_IO1_ADDR       0x24
-#define __SW_BOOT_MASK         0xFC
-#define __SW_BOOT_EMU          0x10
-#define __SW_BOOT_BANK1                0x00
-#define __SW_BOOT_BANK2                0x01
-#define __SW_REV_MASK          0x07
-#define __SW_REV_A             0xF8
-#define __SW_REV_B             0xF0
+#define I2C_MUX_IO_ADDR                0x24
+#define I2C_MUX_IO_0           0
+#define I2C_MUX_IO_1           1
+#define SW_BOOT_MASK           0x03
+#define SW_BOOT_EMU            0x02
+#define SW_BOOT_BANK1          0x00
+#define SW_BOOT_BANK2          0x01
+#define SW_REV_MASK            0xF8
+#define SW_REV_A               0xF8
+#define SW_REV_B               0xF0
+#define SW_REV_C               0xE8
+#define SW_REV_C1              0xE0
+#define SW_REV_C2              0xD8
+#define SW_REV_D               0xD0
+#define SW_REV_E               0xC8
 
 /*  MMC  */
 #ifdef CONFIG_MMC
 #define CONFIG_SYS_MEMTEST_START       0x80000000
 #define CONFIG_SYS_MEMTEST_END         0x9fffffff
 
+#undef CONFIG_EXTRA_ENV_SETTINGS
+#define CONFIG_EXTRA_ENV_SETTINGS              \
+       "verify=no\0"                           \
+       "fdt_high=0xffffffffffffffff\0"         \
+       "initrd_high=0xffffffffffffffff\0"      \
+       "fdt_addr=0x00f00000\0"                 \
+       "kernel_addr=0x01000000\0"              \
+       "scriptaddr=0x80000000\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"                \
+       BOOTENV                                 \
+       "boot_scripts=ls1012ardb_boot.scr\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"                                      \
+       "installer=load mmc 0:2 $load_addr "    \
+                  "/flex_installer_arm64.itb; "        \
+                  "bootm $load_addr#$board\0"  \
+       "qspi_bootcmd=echo Trying load from qspi..;"    \
+               "sf probe && sf read $load_addr "       \
+               "$kernel_addr $kernel_size && bootm $load_addr#$board\0"
+
+#undef CONFIG_BOOTCOMMAND
+#define CONFIG_BOOTCOMMAND "run distro_bootcmd;run qspi_bootcmd"
 
 #include <asm/fsl_secure_boot.h>
 
index f510f2457a58d009c7ec3a488487bbad1b3b142e..c3b0f4d47edcf34c8c301bddac860d8d67a617fa 100644 (file)
@@ -176,12 +176,13 @@ unsigned long get_board_ddr_clk(void);
                                        CSOR_NOR_TRHZ_80)
 #define CONFIG_SYS_NOR_FTIM0           (FTIM0_NOR_TACSE(0x4) | \
                                        FTIM0_NOR_TEADC(0x5) | \
+                                       FTIM0_NOR_TAVDS(0x6) | \
                                        FTIM0_NOR_TEAHC(0x5))
 #define CONFIG_SYS_NOR_FTIM1           (FTIM1_NOR_TACO(0x35) | \
                                        FTIM1_NOR_TRAD_NOR(0x1a) | \
                                        FTIM1_NOR_TSEQRAD_NOR(0x13))
-#define CONFIG_SYS_NOR_FTIM2           (FTIM2_NOR_TCS(0x4) | \
-                                       FTIM2_NOR_TCH(0x4) | \
+#define CONFIG_SYS_NOR_FTIM2           (FTIM2_NOR_TCS(0x8) | \
+                                       FTIM2_NOR_TCH(0x8) | \
                                        FTIM2_NOR_TWPH(0xe) | \
                                        FTIM2_NOR_TWP(0x1c))
 #define CONFIG_SYS_NOR_FTIM3           0
index 1da8153a4e911447b2d159bc6ec7ccb6d9538715..1438bec1afdb16d442f2376dc2819b2837b76100 100644 (file)
@@ -11,6 +11,8 @@
 
 #define CONFIG_DISPLAY_BOARDINFO_LATE
 
+#define CONFIG_MISC_INIT_R
+
 #if defined(CONFIG_QSPI_BOOT)
 #define CONFIG_ENV_SIZE                        0x2000          /* 8KB */
 #define CONFIG_ENV_OFFSET              0x300000        /* 3MB */
index f8978693a4f468819c35176ac29d12edc99a6100..576785e4b67ca2e5ec0a918e0a143db12ad5a024 100644 (file)
@@ -237,7 +237,7 @@ unsigned long long get_qixis_addr(void);
 #endif
 #define CONFIG_SYS_SPL_MALLOC_SIZE     0x00100000
 #define CONFIG_SYS_SPL_MALLOC_START    0x80200000
-#define CONFIG_SYS_MONITOR_LEN         (640 * 1024)
+#define CONFIG_SYS_MONITOR_LEN         (1024 * 1024)
 
 #define CONFIG_SYS_BOOTM_LEN   (64 << 20)      /* Increase max gunzip size */