summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaju Kumar Pothuraju <raju.kumar-pothuraju@xilinx.com>2021-01-05 20:20:17 +0530
committerSai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>2021-07-14 14:19:37 -0700
commitac151d926404eca70810dbd1ff8508ad23895f13 (patch)
treefd18c0471eb34b517cac7810591ae6a9d2c6a788
parente1e557428ca6432227ae237f8183e239ea487810 (diff)
downloadmeta-xilinx-ac151d926404eca70810dbd1ff8508ad23895f13.tar.gz
u-boot-zynq-scr: Add microblaze support for boot.scr
Adding microblaze support for boot.scr and moving the generic boot script from petalinux to yocto layers. The generic boot script will read the boot_target variable on uboot and based on the bootmode it will execute the boot commands. Signed-off-by: Raju Kumar Pothuraju <raju.kumar-pothuraju@xilinx.com>
-rw-r--r--meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb159
-rw-r--r--meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.generic68
-rw-r--r--meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.ubifs55
3 files changed, 273 insertions, 9 deletions
diff --git a/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb b/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb
index e8b91922..aecc36df 100644
--- a/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb
+++ b/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr.bb
@@ -12,6 +12,7 @@ COMPATIBLE_MACHINE ?= "^$"
12COMPATIBLE_MACHINE_zynqmp = "zynqmp" 12COMPATIBLE_MACHINE_zynqmp = "zynqmp"
13COMPATIBLE_MACHINE_zynq = "zynq" 13COMPATIBLE_MACHINE_zynq = "zynq"
14COMPATIBLE_MACHINE_versal = "versal" 14COMPATIBLE_MACHINE_versal = "versal"
15COMPATIBLE_MACHINE_microblaze = "microblaze"
15 16
16KERNELDT = "${@os.path.basename(d.getVar('KERNEL_DEVICETREE').split(' ')[0]) if d.getVar('KERNEL_DEVICETREE') else ''}" 17KERNELDT = "${@os.path.basename(d.getVar('KERNEL_DEVICETREE').split(' ')[0]) if d.getVar('KERNEL_DEVICETREE') else ''}"
17DEVICE_TREE_NAME ?= "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', d.getVar('KERNELDT'), d)}" 18DEVICE_TREE_NAME ?= "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', d.getVar('KERNELDT'), d)}"
@@ -22,14 +23,24 @@ RAMDISK_IMAGE_zynq ?= "uramdisk.image.gz"
22KERNEL_BOOTCMD_zynqmp ?= "booti" 23KERNEL_BOOTCMD_zynqmp ?= "booti"
23KERNEL_BOOTCMD_zynq ?= "bootm" 24KERNEL_BOOTCMD_zynq ?= "bootm"
24KERNEL_BOOTCMD_versal ?= "booti" 25KERNEL_BOOTCMD_versal ?= "booti"
26KERNEL_BOOTCMD_microblaze ?= "bootm"
25 27
26BOOTMODE ?= "sd" 28BOOTMODE ?= "sd"
29BOOTFILE_EXT ?= ".${SOC_FAMILY}"
30
31#Make this value to "1" to skip appending base address to ddr offsets.
32SKIP_APPEND_BASEADDR ?= "0"
33
34DDR_BASEADDR ?= "0x0"
35DDR_BASEADDR_microblaze ?= "0x80000000"
27 36
28SRC_URI = " \ 37SRC_URI = " \
29 file://boot.cmd.sd.zynq \ 38 file://boot.cmd.sd.zynq \
30 file://boot.cmd.sd.zynqmp \ 39 file://boot.cmd.sd.zynqmp \
31 file://boot.cmd.sd.versal \ 40 file://boot.cmd.sd.versal \
32 file://boot.cmd.qspi.versal \ 41 file://boot.cmd.qspi.versal \
42 file://boot.cmd.generic \
43 file://boot.cmd.ubifs \
33 file://pxeboot.pxe \ 44 file://pxeboot.pxe \
34 " 45 "
35PACKAGE_ARCH = "${MACHINE_ARCH}" 46PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -38,16 +49,95 @@ UBOOTSCR_BASE_NAME ?= "${PN}-${PKGE}-${PKGV}-${PKGR}${IMAGE_VERSION_SUFFIX}"
38UBOOTPXE_CONFIG ?= "pxelinux.cfg" 49UBOOTPXE_CONFIG ?= "pxelinux.cfg"
39UBOOTPXE_CONFIG_NAME = "${UBOOTPXE_CONFIG}${IMAGE_VERSION_SUFFIX}" 50UBOOTPXE_CONFIG_NAME = "${UBOOTPXE_CONFIG}${IMAGE_VERSION_SUFFIX}"
40 51
41DEVICETREE_ADDRESS_zynqmp ?= "0x100000" 52DEVICETREE_ADDRESS ?= "${@append_baseaddr(d,d.getVar('DEVICETREE_OFFSET'))}"
42DEVICETREE_ADDRESS_zynq ?= "0x2000000" 53
43DEVICETREE_ADDRESS_versal ?= "0x1000" 54DEVICETREE_OFFSET_microblaze ?= "0x1e00000"
44KERNEL_LOAD_ADDRESS_zynqmp ?= "0x200000" 55DEVICETREE_OFFSET_zynqmp ?= "0x100000"
45KERNEL_LOAD_ADDRESS_zynq ?= "0x2080000" 56DEVICETREE_OFFSET_zynq ?= "0x2000000"
46KERNEL_LOAD_ADDRESS_versal ?= "0x80000" 57DEVICETREE_OFFSET_versal ?= "0x1000"
58
59KERNEL_LOAD_ADDRESS ?= "${@append_baseaddr(d,d.getVar('KERNEL_OFFSET'))}"
60
61KERNEL_OFFSET_microblaze ?= "0x0"
62KERNEL_OFFSET_zynqmp ?= "0x200000"
63KERNEL_OFFSET_zynq ?= "0x2080000"
64KERNEL_OFFSET_versal ?= "0x80000"
65
66KERNEL_IMAGE ?= "${KERNEL_IMAGETYPE}"
67
68RAMDISK_IMAGE_ADDRESS ?= "${@append_baseaddr(d,d.getVar('RAMDISK_OFFSET'))}"
69
70RAMDISK_OFFSET_microblaze ?= "0x2e00000"
71RAMDISK_OFFSET_zynq ?= "0x4000000"
72RAMDISK_OFFSET_zynqmp ?= "0x4000000"
73RAMDISK_OFFSET_versal ?= "0x6000000"
74
75FIT_IMAGE_LOAD_ADDRESS ?= "${@append_baseaddr(d,d.getVar('FIT_IMAGE_OFFSET'))}"
76FIT_IMAGE_OFFSET ?= "0x10000000"
77FIT_IMAGE ?= "image.ub"
78
79## Below offsets and sizes are based on 32MB QSPI Memory for zynq
80## For MB
81## Load boot.scr at 0xFC0000 -> 15MB of QSPI/NAND Memory
82QSPI_KERNEL_OFFSET_microblaze ?= "0xBC0000"
83QSPI_KERNEL_SIZE_microblaze ?= "0x500000"
84QSPI_RAMDISK_SIZE_microblaze ?= "0xA00000"
85
86## For zynq
87## Load boot.scr at 0xFC0000 -> 15MB of QSPI/NAND Memory
88QSPI_KERNEL_OFFSET_zynq ?= "0x1000000"
89QSPI_RAMDISK_OFFSET_zynq ?= "0x1580000"
90
91NAND_KERNEL_OFFSET_zynq ?= "0x1000000"
92NAND_RAMDISK_OFFSET_zynq ?= "0x4600000"
93
94QSPI_KERNEL_SIZE_zynq ?= "0x500000"
95QSPI_RAMDISK_SIZE_zynq ?= "0xA00000"
47 96
48RAMDISK_IMAGE_ADDRESS_zynq ?= "0x4000000" 97NAND_KERNEL_SIZE ?= "0x3200000"
49RAMDISK_IMAGE_ADDRESS_versal ?= "0x6000000" 98NAND_RAMDISK_SIZE ?= "0x3200000"
50 99
100## Below offsets and sizes are based on 128MB QSPI Memory for zynqmp/versal
101## For zynqMP
102## Load boot.scr at 0x3E80000 -> 62MB of QSPI/NAND Memory
103QSPI_KERNEL_OFFSET ?= "0xF00000"
104QSPI_KERNEL_OFFSET_zynqmpdr ?= "0x3F00000"
105QSPI_RAMDISK_OFFSET ?= "0x4000000"
106QSPI_RAMDISK_OFFSET_zynqmpdr ?= "0x5D00000"
107
108NAND_KERNEL_OFFSET_zynqmp ?= "0x4100000"
109NAND_RAMDISK_OFFSET_zynqmp ?= "0x7800000"
110
111QSPI_KERNEL_SIZE_zynqmp ?= "0x1D00000"
112QSPI_RAMDISK_SIZE ?= "0x4000000"
113QSPI_RAMDISK_SIZE_zynqmpdr ?= "0x1D00000"
114
115## For versal
116## Load boot.scr at 0x7F80000 -> 127MB of QSPI/NAND Memory
117QSPI_KERNEL_OFFSET_versal ?= "0xF00000"
118QSPI_RAMDISK_OFFSET_versal ?= "0x2E00000"
119
120NAND_KERNEL_OFFSET_versal ?= "0x4100000"
121NAND_RAMDISK_OFFSET_versal ?= "0x8200000"
122
123QSPI_KERNEL_SIZE_versal ?= "0x1D00000"
124QSPI_RAMDISK_SIZE_versal ?= "0x4000000"
125
126QSPI_KERNEL_IMAGE_microblaze ?= "image.ub"
127QSPI_KERNEL_IMAGE_zynq ?= "image.ub"
128QSPI_KERNEL_IMAGE_zynqmp ?= "image.ub"
129QSPI_KERNEL_IMAGE_versal ?= "image.ub"
130
131NAND_KERNEL_IMAGE ?= "image.ub"
132
133QSPI_FIT_IMAGE_LOAD_ADDRESS ?= "${@append_baseaddr(d,"0x10000000")}"
134QSPI_FIT_IMAGE_SIZE ?= "0x6400000"
135QSPI_FIT_IMAGE_SIZE_zynqmpdr ?= "0x3F00000"
136QSPI_FIT_IMAGE_SIZE_zynq ?= "0xF00000"
137QSPI_FIT_IMAGE_SIZE_microblaze ?= "0xF00000"
138
139NAND_FIT_IMAGE_LOAD_ADDRESS ?= "${@append_baseaddr(d,"0x10000000")}"
140NAND_FIT_IMAGE_SIZE ?= "0x6400000"
51 141
52SDBOOTDEV ?= "0" 142SDBOOTDEV ?= "0"
53 143
@@ -56,6 +146,38 @@ BITSTREAM_LOAD_ADDRESS ?= "0x100000"
56do_configure[noexec] = "1" 146do_configure[noexec] = "1"
57do_install[noexec] = "1" 147do_install[noexec] = "1"
58 148
149python () {
150 baseaddr = d.getVar('DDR_BASEADDR') or "0x0"
151 if baseaddr == "0x0":
152 d.setVar('PRE_BOOTENV','')
153 else:
154 soc_family = d.getVar('SOC_FAMILY') or ""
155 if soc_family == "zynqmp":
156 fdt_high = "0x10000000"
157 elif soc_family == "zynq":
158 fdt_high = "0x20000000"
159 elif soc_family == "versal":
160 fdt_high = "0x70000000"
161 else:
162 fdt_high = ""
163
164 if fdt_high:
165 basefdt_high = append_baseaddr(d,fdt_high)
166 bootenv = "setenv fdt_high " + basefdt_high
167 d.appendVar('PRE_BOOTENV',bootenv)
168}
169
170def append_baseaddr(d,offset):
171 skip_append = d.getVar('SKIP_APPEND_BASEADDR') or ""
172 if skip_append == "1":
173 return offset
174 import subprocess
175 baseaddr = d.getVar('DDR_BASEADDR') or "0x0"
176 subcmd = "$((%s+%s));" % (baseaddr,offset)
177 cmd = "printf '0x%08x' " + str(subcmd)
178 output = subprocess.check_output(cmd, shell=True).decode("utf-8")
179 return output
180
59def get_bitstream_load_type(d): 181def get_bitstream_load_type(d):
60 if boot_files_bitstream(d)[1] : 182 if boot_files_bitstream(d)[1] :
61 return "loadb" 183 return "loadb"
@@ -75,7 +197,26 @@ do_compile() {
75 -e 's/@@BITSTREAM_LOAD_ADDRESS@@/${BITSTREAM_LOAD_ADDRESS}/g' \ 197 -e 's/@@BITSTREAM_LOAD_ADDRESS@@/${BITSTREAM_LOAD_ADDRESS}/g' \
76 -e 's/@@BITSTREAM_IMAGE@@/${@boot_files_bitstream(d)[0]}/g' \ 198 -e 's/@@BITSTREAM_IMAGE@@/${@boot_files_bitstream(d)[0]}/g' \
77 -e 's/@@BITSTREAM_LOAD_TYPE@@/${@get_bitstream_load_type(d)}/g' \ 199 -e 's/@@BITSTREAM_LOAD_TYPE@@/${@get_bitstream_load_type(d)}/g' \
78 "${WORKDIR}/boot.cmd.${BOOTMODE}.${SOC_FAMILY}" > "${WORKDIR}/boot.cmd" 200 -e 's/@@QSPI_KERNEL_OFFSET@@/${QSPI_KERNEL_OFFSET}/' \
201 -e 's/@@NAND_KERNEL_OFFSET@@/${NAND_KERNEL_OFFSET}/' \
202 -e 's/@@QSPI_KERNEL_SIZE@@/${QSPI_KERNEL_SIZE}/' \
203 -e 's/@@NAND_KERNEL_SIZE@@/${NAND_KERNEL_SIZE}/' \
204 -e 's/@@QSPI_RAMDISK_OFFSET@@/${QSPI_RAMDISK_OFFSET}/' \
205 -e 's/@@NAND_RAMDISK_OFFSET@@/${NAND_RAMDISK_OFFSET}/' \
206 -e 's/@@QSPI_RAMDISK_SIZE@@/${QSPI_RAMDISK_SIZE}/' \
207 -e 's/@@NAND_RAMDISK_SIZE@@/${NAND_RAMDISK_SIZE}/' \
208 -e 's/@@KERNEL_IMAGE@@/${KERNEL_IMAGE}/' \
209 -e 's/@@QSPI_KERNEL_IMAGE@@/${QSPI_KERNEL_IMAGE}/' \
210 -e 's/@@NAND_KERNEL_IMAGE@@/${NAND_KERNEL_IMAGE}/' \
211 -e 's/@@QSPI_FIT_IMAGE_LOAD_ADDRESS@@/${QSPI_FIT_IMAGE_LOAD_ADDRESS}/' \
212 -e 's/@@FIT_IMAGE_LOAD_ADDRESS@@/${FIT_IMAGE_LOAD_ADDRESS}/' \
213 -e 's/@@QSPI_FIT_IMAGE_SIZE@@/${QSPI_FIT_IMAGE_SIZE}/' \
214 -e 's/@@NAND_FIT_IMAGE_LOAD_ADDRESS@@/${NAND_FIT_IMAGE_LOAD_ADDRESS}/' \
215 -e 's/@@NAND_FIT_IMAGE_SIZE@@/${NAND_FIT_IMAGE_SIZE}/' \
216 -e 's/@@FIT_IMAGE@@/${FIT_IMAGE}/' \
217 -e 's/@@PRE_BOOTENV@@/${PRE_BOOTENV}/' \
218 -e 's/@@RAMDISK_IMAGE1@@/${RAMDISK_IMAGE1}/' \
219 "${WORKDIR}/boot.cmd.${BOOTMODE}${BOOTFILE_EXT}" > "${WORKDIR}/boot.cmd"
79 mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr 220 mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
80 sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \ 221 sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
81 -e 's/@@DEVICE_TREE_NAME@@/${DEVICE_TREE_NAME}/' \ 222 -e 's/@@DEVICE_TREE_NAME@@/${DEVICE_TREE_NAME}/' \
diff --git a/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.generic b/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.generic
new file mode 100644
index 00000000..b8ebf645
--- /dev/null
+++ b/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.generic
@@ -0,0 +1,68 @@
1# This is a boot script for U-Boot
2# Generate boot.scr:
3# mkimage -c none -A arm -T script -d boot.cmd.default boot.scr
4#
5################
6@@PRE_BOOTENV@@
7
8for boot_target in ${boot_targets};
9do
10 if test "${boot_target}" = "jtag" ; then
11 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@
12 exit;
13 fi
14 if test "${boot_target}" = "mmc0" || test "${boot_target}" = "mmc1" ; then
15 if test -e ${devtype} ${devnum}:${distro_bootpart} /@@FIT_IMAGE@@; then
16 fatload ${devtype} ${devnum}:${distro_bootpart} @@FIT_IMAGE_LOAD_ADDRESS@@ @@FIT_IMAGE@@;
17 bootm @@FIT_IMAGE_LOAD_ADDRESS@@;
18 exit;
19 fi
20 if test -e ${devtype} ${devnum}:${distro_bootpart} /@@KERNEL_IMAGE@@; then
21 fatload ${devtype} ${devnum}:${distro_bootpart} @@KERNEL_LOAD_ADDRESS@@ @@KERNEL_IMAGE@@;;
22 fi
23 if test -e ${devtype} ${devnum}:${distro_bootpart} /system.dtb; then
24 fatload ${devtype} ${devnum}:${distro_bootpart} @@DEVICETREE_ADDRESS@@ system.dtb;
25 fi
26 if test -e ${devtype} ${devnum}:${distro_bootpart} /@@RAMDISK_IMAGE1@@; then
27 fatload ${devtype} ${devnum}:${distro_bootpart} @@RAMDISK_IMAGE_ADDRESS@@ @@RAMDISK_IMAGE1@@;
28 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@
29 exit;
30 fi
31 if test -e ${devtype} ${devnum}:${distro_bootpart} /@@RAMDISK_IMAGE@@; then
32 fatload ${devtype} ${devnum}:${distro_bootpart} @@RAMDISK_IMAGE_ADDRESS@@ @@RAMDISK_IMAGE@@;
33 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@
34 exit;
35 fi
36 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ - @@DEVICETREE_ADDRESS@@
37 exit;
38 fi
39 if test "${boot_target}" = "xspi0" || test "${boot_target}" = "qspi" || test "${boot_target}" = "qspi0"; then
40 sf probe 0 0 0;
41 if test "@@QSPI_KERNEL_IMAGE@@" = "@@FIT_IMAGE@@"; then
42 sf read @@QSPI_FIT_IMAGE_LOAD_ADDRESS@@ @@QSPI_KERNEL_OFFSET@@ @@QSPI_FIT_IMAGE_SIZE@@;
43 bootm @@QSPI_FIT_IMAGE_LOAD_ADDRESS@@;
44 exit;
45 fi
46 if test "@@QSPI_KERNEL_IMAGE@@" = "@@KERNEL_IMAGE@@"; then
47 sf read @@KERNEL_LOAD_ADDRESS@@ @@QSPI_KERNEL_OFFSET@@ @@QSPI_KERNEL_SIZE@@;
48 sf read @@RAMDISK_IMAGE_ADDRESS@@ @@QSPI_RAMDISK_OFFSET@@ @@QSPI_RAMDISK_SIZE@@
49 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@
50 exit;
51 fi
52 exit;
53 fi
54 if test "${boot_target}" = "nand" || test "${boot_target}" = "nand0"; then
55 nand info
56 if test "@@NAND_KERNEL_IMAGE@@" = "@@FIT_IMAGE@@"; then
57 nand read @@NAND_FIT_IMAGE_LOAD_ADDRESS@@ @@NAND_KERNEL_OFFSET@@ @@NAND_FIT_IMAGE_SIZE@@;
58 bootm @@NAND_FIT_IMAGE_LOAD_ADDRESS@@;
59 exit;
60 fi
61 if test "@@NAND_KERNEL_IMAGE@@" = "@@KERNEL_IMAGE@@"; then
62 nand read @@KERNEL_LOAD_ADDRESS@@ @@NAND_KERNEL_OFFSET@@ @@NAND_KERNEL_SIZE@@;
63 nand read @@RAMDISK_IMAGE_ADDRESS@@ @@NAND_RAMDISK_OFFSET@@ @@NAND_RAMDISK_SIZE@@;
64 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@
65 exit;
66 fi
67 fi
68done
diff --git a/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.ubifs b/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.ubifs
new file mode 100644
index 00000000..2b21c3cf
--- /dev/null
+++ b/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.ubifs
@@ -0,0 +1,55 @@
1# This is a boot script for U-Boot
2# Generate boot.scr:
3# mkimage -c none -A arm -T script -d boot.cmd.default boot.scr
4#
5################
6@@PRE_BOOTENV@@
7
8for boot_target in ${boot_targets};
9do
10 if test "${boot_target}" = "xspi0" || test "${boot_target}" = "qspi" || test "${boot_target}" = "qspi0"; then
11 ubifsls @@FIT_IMAGE@@
12 if test $? = 0; then
13 ubifsload @@QSPI_FIT_IMAGE_LOAD_ADDRESS@@ @@FIT_IMAGE@@;
14 bootm @@QSPI_FIT_IMAGE_LOAD_ADDRESS@@;
15 exit;
16 fi
17 ubifsls @@KERNEL_IMAGE@@
18 if test $? = 0; then
19 ubifsload @@KERNEL_LOAD_ADDRESS@@ @@KERNEL_IMAGE@@;
20 fi
21 ubifsls system.dtb
22 if test $? = 0; then
23 ubifsload @@DEVICETREE_ADDRESS@@ system.dtb
24 fi
25 ubifsls @@RAMDISK_IMAGE@@
26 if test $? = 0; then
27 ubifsload @@RAMDISK_IMAGE_ADDRESS@@ @@RAMDISK_IMAGE@@
28 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@
29 exit;
30 fi
31 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ - @@DEVICETREE_ADDRESS@@
32 exit;
33 fi
34 if test "${boot_target}" = "mmc0" || test "${boot_target}" = "mmc1" ; then
35 run bootcmd_${boot_target};
36 if test -e ${devtype} ${devnum}:${distro_bootpart} /@@FIT_IMAGE@@; then
37 ext4load ${devtype} ${devnum}:${distro_bootpart} @@FIT_IMAGE_LOAD_ADDRESS@@ @@FIT_IMAGE@@;
38 bootm @@FIT_IMAGE_LOAD_ADDRESS@@;
39 exit;
40 fi
41 if test -e ${devtype} ${devnum}:${distro_bootpart} /@@KERNEL_IMAGE@@; then
42 ext4load ${devtype} ${devnum}:${distro_bootpart} @@KERNEL_LOAD_ADDRESS@@ @@KERNEL_IMAGE@@;
43 fi
44 if test -e ${devtype} ${devnum}:${distro_bootpart} /system.dtb; then
45 ext4load ${devtype} ${devnum}:${distro_bootpart} @@DEVICETREE_ADDRESS@@ system.dtb;
46 fi
47 if test -e ${devtype} ${devnum}:${distro_bootpart} /@@RAMDISK_IMAGE@@; then
48 ext4load ${devtype} ${devnum}:${distro_bootpart} @@RAMDISK_IMAGE_ADDRESS@@ @@RAMDISK_IMAGE@@;
49 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ @@RAMDISK_IMAGE_ADDRESS@@ @@DEVICETREE_ADDRESS@@
50 exit;
51 fi
52 @@KERNEL_BOOTCMD@@ @@KERNEL_LOAD_ADDRESS@@ - @@DEVICETREE_ADDRESS@@
53 exit;
54 fi
55done