Add a new xen-rpi-u-boot-scr recipe to PROVIDE u-boot-default-script
instead of using a bbappend to rpi-u-boot-scr.

This allows the new recipe to be selected by indicating it as
PREFERRED_PROVIDER of u-boot-default-script, and then do that in the
Xen on Raspberry Pi 4 config file, xen-raspberrypi4-64.inc.

Signed-off-by: Christopher Clark <[email protected]>
---
 .../distro/include/xen-raspberrypi4-64.inc    |  2 ++
 .../rpi-u-boot-scr/rpi-u-boot-scr.bbappend    | 17 ----------
 .../files/boot.cmd.xen.in                     |  0
 .../xen-rpi-u-boot-scr/xen-rpi-u-boot-scr.bb  | 34 +++++++++++++++++++
 4 files changed, 36 insertions(+), 17 deletions(-)
 delete mode 100644 
dynamic-layers/raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bbappend
 rename dynamic-layers/raspberrypi/recipes-bsp/{rpi-u-boot-scr => 
xen-rpi-u-boot-scr}/files/boot.cmd.xen.in (100%)
 create mode 100644 
dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/xen-rpi-u-boot-scr.bb

diff --git 
a/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc 
b/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc
index 9c36255..2ea19dd 100644
--- a/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc
+++ b/dynamic-layers/raspberrypi/conf/distro/include/xen-raspberrypi4-64.inc
@@ -21,3 +21,5 @@ BOOT_SPACE = "61440"
 # Override the meta-raspberrypi default kernel preference
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
 KERNEL_DEVICETREE ?= "broadcom/bcm2711-rpi-4-b.dtb"
+
+PREFERRED_PROVIDER_u-boot-default-script ?= "xen-rpi-u-boot-scr"
diff --git 
a/dynamic-layers/raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bbappend 
b/dynamic-layers/raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bbappend
deleted file mode 100644
index 2a51116..0000000
--- 
a/dynamic-layers/raspberrypi/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bbappend
+++ /dev/null
@@ -1,17 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-RPI_DOM0_MEM ??= "256M"
-RPI_DEBUG_XEN_ARGS ??= "sync_console bootscrub=0"
-
-SRC_URI += "file://boot.cmd.xen.in"
-
-# If the distro is Xen enabled, override the default boot.cmd.in with the
-# alternative boot.cmd.xen.in from this layer, with variables subsitution here
-do_compile_append() {
-    if [ "${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'yes', 'no', d)}" = 
"yes" ]; then
-        sed -e 's/@@RPI_DOM0_MEM@@/${RPI_DOM0_MEM}/' \
-            -e 's/@@RPI_DEBUG_XEN_ARGS@@/${RPI_DEBUG_XEN_ARGS}/' \
-                "${WORKDIR}/boot.cmd.xen.in" > "${WORKDIR}/boot.cmd"
-        mkimage -A arm -T script -C none -n "Boot script" -d 
"${WORKDIR}/boot.cmd" boot.scr
-    fi
-}
diff --git 
a/dynamic-layers/raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.xen.in 
b/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/files/boot.cmd.xen.in
similarity index 100%
rename from 
dynamic-layers/raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.xen.in
rename to 
dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/files/boot.cmd.xen.in
diff --git 
a/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/xen-rpi-u-boot-scr.bb
 
b/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/xen-rpi-u-boot-scr.bb
new file mode 100644
index 0000000..87619d0
--- /dev/null
+++ 
b/dynamic-layers/raspberrypi/recipes-bsp/xen-rpi-u-boot-scr/xen-rpi-u-boot-scr.bb
@@ -0,0 +1,34 @@
+SUMMARY = "U-boot boot script for Xen on Raspberry Pi 4"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = 
"file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+COMPATIBLE_MACHINE = "^raspberrypi4-64$"
+
+DEPENDS = "u-boot-mkimage-native"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+SRC_URI = "file://boot.cmd.xen.in"
+
+RPI_DOM0_MEM ??= "256M"
+RPI_DEBUG_XEN_ARGS ??= "sync_console bootscrub=0"
+
+do_compile() {
+    sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
+        -e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
+        -e 's/@@RPI_DOM0_MEM@@/${RPI_DOM0_MEM}/' \
+        -e 's/@@RPI_DEBUG_XEN_ARGS@@/${RPI_DEBUG_XEN_ARGS}/' \
+        "${WORKDIR}/boot.cmd.xen.in" > "${WORKDIR}/boot.cmd"
+
+    mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d 
"${WORKDIR}/boot.cmd" boot.scr
+}
+
+inherit kernel-arch deploy nopackages
+
+do_deploy() {
+    install -d ${DEPLOYDIR}
+    install -m 0644 boot.scr ${DEPLOYDIR}
+}
+
+addtask do_deploy after do_compile before do_build
+
+PROVIDES += "u-boot-default-script"
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#6451): 
https://lists.yoctoproject.org/g/meta-virtualization/message/6451
Mute This Topic: https://lists.yoctoproject.org/mt/82330187/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to