blob: da3d892f91d40045d659041c1444225e50290860 (
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
|
/* SPDX-License-Identifier: GPL-2.0+ */
loadaddr=0x90000000
bootcmd=
echo "Booting RAUC A/B system";
setenv devtype mmc; setenv devnum 0;
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B";
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3;
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3;
setenv raucslot;
for BOOT_SLOT in "${BOOT_ORDER}"; do
if test "x${raucslot}" != "x"; then
echo "skip remaining slots...";
elif test "x${BOOT_SLOT}" = "xA"; then
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1;
echo "Found valid RAUC slot A";
setenv raucslot "rauc.slot=A";
setenv raucpart A; setenv distro_bootpart 6;
fi;
elif test "x${BOOT_SLOT}" = "xB"; then
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1;
echo "Found valid RAUC slot B";
setenv raucslot "rauc.slot=B";
setenv raucpart B; setenv distro_bootpart 7;
fi;
fi;
done;
if test -n "${raucslot}"; then
setenv bootargs console=ttyMSM1 root=PARTLABEL=rootfs_${raucpart} rw rootwait ${raucslot};
saveenv;
else
echo "No valid RAUC slot found. Resetting tries to 3";
setenv BOOT_A_LEFT 3;
setenv BOOT_B_LEFT 3;
saveenv;
reset;
fi;
load ${devtype} ${devnum}:${distro_bootpart} ${loadaddr} /boot/fitImage && bootm;
|