From fd4359c8b1604745b1dbf28376fad13666e53d7d Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 7 Jun 2021 21:19:58 -0700 Subject: fsbl-firmware: Update to match current configuration The fsbl has been renamed to fsbl-firmware, and some adjustments to the build method are required to match how standalone and xsct version work. Signed-off-by: Mark Hatle --- .../recipes-applications/fsbl-zynqmp/fsbl_git.bb | 53 ---------------------- .../embeddedsw/fsbl-firmware_git.bbappend | 47 +++++++++++++++++++ .../recipes-bsp/embeddedsw/fsbl-firmware.inc | 8 ++-- 3 files changed, 52 insertions(+), 56 deletions(-) delete mode 100644 meta-xilinx-standalone-experimental/recipes-applications/fsbl-zynqmp/fsbl_git.bb create mode 100644 meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend diff --git a/meta-xilinx-standalone-experimental/recipes-applications/fsbl-zynqmp/fsbl_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/fsbl-zynqmp/fsbl_git.bb deleted file mode 100644 index 27c0081b..00000000 --- a/meta-xilinx-standalone-experimental/recipes-applications/fsbl-zynqmp/fsbl_git.bb +++ /dev/null @@ -1,53 +0,0 @@ -inherit esw deploy - -COMPATIBLE_HOST = "aarch64.*-elf" -COMPATIBLE_MACHINE = "none" -COMPATIBLE_MACHINE_zynqmp = ".*" - -ESW_COMPONENT_SRC = "/lib/sw_apps/zynqmp_fsbl/src" - -DEPENDS += "xilstandalone xiltimer xilffs xilsecure xilpm" - -do_copy_psu_init[depends] += "device-tree-lops:do_deploy" -python do_copy_psu_init() { - import glob, subprocess, os - - system_dt = d.getVar('SYSTEM_DTFILE') - src_dir = glob.glob(d.getVar('OECMAKE_SOURCEPATH')) - psu_init_src = os.path.dirname(system_dt) - src_file = psu_init_src + str("/psu_init.c") - hdr_file = psu_init_src + str("/psu_init.h") - if os.path.exists(src_file): - command = ["install"] + ["-m"] + ["0755"] + [src_file] + [src_dir[0]] - subprocess.run(command, check = True) - command = ["install"] + ["-m"] + ["0755"] + [hdr_file] + [src_dir[0]] - subprocess.run(command, check = True) -} -addtask do_copy_psu_init before do_configure after do_prepare_recipe_sysroot -do_prepare_recipe_sysroot[rdeptask] = "do_unpack" - -do_install() { - install -d ${D}/${base_libdir}/firmware - # Note that we have to make the ELF executable for it to be stripped - install -m 0755 ${B}/zynqmp_fsbl* ${D}/${base_libdir}/firmware -} - -ZYNQMP_FSBL_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" -ZYNQMP_FSBL_BASE_NAME[vardepsexclude] = "DATETIME" - -do_deploy() { - - # We need to deploy the stripped elf, hence why not doing it from ${D} - install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.elf ${DEPLOYDIR}/${ZYNQMP_FSBL_BASE_NAME}.elf - ln -sf ${ZYNQMP_FSBL_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf - ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.elf ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.bin - install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.bin ${DEPLOYDIR}/${ZYNQMP_FSBL_BASE_NAME}.bin - ln -sf ${ZYNQMP_FSBL_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin -} - -addtask deploy before do_build after do_package - -CFLAGS_append_aarch64 = " -DARMA53_64" -CFLAGS_append_armrm = " -DARMR5" - -FILES_${PN} = "${base_libdir}/firmware/zynqmp_fsbl*" diff --git a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend new file mode 100644 index 00000000..a50ea86c --- /dev/null +++ b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend @@ -0,0 +1,47 @@ +# We WANT to default to this version when available +DEFAULT_PREFERENCE = "100" + +# Reset this +SRC_URI = "${EMBEDDEDSW_SRCURI}" + +inherit esw + +# Not compatible with Zynq +COMPATIBLE_MACHINE_zynq = "none" + +ESW_COMPONENT_SRC = "/lib/sw_apps/undefined/src" +ESW_COMPONENT_SRC_zynq = "/lib/sw_apps/zynq_fsbl/src" +ESW_COMPONENT_SRC_zynqmp = "/lib/sw_apps/zynqmp_fsbl/src" + +DEPENDS += "xilstandalone xiltimer xilffs xilsecure xilpm" + +do_copy_psu_init[depends] += "device-tree-lops:do_deploy" +python do_copy_psu_init() { + import glob, subprocess, os + + system_dt = d.getVar('SYSTEM_DTFILE') + src_dir = glob.glob(d.getVar('OECMAKE_SOURCEPATH')) + psu_init_src = os.path.dirname(system_dt) + src_file = psu_init_src + str("/psu_init.c") + hdr_file = psu_init_src + str("/psu_init.h") + if os.path.exists(src_file): + command = ["install"] + ["-m"] + ["0755"] + [src_file] + [src_dir[0]] + subprocess.run(command, check = True) + command = ["install"] + ["-m"] + ["0755"] + [hdr_file] + [src_dir[0]] + subprocess.run(command, check = True) +} +addtask do_copy_psu_init before do_configure after do_prepare_recipe_sysroot +do_prepare_recipe_sysroot[rdeptask] = "do_unpack" + +do_install() { + : +} + +addtask deploy before do_build after do_package + +ESW_COMPONENT = "undefined" +ESW_COMPONENT_zynq = "zynq_fsbl.elf" +ESW_COMPONENT_zynqmp = "zynqmp_fsbl.elf" + +CFLAGS_append_aarch64 = " -DARMA53_64" +CFLAGS_append_armrm = " -DARMR5" diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware.inc index 8d2ea1b6..15265547 100644 --- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware.inc +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware.inc @@ -9,9 +9,11 @@ COMPATIBLE_MACHINE_zynqmp = ".*" S = "${WORKDIR}/git" -B = "${S}/lib/sw_apps/undefined/src" -B_zynq = "${S}/lib/sw_apps/zynq_fsbl/src" -B_zynqmp = "${S}/lib/sw_apps/zynqmp_fsbl/src" +APP_DIR = "undefined" +APP_DIR_zynq = "zynq_fsbl" +APP_DIR_zynqmp = "zynqmp_fsbl" + +B = "${S}/lib/sw_apps/${APP_DIR}/src" # The makefile does not handle parallelization PARALLEL_MAKE = "-j1" -- cgit v1.2.3-54-g00ecf