From 6cf57189bf356b5325ceabf867f7f4da7a1015c4 Mon Sep 17 00:00:00 2001 From: Peter Hoyes Date: Fri, 30 Sep 2022 17:34:36 +0100 Subject: [PATCH] zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample At the moment: * zephyr-image.inc depends on zephyr-sample.inc, which doesn't really make sense. * zephyr-image.inc inherits testimage, even though it may not be required. * Out-of-tree Zephyr apps have to include zephyr-sample.inc in order to deploy the binaries, which is confusingly named if your application isn't a "sample". Do some minor refactoring to untangle the above. Now: * zephyr-sample.inc depends on zephyr-image.inc * zephyrtest.bbclass inherits testimage. * Out-of-tree Zephyr apps can include zephyr-image.inc Additionally, remove QEMU_BIN_PATH, as recent Zephyr versions now pick up the QEMU binary automatically from PATH. Signed-off-by: Peter Hoyes Signed-off-by: Jon Mason Signed-off-by: Naveen Saini --- meta-zephyr-core/classes/zephyrtest.bbclass | 4 +-- .../zephyr-kernel/zephyr-image.inc | 25 ++++++++++++++----- .../zephyr-kernel/zephyr-sample.inc | 23 +---------------- 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/meta-zephyr-core/classes/zephyrtest.bbclass b/meta-zephyr-core/classes/zephyrtest.bbclass index aa48e6c..d4fc75e 100644 --- a/meta-zephyr-core/classes/zephyrtest.bbclass +++ b/meta-zephyr-core/classes/zephyrtest.bbclass @@ -1,4 +1,4 @@ -inherit rootfs-postcommands +inherit rootfs-postcommands testimage python zephyrtest_virtclass_handler () { variant = e.data.getVar("BBEXTENDVARIANT", True) @@ -14,7 +14,7 @@ python zephyrtest_virtclass_handler () { e.data.setVar("ZEPHYR_IMAGENAME", pn + ".elf") # Most tests for Zephyr 1.6 are in the "legacy" folder - e.data.setVar("ZEPHYR_SRC_DIR", "tests/kernel/" + variant) + e.data.setVar("ZEPHYR_SRC_DIR", "${ZEPHYR_BASE}/tests/kernel/" + variant) e.data.setVar("ZEPHYR_MAKE_OUTPUT", "zephyr.elf") # Allow to build using both foo-some_test form as well as foo-some-test diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc index f4c9db1..fc8c077 100644 --- a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc @@ -1,9 +1,22 @@ -require zephyr-sample.inc -inherit testimage +require zephyr-kernel-src.inc +require zephyr-kernel-common.inc +inherit deploy -QEMU_BIN_PATH = "${STAGING_BINDIR_NATIVE}" +OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}" -OECMAKE_SOURCEPATH = "${ZEPHYR_BASE}/${ZEPHYR_SRC_DIR}" - -addtask deploy after do_compile do_install[noexec] = "1" + +do_deploy() { + install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf + + if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ] + then + install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin + fi + + if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ] + then + install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi + fi +} +addtask deploy after do_compile diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc index 10c25c5..5f6dea9 100644 --- a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc @@ -1,22 +1 @@ -require zephyr-kernel-src.inc -require zephyr-kernel-common.inc -inherit deploy - -OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}" - -do_install[noexec] = "1" - -do_deploy () { - install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf - - if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ] - then - install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin - fi - - if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ] - then - install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi - fi -} -addtask deploy after do_compile +require zephyr-image.inc