]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - config/u-boot/boot.cmd
u-boot: split rpi aarch64 quirk into parts
[people/pmueller/ipfire-2.x.git] / config / u-boot / boot.cmd
CommitLineData
592896d2
AF
1if test ${boot_dev} = ""; then
2 setenv boot_dev mmc;
3 setenv root_dev /dev/mmcblk0p3;
4fi;
5
e47e01f6
AF
6if test ${dev_num} = ""; then
7 setenv dev_num 0;
8fi;
9
592896d2 10if test ${boot_part} = ""; then
e47e01f6 11 setenv boot_part ${dev_num}:1;
592896d2
AF
12fi;
13
777ba819
AF
14if test ${cpu} = "armv8"; then
15 echo ;
592896d2 16else
777ba819 17 setenv kernel_type -multi;
91b4ba6d 18fi;
592896d2 19
2a0947f2 20# Import uEnv txt...
592896d2 21if fatload ${boot_dev} ${boot_part} ${kernel_addr_r} uEnv.txt; then
2a0947f2
AF
22 echo Load uEnv.txt...;
23 env import -t ${kernel_addr_r} ${filesize};
24 if test "${uenvcmd}" = ""; then
25 echo ...;
26 else
27 echo Boot with uEnv.txt...;
28 run uenvcmd;
29 fi;
30fi;
31
32# for compatiblity reasons set DTBSUNXI if we run on sunxi
33if test "${board}" = "sunxi"; then
34 setenv fdtfile ${DTBSUNXI};
35fi;
36
91b4ba6d
AF
37# Quirk for RPi on aarch64 becuase u-boot cannot use the
38# initrd on aarch64 and without ramdisk no UUID
39if test ${cpu} = "armv8"; then
40 if test ${board} = "rpi"; then
41 setenv root_dev /dev/mmcblk0p3;
42 fi;
43fi;
44
2a0947f2
AF
45# Check if serial console is enabled
46if test "${SERIAL-CONSOLE}" = "ON"; then
47 if test ${console} = ""; then
48 if test "${board}" = "rpi"; then
0487a49f 49 if test ${cpu} = "armv8"; then
ae84d374 50 if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b-plus.dtb"; then
0487a49f
AF
51 setenv console ttyS1,115200n8;
52 else
53 if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b.dtb"; then
54 setenv console ttyS1,115200n8;
55 else
56 setenv console ttyAMA0,115200n8;
57 fi;
58 fi;
2a0947f2 59 else
0487a49f 60 if test "${fdtfile}" = "bcm2837-rpi-3-b-plus.dtb"; then
959b404e
AF
61 setenv console ttyS1,115200n8;
62 else
0487a49f
AF
63 if test "${fdtfile}" = "bcm2837-rpi-3-b.dtb"; then
64 setenv console ttyS1,115200n8;
65 else
66 setenv console ttyAMA0,115200n8;
67 fi;
959b404e 68 fi;
2a0947f2
AF
69 fi;
70 else
71 setenv console ttyS0,115200n8;
72 fi;
73 fi
74 echo Set console to ${console};
a06f9daf 75 setenv bootargs console=${console} root=${root_dev} rootwait;
2a0947f2
AF
76else
77 echo Set console to tty1 ;
a06f9daf 78 setenv bootargs console=tty1 root=${root_dev} rootwait;
2a0947f2
AF
79fi;
80
81setenv fdt_high ffffffff;
0487a49f
AF
82fatload ${boot_dev} ${boot_part} ${kernel_addr_r} vmlinuz-${KVER}-ipfire${kernel_type};
83fatload ${boot_dev} ${boot_part} ${fdt_addr_r} dtb-${KVER}-ipfire${kernel_type}/${fdtfile};
e2a3147f
AF
84
85if test "${FDTCMDS}" = ""; then
86 echo ;
87else
88 fdt addr ${fdt_addr_r};
89 run FDTCMDS;
90fi;
91
592896d2 92setenv ramdisk_addr ${ramdisk_addr_r}
0487a49f 93if fatload ${boot_dev} ${boot_part} ${ramdisk_addr} uInit-${KVER}-ipfire${kernel_type}; then
2a0947f2
AF
94 echo Ramdisk loaded...;
95else
96 echo Ramdisk not loaded...;
592896d2 97 setenv ramdisk_addr -;
a62be8a2
AF
98fi;
99
100# Quirk for RPi on aarch64 becuase u-boot cannot use the
101# initrd on aarch64
102if test ${cpu} = "armv8"; then
103 if test ${board} = "rpi"; then
91b4ba6d 104 setenv ramdisk_addr -;
a62be8a2
AF
105 fi;
106fi;
107
592896d2 108bootz ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
963f6e97 109booti ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
2a0947f2 110
66811906
AF
111bootz ${kernel_addr_r} - ${fdt_addr_r};
112booti ${kernel_addr_r} - ${fdt_addr_r};
113
2a0947f2
AF
114# Recompile with:
115# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr