Yocto Project Discussions
 help / color / mirror / Atom feed
* [meta-zephyr][PATCH 1/2] zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample
@ 2022-09-30 16:34 Peter Hoyes
  2022-09-30 16:34 ` [meta-zephyr][PATCH 2/2] zephyr-core/zephyr-kernel: Implement do_install Peter Hoyes
  2022-09-30 18:57 ` [meta-zephyr][PATCH 1/2] zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample Jon Mason
  0 siblings, 2 replies; 3+ messages in thread
From: Peter Hoyes @ 2022-09-30 16:34 UTC (permalink / raw)
  To: yocto; +Cc: diego.sueiro, Peter Hoyes

From: Peter Hoyes <Peter.Hoyes@arm.com>

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 <Peter.Hoyes@arm.com>
---
 meta-zephyr-core/classes/zephyrtest.bbclass   |  4 ++--
 .../zephyr-kernel/zephyr-image.inc            | 23 +++++++++++++++----
 .../zephyr-kernel/zephyr-sample.inc           | 23 +------------------
 3 files changed, 21 insertions(+), 29 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}"
+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
-do_install[noexec] = "1"
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
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-09-30 18:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-30 16:34 [meta-zephyr][PATCH 1/2] zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample Peter Hoyes
2022-09-30 16:34 ` [meta-zephyr][PATCH 2/2] zephyr-core/zephyr-kernel: Implement do_install Peter Hoyes
2022-09-30 18:57 ` [meta-zephyr][PATCH 1/2] zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample Jon Mason

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox