ZCU106_10Gbps_ethernet/Petalinux/project-spec/meta-user/recipes-bsp/u-boot/u-boot-zynq-scr.bbappend

146 lines
5.0 KiB
Plaintext
Raw Normal View History

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://boot.cmd.default.initrd \
file://boot.cmd.default \
file://boot.cmd.default.ubifs"
BOOTMODE = "default"
BOOTFILE_EXT = ".initrd"
#Make this value to "1" to skip appending base address to ddr offsets.
SKIP_APPEND_BASEADDR = "0"
RAMDISK_IMAGE_zynq = "rootfs.cpio.gz.u-boot"
RAMDISK_IMAGE_zynqmp = "rootfs.cpio.gz.u-boot"
RAMDISK_IMAGE_versal = "rootfs.cpio.gz.u-boot"
KERNEL_IMAGE_zynq = "uImage"
KERNEL_IMAGE_zynqmp = "Image"
KERNEL_IMAGE_versal = "Image"
KERNEL_BOOTCMD_zynq = "bootm"
KERNEL_BOOTCMD_zynqmp = "booti"
KERNEL_BOOTCMD_versal = "booti"
DEVICETREE_ADDRESS_zynq = "${@append_baseaddr(d,"0x100000")}"
DEVICETREE_ADDRESS_zynqmp = "${@append_baseaddr(d,"0x100000")}"
DEVICETREE_ADDRESS_versal = "${@append_baseaddr(d,"0x1000")}"
KERNEL_LOAD_ADDRESS_zynq = "${@append_baseaddr(d,"0x200000")}"
KERNEL_LOAD_ADDRESS_zynqmp = "${@append_baseaddr(d,"0x200000")}"
KERNEL_LOAD_ADDRESS_versal = "${@append_baseaddr(d,"0x80000")}"
RAMDISK_IMAGE_ADDRESS_zynq = "${@append_baseaddr(d,"0x4000000")}"
RAMDISK_IMAGE_ADDRESS_zynqmp = "${@append_baseaddr(d,"0x4000000")}"
RAMDISK_IMAGE_ADDRESS_versal = "${@append_baseaddr(d,"0x4000000")}"
## Below offsets and sizes are based on 32MB QSPI Memory for zynq
## For zynq
## Load boot.scr at 0xFC0000 -> 15MB of QSPI/NAND Memory
QSPI_KERNEL_OFFSET_zynq = "0x1000000"
QSPI_RAMDISK_OFFSET_zynq = "0x1580000"
NAND_KERNEL_OFFSET_zynq = "0x1000000"
NAND_RAMDISK_OFFSET_zynq = "0x4600000"
QSPI_KERNEL_SIZE_zynq = "0x500000"
QSPI_RAMDISK_SIZE_zynq = "0xA00000"
NAND_KERNEL_SIZE = "0x3200000"
NAND_RAMDISK_SIZE = "0x3200000"
## Below offsets and sizes are based on 128MB QSPI Memory for zynqmp/versal
## For zynqMP
## Load boot.scr at 0x3E80000 -> 62MB of QSPI/NAND Memory
QSPI_KERNEL_OFFSET = "0xF00000"
QSPI_KERNEL_OFFSET_zynqmpdr = "0x3F00000"
QSPI_RAMDISK_OFFSET = "0x4000000"
QSPI_RAMDISK_OFFSET_zynqmpdr = "0x5D00000"
NAND_KERNEL_OFFSET_zynqmp = "0x4100000"
NAND_RAMDISK_OFFSET_zynqmp = "0x7800000"
QSPI_KERNEL_SIZE_zynqmp = "0x1D00000"
QSPI_RAMDISK_SIZE = "0x4000000"
QSPI_RAMDISK_SIZE_zynqmpdr = "0x1D00000"
## For versal
## Load boot.scr at 0x7F80000 -> 127MB of QSPI/NAND Memory
QSPI_KERNEL_OFFSET_versal = "0xF00000"
QSPI_RAMDISK_OFFSET_versal = "0x2E00000"
NAND_KERNEL_OFFSET_versal = "0x4100000"
NAND_RAMDISK_OFFSET_versal = "0x8200000"
QSPI_KERNEL_SIZE_versal = "0x1D00000"
QSPI_RAMDISK_SIZE_versal = "0x4000000"
QSPI_KERNEL_IMAGE_zynq = "image.ub"
QSPI_KERNEL_IMAGE_zynqmp = "image.ub"
QSPI_KERNEL_IMAGE_versal = "image.ub"
NAND_KERNEL_IMAGE = "image.ub"
FIT_IMAGE_LOAD_ADDRESS = "${@append_baseaddr(d,"0x10000000")}"
QSPI_FIT_IMAGE_LOAD_ADDRESS = "${@append_baseaddr(d,"0x10000000")}"
QSPI_FIT_IMAGE_SIZE = "0x6400000"
QSPI_FIT_IMAGE_SIZE_zynqmpdr = "0x3F00000"
QSPI_FIT_IMAGE_SIZE_zynq = "0xF00000"
NAND_FIT_IMAGE_LOAD_ADDRESS = "${@append_baseaddr(d,"0x10000000")}"
NAND_FIT_IMAGE_SIZE = "0x6400000"
FIT_IMAGE = "image.ub"
python () {
baseaddr = d.getVar('DDR_BASEADDR') or "0x0"
if baseaddr == "0x0":
d.setVar('PRE_BOOTENV','')
else:
soc_family = d.getVar('SOC_FAMILY') or ""
if soc_family == "zynqmp":
fdt_high = "0x10000000"
elif soc_family == "zynq":
fdt_high = "0x20000000"
elif soc_family == "versal":
fdt_high = "0x70000000"
if fdt_high:
basefdt_high = append_baseaddr(d,fdt_high)
bootenv = "setenv fdt_high " + basefdt_high
d.setVar('PRE_BOOTENV',bootenv)
}
def append_baseaddr(d,offset):
skip_append = d.getVar('SKIP_APPEND_BASEADDR') or ""
if skip_append == "1":
return offset
import subprocess
baseaddr = d.getVar('DDR_BASEADDR') or "0x0"
subcmd = "$((%s+%s));" % (baseaddr,offset)
cmd = "printf '0x%08x' " + str(subcmd)
output = subprocess.check_output(cmd, shell=True).decode("utf-8")
return output
do_compile_prepend() {
sed -e 's/@@QSPI_KERNEL_OFFSET@@/${QSPI_KERNEL_OFFSET}/' \
-e 's/@@NAND_KERNEL_OFFSET@@/${NAND_KERNEL_OFFSET}/' \
-e 's/@@QSPI_KERNEL_SIZE@@/${QSPI_KERNEL_SIZE}/' \
-e 's/@@NAND_KERNEL_SIZE@@/${NAND_KERNEL_SIZE}/' \
-e 's/@@QSPI_RAMDISK_OFFSET@@/${QSPI_RAMDISK_OFFSET}/' \
-e 's/@@NAND_RAMDISK_OFFSET@@/${NAND_RAMDISK_OFFSET}/' \
-e 's/@@QSPI_RAMDISK_SIZE@@/${QSPI_RAMDISK_SIZE}/' \
-e 's/@@NAND_RAMDISK_SIZE@@/${NAND_RAMDISK_SIZE}/' \
-e 's/@@KERNEL_IMAGE@@/${KERNEL_IMAGE}/' \
-e 's/@@QSPI_KERNEL_IMAGE@@/${QSPI_KERNEL_IMAGE}/' \
-e 's/@@NAND_KERNEL_IMAGE@@/${NAND_KERNEL_IMAGE}/' \
-e 's/@@QSPI_FIT_IMAGE_LOAD_ADDRESS@@/${QSPI_FIT_IMAGE_LOAD_ADDRESS}/' \
-e 's/@@FIT_IMAGE_LOAD_ADDRESS@@/${FIT_IMAGE_LOAD_ADDRESS}/' \
-e 's/@@QSPI_FIT_IMAGE_SIZE@@/${QSPI_FIT_IMAGE_SIZE}/' \
-e 's/@@NAND_FIT_IMAGE_LOAD_ADDRESS@@/${NAND_FIT_IMAGE_LOAD_ADDRESS}/' \
-e 's/@@NAND_FIT_IMAGE_SIZE@@/${NAND_FIT_IMAGE_SIZE}/' \
-e 's/@@FIT_IMAGE@@/${FIT_IMAGE}/' \
-e 's/@@PRE_BOOTENV@@/${PRE_BOOTENV}/' \
"${WORKDIR}/boot.cmd.${BOOTMODE}${BOOTFILE_EXT}" > "${WORKDIR}/boot.cmd.${BOOTMODE}.${SOC_FAMILY}"
}