aboutsummaryrefslogtreecommitdiff
path: root/board/k+p/bootscripts/tpcboot.cmd
blob: eac79dc890fcb7c9ee401821ccb355e12a429f8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# 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