boot: script: The boot.scr file for K+P's boards
authorLukasz Majewski <lukma@denx.de>
Thu, 5 Apr 2018 07:04:39 +0000 (09:04 +0200)
committerStefano Babic <sbabic@denx.de>
Sun, 15 Apr 2018 09:47:35 +0000 (11:47 +0200)
By using this file one can avoid cluttering <board>.h file with u-boot
HUSH commands necessary for booting target device.

With such approach the commands are stored only in one place and can be
reused if needed.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Stefano Babic <sbabic@denx.de>
board/k+p/bootscripts/tpcboot.cmd [new file with mode: 0644]

diff --git a/board/k+p/bootscripts/tpcboot.cmd b/board/k+p/bootscripts/tpcboot.cmd
new file mode 100644 (file)
index 0000000..f6d59a1
--- /dev/null
@@ -0,0 +1,96 @@
+#
+# Copyright (C) 2018
+# Lukasz Majewski, DENX Software Engineering, lukma@denx.de
+#
+#
+# This is an example file to generate boot.scr - a boot script for U-Boot
+# Generate boot.scr:
+# ./tools/mkimage -c none -A arm -T script -d tpcboot.cmd boot.scr
+#
+# SPDX-License-Identifier:     GPL-2.0+
+
+
+# Input envs (to be set in environment)
+# Mandatory:
+# kernel_file = "fitImage"
+# boardname = "XXXX"  // set automatically in u-boot
+# boardsoc = "imx6q"  // set automatically in u-boot
+#
+# Optional:
+# bootcmd_force = "nfs" "tftp_kernel"
+# If not set - eMMC/SD boot
+
+# Generic setup
+setenv mmcroot "/dev/mmcblk${devnum}p2 rootwait rw"
+setenv displayargs ""
+setenv mmcargs "setenv bootargs console=${console} ${smp} root=${mmcroot} \
+       ${displayargs}"
+setenv boot_fitImage "
+       setenv fdt_conf 'conf@${boardsoc}-${boardname}.dtb';
+       setenv itbcfg "\"#\${fdt_conf}\"";
+       print itbcfg;
+       bootm '${loadaddr}${itbcfg}';"
+
+#------------------------------------------------------------
+#
+# Provide default 'bootcmd' command
+#------------------------------------------------------------
+setenv bootcmd "
+if test -e ${devtype} ${devnum}:${distro_bootpart} ${kernel_file}; then
+       echo Found kernel image: ${kernel_file};
+       if load ${devtype} ${devnum}:${distro_bootpart} ${loadaddr} \
+          ${kernel_file}; then
+               run mmcargs;
+               run boot_fitImage;
+       fi;
+fi;"
+
+#------------------------------------------------------------
+#
+# Provide 'boot_tftp_kernel' command
+#------------------------------------------------------------
+setenv download_kernel "tftpboot ${loadaddr} ${kernel_file}"
+
+setenv boot_tftp_kernel "
+if run download_kernel; then
+       run mmcargs;
+       run boot_fitImage;
+fi"
+
+#------------------------------------------------------------
+#
+# Provide 'boot_nfs' command
+#------------------------------------------------------------
+setenv rootpath "/srv/tftp/KP/rootfs"
+setenv nfsargs "setenv bootargs root=/dev/nfs rw \
+       nfsroot=${serverip}:${rootpath},nolock,nfsvers=3"
+setenv addip "setenv bootargs ${bootargs} \
+       ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:\
+       ${hostname}:eth0:on"
+
+setenv boot_nfs "
+if run download_kernel; then
+       run nfsargs;
+       run addip;
+       setenv bootargs ${bootargs} console=${console};
+
+       run boot_fitImage;
+fi"
+
+#------------------------------------------------------------
+#
+# Set correct boot flow
+#------------------------------------------------------------
+
+setenv bcmd "
+if test ! -n ${bootcmd_force}; then
+       run bootcmd;
+fi;
+if test ${bootcmd_force} = nfs; then
+       run boot_nfs;
+else if test ${bootcmd_force} = tftp_kernel; then
+       run boot_tftp_kernel;
+     fi;
+fi"
+
+run bcmd