diff options
| author | Raju Kumar Pothuraju <raju.kumar-pothuraju@xilinx.com> | 2021-01-05 20:20:17 +0530 |
|---|---|---|
| committer | Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com> | 2021-07-14 14:19:37 -0700 |
| commit | ac151d926404eca70810dbd1ff8508ad23895f13 (patch) | |
| tree | fd18c0471eb34b517cac7810591ae6a9d2c6a788 | |
| parent | e1e557428ca6432227ae237f8183e239ea487810 (diff) | |
| download | meta-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>
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 ?= "^$" | |||
| 12 | COMPATIBLE_MACHINE_zynqmp = "zynqmp" | 12 | COMPATIBLE_MACHINE_zynqmp = "zynqmp" |
| 13 | COMPATIBLE_MACHINE_zynq = "zynq" | 13 | COMPATIBLE_MACHINE_zynq = "zynq" |
| 14 | COMPATIBLE_MACHINE_versal = "versal" | 14 | COMPATIBLE_MACHINE_versal = "versal" |
| 15 | COMPATIBLE_MACHINE_microblaze = "microblaze" | ||
| 15 | 16 | ||
| 16 | KERNELDT = "${@os.path.basename(d.getVar('KERNEL_DEVICETREE').split(' ')[0]) if d.getVar('KERNEL_DEVICETREE') else ''}" | 17 | KERNELDT = "${@os.path.basename(d.getVar('KERNEL_DEVICETREE').split(' ')[0]) if d.getVar('KERNEL_DEVICETREE') else ''}" |
| 17 | DEVICE_TREE_NAME ?= "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', d.getVar('KERNELDT'), d)}" | 18 | DEVICE_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" | |||
| 22 | KERNEL_BOOTCMD_zynqmp ?= "booti" | 23 | KERNEL_BOOTCMD_zynqmp ?= "booti" |
| 23 | KERNEL_BOOTCMD_zynq ?= "bootm" | 24 | KERNEL_BOOTCMD_zynq ?= "bootm" |
| 24 | KERNEL_BOOTCMD_versal ?= "booti" | 25 | KERNEL_BOOTCMD_versal ?= "booti" |
| 26 | KERNEL_BOOTCMD_microblaze ?= "bootm" | ||
| 25 | 27 | ||
| 26 | BOOTMODE ?= "sd" | 28 | BOOTMODE ?= "sd" |
| 29 | BOOTFILE_EXT ?= ".${SOC_FAMILY}" | ||
| 30 | |||
| 31 | #Make this value to "1" to skip appending base address to ddr offsets. | ||
| 32 | SKIP_APPEND_BASEADDR ?= "0" | ||
| 33 | |||
| 34 | DDR_BASEADDR ?= "0x0" | ||
| 35 | DDR_BASEADDR_microblaze ?= "0x80000000" | ||
| 27 | 36 | ||
| 28 | SRC_URI = " \ | 37 | SRC_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 | " |
| 35 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 46 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
| @@ -38,16 +49,95 @@ UBOOTSCR_BASE_NAME ?= "${PN}-${PKGE}-${PKGV}-${PKGR}${IMAGE_VERSION_SUFFIX}" | |||
| 38 | UBOOTPXE_CONFIG ?= "pxelinux.cfg" | 49 | UBOOTPXE_CONFIG ?= "pxelinux.cfg" |
| 39 | UBOOTPXE_CONFIG_NAME = "${UBOOTPXE_CONFIG}${IMAGE_VERSION_SUFFIX}" | 50 | UBOOTPXE_CONFIG_NAME = "${UBOOTPXE_CONFIG}${IMAGE_VERSION_SUFFIX}" |
| 40 | 51 | ||
| 41 | DEVICETREE_ADDRESS_zynqmp ?= "0x100000" | 52 | DEVICETREE_ADDRESS ?= "${@append_baseaddr(d,d.getVar('DEVICETREE_OFFSET'))}" |
| 42 | DEVICETREE_ADDRESS_zynq ?= "0x2000000" | 53 | |
| 43 | DEVICETREE_ADDRESS_versal ?= "0x1000" | 54 | DEVICETREE_OFFSET_microblaze ?= "0x1e00000" |
| 44 | KERNEL_LOAD_ADDRESS_zynqmp ?= "0x200000" | 55 | DEVICETREE_OFFSET_zynqmp ?= "0x100000" |
| 45 | KERNEL_LOAD_ADDRESS_zynq ?= "0x2080000" | 56 | DEVICETREE_OFFSET_zynq ?= "0x2000000" |
| 46 | KERNEL_LOAD_ADDRESS_versal ?= "0x80000" | 57 | DEVICETREE_OFFSET_versal ?= "0x1000" |
| 58 | |||
| 59 | KERNEL_LOAD_ADDRESS ?= "${@append_baseaddr(d,d.getVar('KERNEL_OFFSET'))}" | ||
| 60 | |||
| 61 | KERNEL_OFFSET_microblaze ?= "0x0" | ||
| 62 | KERNEL_OFFSET_zynqmp ?= "0x200000" | ||
| 63 | KERNEL_OFFSET_zynq ?= "0x2080000" | ||
| 64 | KERNEL_OFFSET_versal ?= "0x80000" | ||
| 65 | |||
| 66 | KERNEL_IMAGE ?= "${KERNEL_IMAGETYPE}" | ||
| 67 | |||
| 68 | RAMDISK_IMAGE_ADDRESS ?= "${@append_baseaddr(d,d.getVar('RAMDISK_OFFSET'))}" | ||
| 69 | |||
| 70 | RAMDISK_OFFSET_microblaze ?= "0x2e00000" | ||
| 71 | RAMDISK_OFFSET_zynq ?= "0x4000000" | ||
| 72 | RAMDISK_OFFSET_zynqmp ?= "0x4000000" | ||
| 73 | RAMDISK_OFFSET_versal ?= "0x6000000" | ||
| 74 | |||
| 75 | FIT_IMAGE_LOAD_ADDRESS ?= "${@append_baseaddr(d,d.getVar('FIT_IMAGE_OFFSET'))}" | ||
| 76 | FIT_IMAGE_OFFSET ?= "0x10000000" | ||
| 77 | FIT_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 | ||
| 82 | QSPI_KERNEL_OFFSET_microblaze ?= "0xBC0000" | ||
| 83 | QSPI_KERNEL_SIZE_microblaze ?= "0x500000" | ||
| 84 | QSPI_RAMDISK_SIZE_microblaze ?= "0xA00000" | ||
| 85 | |||
| 86 | ## For zynq | ||
| 87 | ## Load boot.scr at 0xFC0000 -> 15MB of QSPI/NAND Memory | ||
| 88 | QSPI_KERNEL_OFFSET_zynq ?= "0x1000000" | ||
| 89 | QSPI_RAMDISK_OFFSET_zynq ?= "0x1580000" | ||
| 90 | |||
| 91 | NAND_KERNEL_OFFSET_zynq ?= "0x1000000" | ||
| 92 | NAND_RAMDISK_OFFSET_zynq ?= "0x4600000" | ||
| 93 | |||
| 94 | QSPI_KERNEL_SIZE_zynq ?= "0x500000" | ||
| 95 | QSPI_RAMDISK_SIZE_zynq ?= "0xA00000" | ||
| 47 | 96 | ||
| 48 | RAMDISK_IMAGE_ADDRESS_zynq ?= "0x4000000" | 97 | NAND_KERNEL_SIZE ?= "0x3200000" |
| 49 | RAMDISK_IMAGE_ADDRESS_versal ?= "0x6000000" | 98 | NAND_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 | ||
| 103 | QSPI_KERNEL_OFFSET ?= "0xF00000" | ||
| 104 | QSPI_KERNEL_OFFSET_zynqmpdr ?= "0x3F00000" | ||
| 105 | QSPI_RAMDISK_OFFSET ?= "0x4000000" | ||
| 106 | QSPI_RAMDISK_OFFSET_zynqmpdr ?= "0x5D00000" | ||
| 107 | |||
| 108 | NAND_KERNEL_OFFSET_zynqmp ?= "0x4100000" | ||
| 109 | NAND_RAMDISK_OFFSET_zynqmp ?= "0x7800000" | ||
| 110 | |||
| 111 | QSPI_KERNEL_SIZE_zynqmp ?= "0x1D00000" | ||
| 112 | QSPI_RAMDISK_SIZE ?= "0x4000000" | ||
| 113 | QSPI_RAMDISK_SIZE_zynqmpdr ?= "0x1D00000" | ||
| 114 | |||
| 115 | ## For versal | ||
| 116 | ## Load boot.scr at 0x7F80000 -> 127MB of QSPI/NAND Memory | ||
| 117 | QSPI_KERNEL_OFFSET_versal ?= "0xF00000" | ||
| 118 | QSPI_RAMDISK_OFFSET_versal ?= "0x2E00000" | ||
| 119 | |||
| 120 | NAND_KERNEL_OFFSET_versal ?= "0x4100000" | ||
| 121 | NAND_RAMDISK_OFFSET_versal ?= "0x8200000" | ||
| 122 | |||
| 123 | QSPI_KERNEL_SIZE_versal ?= "0x1D00000" | ||
| 124 | QSPI_RAMDISK_SIZE_versal ?= "0x4000000" | ||
| 125 | |||
| 126 | QSPI_KERNEL_IMAGE_microblaze ?= "image.ub" | ||
| 127 | QSPI_KERNEL_IMAGE_zynq ?= "image.ub" | ||
| 128 | QSPI_KERNEL_IMAGE_zynqmp ?= "image.ub" | ||
| 129 | QSPI_KERNEL_IMAGE_versal ?= "image.ub" | ||
| 130 | |||
| 131 | NAND_KERNEL_IMAGE ?= "image.ub" | ||
| 132 | |||
| 133 | QSPI_FIT_IMAGE_LOAD_ADDRESS ?= "${@append_baseaddr(d,"0x10000000")}" | ||
| 134 | QSPI_FIT_IMAGE_SIZE ?= "0x6400000" | ||
| 135 | QSPI_FIT_IMAGE_SIZE_zynqmpdr ?= "0x3F00000" | ||
| 136 | QSPI_FIT_IMAGE_SIZE_zynq ?= "0xF00000" | ||
| 137 | QSPI_FIT_IMAGE_SIZE_microblaze ?= "0xF00000" | ||
| 138 | |||
| 139 | NAND_FIT_IMAGE_LOAD_ADDRESS ?= "${@append_baseaddr(d,"0x10000000")}" | ||
| 140 | NAND_FIT_IMAGE_SIZE ?= "0x6400000" | ||
| 51 | 141 | ||
| 52 | SDBOOTDEV ?= "0" | 142 | SDBOOTDEV ?= "0" |
| 53 | 143 | ||
| @@ -56,6 +146,38 @@ BITSTREAM_LOAD_ADDRESS ?= "0x100000" | |||
| 56 | do_configure[noexec] = "1" | 146 | do_configure[noexec] = "1" |
| 57 | do_install[noexec] = "1" | 147 | do_install[noexec] = "1" |
| 58 | 148 | ||
| 149 | python () { | ||
| 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 | |||
| 170 | def 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 | |||
| 59 | def get_bitstream_load_type(d): | 181 | def 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 | |||
| 8 | for boot_target in ${boot_targets}; | ||
| 9 | do | ||
| 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 | ||
| 68 | done | ||
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 | |||
| 8 | for boot_target in ${boot_targets}; | ||
| 9 | do | ||
| 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 | ||
| 55 | done | ||
