]> git.sur5r.net Git - u-boot/blobdiff - include/configs/display5.h
display5: config: Reset the board when bootm fails
[u-boot] / include / configs / display5.h
index cda03d9f9b8965aac3b72fb7107d2c434db1f73a..420ced73c276971a2263285f6e1758ce627af89b 100644 (file)
@@ -1,8 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2017
  * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #ifndef __CONFIG_H
@@ -34,6 +33,7 @@
  * 0x140000 - 0x940000 : SPI.fitImage-recovery (8MiB)
  * 0x940000 - 0xD40000 : SPI.swupdate-kernel-FIT (4MiB)
  * 0xD40000 - 0x1540000 : SPI.swupdate-initramfs  (8MiB)
+ * 0x1540000 - 0x1640000 : SPI.factory  (1MiB)
  */
 
 #ifndef CONFIG_SPL_BUILD
 #define CONFIG_BAUDRATE                        115200
 
 #ifndef CONFIG_BOOTCOMMAND
-#define CONFIG_BOOTCOMMAND "run boot_mmc"
+#define CONFIG_BOOTCOMMAND "if test ${BOOT_FROM} = FACTORY; then " \
+            "run factory_nfs;" \
+       "else " \
+            "run boot_mmc;" \
+       "fi"
 #endif
 
 #define PARTS_DEFAULT \
        "sf probe;" \
        "sf read ${loadaddr} swu-kernel;" \
        "sf read ${loadaddr_swu_initramfs} swu-initramfs;" \
-       "bootm ${loadaddr} ${loadaddr_swu_initramfs};"
+       "bootm ${loadaddr} ${loadaddr_swu_initramfs};reset;"
 
 #define KERNEL_RECOVERY_PROCEDURE \
        "echo '#######################';" \
        "echo '#######################';" \
        "sf probe;" \
        "sf read ${loadaddr} lin-recovery;" \
-       "bootm;"
+       "bootm;reset;"
 
 #define SETUP_BOOTARGS \
        "run set_rootfs_part;" \
                "sf write ${loadaddr} 0x400 ${filesize};" \
        "fi\0" \
 
+#define TFTP_UPDATE_SPINOR \
+       "spinorfile=core-image-lwn-display5.spinor\0" \
+       "spinorsize=0x2000000\0" \
+       "tftp_sf_img=" \
+           "if tftp ${loadaddr} ${spinorfile}; then " \
+               "sf probe;" \
+               "sf erase 0x0 ${spinorsize};" \
+               "sf write ${loadaddr} 0x0 ${filesize};" \
+       "fi\0" \
+
 #define CONFIG_EXTRA_ENV_SETTINGS        \
        PARTS_DEFAULT \
        "display=tianma-tm070-800x480\0" \
        "up=run tftp_sf_SPL; run tftp_sf_uboot\0" \
        "download_kernel=" \
                "tftpboot ${loadaddr} ${kernel_file};\0" \
+       "factory_nfs=" \
+            "setenv ipaddr 192.168.1.102;" \
+            "setenv gatewayip 192.168.1.1;" \
+            "setenv netmask 255.255.255.0;" \
+            "setenv serverip 192.168.1.2;" \
+            "echo BOOT: FACTORY (LEG);" \
+            "run boot_nfs\0" \
        "boot_kernel_recovery=" KERNEL_RECOVERY_PROCEDURE "\0" \
        "boot_swu_recovery=" SWUPDATE_RECOVERY_PROCEDURE "\0" \
        "recovery=" \
        "if run download_kernel; then "   \
             "setenv bootargs console=${console} " \
             "root=/dev/mmcblk0p2 rootwait;" \
-            "bootm ${loadaddr} - ${fdtaddr};" \
+            "bootm ${loadaddr} - ${fdtaddr};reset;" \
        "fi\0" \
        "addip=setenv bootargs ${bootargs} " \
        "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:" \
             "run addip;"         \
             "setenv bootargs ${bootargs} console=${console};"    \
             "setenv fdt_conf imx6q-${board}-${display}.dtb; " \
-            "bootm ${loadaddr}#conf@${fdt_conf};" \
+            "bootm ${loadaddr}#conf@${fdt_conf};reset;" \
        "fi\0" \
        "falcon_setup=" \
        "if mmc dev ${mmcdev}; then "     \
        "boot_mmc=" \
        "if mmc dev ${mmcdev}; then "     \
             SETUP_BOOTARGS \
-            "bootm ${loadaddr}#conf@${fdt_conf};" \
+            "bootm ${loadaddr}#conf@${fdt_conf};reset;" \
        "fi\0" \
        "set_kernel_part=" \
        "if test ${BOOT_FROM} = ACTIVE; then " \
        "BOOT_FROM=ACTIVE\0" \
        "BOOT_FROM_RECOVERY=Linux\0" \
        TFTP_UPDATE_BOOTLOADER \
+       TFTP_UPDATE_SPINOR \
        "kernel_part_active=1\0" \
        "kernel_part_backup=3\0" \
        __TFTP_UPDATE_KERNEL \