|
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
|
|
#
|
|
|
|
# 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
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
# 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
|