diff options
Diffstat (limited to 'meta-zephyr-core/recipes-kernel')
31 files changed, 667 insertions, 0 deletions
diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-cmake-add-yocto-toolchain.patch b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-cmake-add-yocto-toolchain.patch new file mode 100644 index 0000000..563af7d --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-cmake-add-yocto-toolchain.patch @@ -0,0 +1,63 @@ +From bfab268c870548e3e7a24ea67ebed2a0513b2307 Mon Sep 17 00:00:00 2001 +From: Naveen Saini <naveen.kumar.saini@intel.com> +Date: Wed, 7 Jul 2021 13:53:05 +0800 +Subject: [PATCH] cmake: add yocto toolchain + +Upstream status: inappropriate [OE specific] + +Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> +--- + cmake/compiler/gcc/target.cmake | 7 ------- + cmake/toolchain/yocto/generic.cmake | 13 +++++++++++++ + cmake/toolchain/yocto/target.cmake | 1 + + 3 files changed, 14 insertions(+), 7 deletions(-) + create mode 100644 cmake/toolchain/yocto/generic.cmake + create mode 100644 cmake/toolchain/yocto/target.cmake + +diff --git a/cmake/compiler/gcc/target.cmake b/cmake/compiler/gcc/target.cmake +index 2b90c5d2ef..b6f28b2f87 100644 +--- a/cmake/compiler/gcc/target.cmake ++++ b/cmake/compiler/gcc/target.cmake +@@ -68,13 +68,6 @@ execute_process( + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + +-assert_exists(LIBGCC_FILE_NAME) +- +-get_filename_component(LIBGCC_DIR ${LIBGCC_FILE_NAME} DIRECTORY) +- +-assert_exists(LIBGCC_DIR) +- +-LIST(APPEND LIB_INCLUDE_DIR "-L\"${LIBGCC_DIR}\"") + LIST(APPEND TOOLCHAIN_LIBS gcc) + + if(SYSROOT_DIR) +diff --git a/cmake/toolchain/yocto/generic.cmake b/cmake/toolchain/yocto/generic.cmake +new file mode 100644 +index 0000000000..45e5777e2a +--- /dev/null ++++ b/cmake/toolchain/yocto/generic.cmake +@@ -0,0 +1,13 @@ ++set(COMPILER gcc) ++set(LINKER ld) ++set(BINTOOLS gnu) ++ ++set(ZEPHYR_SYSROOT ${ZEPHYR_SYSROOT}) ++set(SYSROOT_DIR ${ZEPHYR_SYSROOT}) ++set(LIBC_LIBRARY_DIR "\"${SYSROOT_DIR}\"/") ++set(LIBC_INCLUDE_DIR ${SYSROOT_DIR}/include) ++LIST(APPEND TOOLCHAIN_LIBS gcc) ++ ++LIST(APPEND LIB_INCLUDE_DIR "-L\"${STAGING_LIBDIR}\"") ++ ++set(TOOLCHAIN_LIBS gcc) +diff --git a/cmake/toolchain/yocto/target.cmake b/cmake/toolchain/yocto/target.cmake +new file mode 100644 +index 0000000000..9881313609 +--- /dev/null ++++ b/cmake/toolchain/yocto/target.cmake +@@ -0,0 +1 @@ ++# SPDX-License-Identifier: Apache-2.0 +-- +2.17.1 + diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-cmake-added-missing-file-ext-to.patch b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-cmake-added-missing-file-ext-to.patch new file mode 100644 index 0000000..6aeca14 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-cmake-added-missing-file-ext-to.patch @@ -0,0 +1,42 @@ +From 783c1f78c8e39751fe89d0883c8bce7336f55e94 Mon Sep 17 00:00:00 2001 +From: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no> +Date: Thu, 19 Aug 2021 08:53:00 +0200 +Subject: [PATCH] cmake: added missing file ext to + lv_font_dejavu_16_persian_hebrew.c + +CMake >= 3.20 requires file extensions explicitly added to source files. + +See CMP0115: +> Starting in CMake 3.20, CMake prefers all source files to have their +> extensions explicitly listed: + +In the CMakeLists.txt, the file lv_font_dejavu_16_persian_hebrew.c +was added without its .c extension, causing never CMakes ti fail +discovering the file. + +This has been fixed by correctly add the file as: +lv_font_dejavu_16_persian_hebrew.c + +Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no> +--- +Upstream-status: Accepted + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 57b07c84..0f433edc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,7 +58,7 @@ zephyr_library_sources( + src/lv_misc/lv_utils.c + + src/lv_font/lv_font.c +- src/lv_font/lv_font_dejavu_16_persian_hebrew ++ src/lv_font/lv_font_dejavu_16_persian_hebrew.c + src/lv_font/lv_font_fmt_txt.c + src/lv_font/lv_font_loader.c + src/lv_font/lv_font_montserrat_12.c +-- +Gitee + diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-x86-fix-efi-binary-generation-issue-in-cross-compila.patch b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-x86-fix-efi-binary-generation-issue-in-cross-compila.patch new file mode 100644 index 0000000..fd6fc6b --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/0001-x86-fix-efi-binary-generation-issue-in-cross-compila.patch @@ -0,0 +1,80 @@ +From cfde3b1018c3151b6cc1fbe3e9e163d0aaf16954 Mon Sep 17 00:00:00 2001 +From: Naveen Saini <naveen.kumar.saini@intel.com> +Date: Tue, 11 May 2021 13:46:39 +0800 +Subject: [PATCH] x86: fix efi binary generation issue in cross compilation env + +Set root directory for headers. + +Upstream-Status: Inappropriate [Cross-compilation specific] + +Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> +--- + arch/x86/zefi/zefi.py | 6 +++++- + boards/x86/ehl_crb/CMakeLists.txt | 1 + + boards/x86/qemu_x86/CMakeLists.txt | 1 + + boards/x86/up_squared/CMakeLists.txt | 1 + + 4 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/arch/x86/zefi/zefi.py b/arch/x86/zefi/zefi.py +index d3514391a8..b9eccbfa10 100755 +--- a/arch/x86/zefi/zefi.py ++++ b/arch/x86/zefi/zefi.py +@@ -106,7 +106,10 @@ def build_elf(elf_file): + # + We need pic to enforce that the linker adds no relocations + # + UEFI can take interrupts on our stack, so no red zone + # + UEFI API assumes 16-bit wchar_t +- cmd = [args.compiler, "-shared", "-Wall", "-Werror", "-I.", ++ ++ # Pass --sysroot path for cross compilation ++ sysrootarg = "--sysroot=" + args.sysroot ++ cmd = [args.compiler, "-shared", "-Wall", "-Werror", "-I.", sysrootarg, + "-fno-stack-protector", "-fpic", "-mno-red-zone", "-fshort-wchar", + "-Wl,-nostdlib", "-T", ldscript, "-o", "zefi.elf", cfile] + verbose(" ".join(cmd)) +@@ -145,6 +148,7 @@ def parse_args(): + parser.add_argument("-o", "--objcopy", required=True, help="objcopy to be used") + parser.add_argument("-f", "--elf-file", required=True, help="Input file") + parser.add_argument("-v", "--verbose", action="store_true", help="Verbose output") ++ parser.add_argument("-s", "--sysroot", required=True, help="Cross compilation --sysroot=path") + + return parser.parse_args() + +diff --git a/boards/x86/ehl_crb/CMakeLists.txt b/boards/x86/ehl_crb/CMakeLists.txt +index 0d572eff30..6a228107dc 100644 +--- a/boards/x86/ehl_crb/CMakeLists.txt ++++ b/boards/x86/ehl_crb/CMakeLists.txt +@@ -5,6 +5,7 @@ set_property(GLOBAL APPEND PROPERTY extra_post_build_commands + -c ${CMAKE_C_COMPILER} + -o ${CMAKE_OBJCOPY} + -f ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.elf ++ -s ${SYSROOT_DIR} + $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose> + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + ) +diff --git a/boards/x86/qemu_x86/CMakeLists.txt b/boards/x86/qemu_x86/CMakeLists.txt +index 1131a5c7ce..489f17192b 100644 +--- a/boards/x86/qemu_x86/CMakeLists.txt ++++ b/boards/x86/qemu_x86/CMakeLists.txt +@@ -4,6 +4,7 @@ set_property(GLOBAL APPEND PROPERTY extra_post_build_commands + -c ${CMAKE_C_COMPILER} + -o ${CMAKE_OBJCOPY} + -f ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.elf ++ -s ${SYSROOT_DIR} + $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose> + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + ) +diff --git a/boards/x86/up_squared/CMakeLists.txt b/boards/x86/up_squared/CMakeLists.txt +index 0eaa9753fc..2e8ce7cfbc 100644 +--- a/boards/x86/up_squared/CMakeLists.txt ++++ b/boards/x86/up_squared/CMakeLists.txt +@@ -5,6 +5,7 @@ set_property(GLOBAL APPEND PROPERTY extra_post_build_commands + -c ${CMAKE_C_COMPILER} + -o ${CMAKE_OBJCOPY} + -f ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.elf ++ -s ${SYSROOT_DIR} + $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose> + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + ) +-- +2.17.1 + diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/arduino-nano-33-ble-storage-partition.patch b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/arduino-nano-33-ble-storage-partition.patch new file mode 100644 index 0000000..4568a41 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/arduino-nano-33-ble-storage-partition.patch @@ -0,0 +1,49 @@ +commit 6c9945aafa00c09149e2052a9c2bccad16dd1d8a +Author: Stefan Schmidt <stefan.schmidt@huawei.com> +Date: Fri May 7 11:47:44 2021 +0200 + + boards/arduino_nano_33_ble: add storage partition at end of flash + + Change default partition table to allow for application which need + storage. One use case is running the OpenThread integration which has + a dependency on this. + + Upstream-Status: Backported [https://github.com/zephyrproject-rtos/zephyr/commit/6c9945aafa00c09149e2052a9c2bccad16dd1d8a] + + Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com> + Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> + +diff --git a/boards/arm/arduino_nano_33_ble/arduino_nano_33_ble.dts b/boards/arm/arduino_nano_33_ble/arduino_nano_33_ble.dts +index d09b66ec43..d11d800eb5 100644 +--- a/boards/arm/arduino_nano_33_ble/arduino_nano_33_ble.dts ++++ b/boards/arm/arduino_nano_33_ble/arduino_nano_33_ble.dts +@@ -44,15 +44,27 @@ + + boot_partition: partition@0 { + label = "sam-ba"; +- reg = <0x0 0x10000>; ++ reg = <0x00000000 0x00010000>; + read-only; + }; + + code_partition: partition@10000 { + label = "code"; +- reg = <0x10000 0xf0000>; ++ reg = <0x00010000 0x000e8000>; + read-only; + }; ++ ++ /* ++ * The flash starting at 0x000f8000 and ending at ++ * 0x000fffff is reserved for use by the application. ++ * ++ * Storage partition will be used by FCB/LittleFS/NVS ++ * if enabled. ++ */ ++ storage_partition: partition@f8000 { ++ label = "storage"; ++ reg = <0x000f8000 0x00008000>; ++ }; + }; + }; + diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/dtc.patch b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/dtc.patch new file mode 100644 index 0000000..f23a438 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/files/dtc.patch @@ -0,0 +1,43 @@ +Upstream-Status: Submitted [https://github.com/zephyrproject-rtos/zephyr/pull/40364] +Signed-off-by: Ross Burton <ross.burton@arm.com> + +From deb6e9b29d77f0d86eb188fb3c5fc6f470277d3d Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@arm.com> +Date: Mon, 15 Nov 2021 14:01:47 +0000 +Subject: [PATCH] cmake: expand DTC version regex + +DTC can be built with both traditional Makefiles or Meson. When built +with Makefiles the --version output looks like 'Version: DTC +1.6.1-dirty' but when built with Meson the output is 'Version: DTC +v1.6.1+. + +This fails to match the version regex and the cmake then fails: + +CMake Error at cmake/host-tools.cmake:28 (if): + if given arguments: + "VERSION_GREATER" "1.4.6" + Unknown arguments specified + +Expanding the regex with an optional 'v' covers both cases and the build +succeeds. + +Signed-off-by: Ross Burton <ross.burton@arm.com> +--- + cmake/host-tools.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/host-tools.cmake b/cmake/host-tools.cmake +index cb7bf2e281..93d33d6390 100644 +--- a/cmake/host-tools.cmake ++++ b/cmake/host-tools.cmake +@@ -20,7 +20,7 @@ if(DTC) + ) + + if(${dtc_status} EQUAL 0) +- string(REGEX MATCH "Version: DTC ([0-9]+[.][0-9]+[.][0-9]+).*" out_var ${dtc_version_output}) ++ string(REGEX MATCH "Version: DTC v?([0-9]+[.][0-9]+[.][0-9]+).*" out_var ${dtc_version_output}) + + # Since it is optional, an outdated version is not an error. If an + # outdated version is discovered, print a warning and proceed as if +-- +2.25.1 diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-blinky.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-blinky.bb new file mode 100644 index 0000000..bd5ce4f --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-blinky.bb @@ -0,0 +1,3 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/basic/blinky" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-coap-client.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-coap-client.bb new file mode 100644 index 0000000..1c79dbe --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-coap-client.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/net/sockets/coap_client" + +ZEPHYR_MODULES:append = "\;${S}/modules/lib/mbedtls" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-coap-server.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-coap-server.bb new file mode 100644 index 0000000..7100f96 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-coap-server.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/net/sockets/coap_server" + +ZEPHYR_MODULES:append = "\;${S}/modules/lib/mbedtls" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-echo-client.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-echo-client.bb new file mode 100644 index 0000000..e7fcaab --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-echo-client.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/net/sockets/echo_client" + +ZEPHYR_MODULES:append = "\;${S}/modules/lib/mbedtls" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-hci-uart.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-hci-uart.bb new file mode 100644 index 0000000..c66c7ec --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-hci-uart.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/bluetooth/hci_uart" + +COMPATIBLE_MACHINE = "(96b-nitrogen)" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-helloworld.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-helloworld.bb new file mode 100644 index 0000000..ac5ce62 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-helloworld.bb @@ -0,0 +1,3 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/hello_world" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-http-client.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-http-client.bb new file mode 100644 index 0000000..d06ad37 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-http-client.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/net/sockets/http_client" + +ZEPHYR_MODULES:append = "\;${S}/modules/lib/mbedtls" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc new file mode 100644 index 0000000..c77692d --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc @@ -0,0 +1,17 @@ +require zephyr-kernel-src.inc +require zephyr-kernel-common.inc + +inherit testimage +inherit deploy + +QEMU_BIN_PATH = "${STAGING_BINDIR_NATIVE}" + +ZEPHYR_BASE = "${S}" +OECMAKE_SOURCEPATH = "${S}/${ZEPHYR_SRC_DIR}" + +do_deploy () { + install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${ZEPHYR_IMAGENAME} +} + +addtask deploy after do_compile +do_install[noexec] = "1" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc new file mode 100644 index 0000000..5ae7504 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc @@ -0,0 +1,67 @@ +# Common settings for all Zephyr recipes + +ZEPHYR_INHERIT_CLASSES += "zephyr cmake" +inherit ${ZEPHYR_INHERIT_CLASSES} +inherit python3native + +# There shouldn't be a manifest for zephyr kernels since there is no root +# filesystem. +IMAGE_NO_MANIFEST = "1" + +ZEPHYR_GCC_VARIANT="yocto" +ZEPHYR_SYSROOT="${STAGING_DIR_TARGET}" + +ZEPHYR_MAKE_OUTPUT = "zephyr.elf" +ZEPHYR_MAKE_BIN_OUTPUT = "zephyr.bin" +ZEPHYR_MAKE_EFI_OUTPUT = "zephyr.efi" + +EXTRA_OECMAKE = "\ + -DZEPHYR_BASE=${S} \ + -DZEPHYR_GCC_VARIANT=yocto \ + -DBOARD=${BOARD} \ + -DARCH=${ARCH} \ + -DCROSS_COMPILE=${CROSS_COMPILE} \ + -DZEPHYR_SYSROOT=${ZEPHYR_SYSROOT} \ + -DZEPHYR_TOOLCHAIN_VARIANT=yocto \ + -DEXTRA_CPPFLAGS=${CPPFLAGS} \ + " + +ZEPHYR_MODULES = "" +ZEPHYR_MODULES:append:arm = "\;${S}/modules/cmsis" +ZEPHYR_MODULES:append:nordic = "\;${S}/modules/hal/nordic" +ZEPHYR_MODULES:append:stm32 = "\;${S}/modules/hal/stm32" +ZEPHYR_MODULES:append:openamp = "\;${S}/modules/lib/open-amp\;${S}/modules/hal/libmetal" + +EXTRA_OECMAKE:append = " -DZEPHYR_MODULES=${ZEPHYR_MODULES}" + +export ZEPHYR_BASE="${S}" + +DEPENDS += "gperf-native python3-pyelftools-native python3-pyyaml-native python3-pykwalify-native" +CROSS_COMPILE = "${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}" + +DEPENDS:append:qemuall = " qemu-native qemu-helper-native" + +# The makefiles are explicit about the flags they want, so don't unset +# them so zephyr flags actually get used. +# This is done here rather than in the task so that things still work +# in devshell. + +python () { + d.delVar('CFLAGS') + d.delVar('CXXFLAGS') + d.delVar('LDFLAGS') +} + +OE_TERMINAL_EXPORTS += "CROSS_COMPILE" +OE_TERMINAL_EXPORTS += "BOARD" +OE_TERMINAL_EXPORTS += "ZEPHYR_SRC_DIR" +OE_TERMINAL_EXPORTS += "ZEPHYR_BASE" +OE_TERMINAL_EXPORTS += "ZEPHYR_SYSROOT" +OE_TERMINAL_EXPORTS += "ZEPHYR_GCC_VARIANT" + +IMAGE_FSTYPES = "elf bin" + +do_configure:prepend() { + # Zephyr expects CPPFLAGS as cmake argument as and ignores env variables. + unset CPPFLAGS +} diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.6.1.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.6.1.inc new file mode 100644 index 0000000..ce5e067 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.6.1.inc @@ -0,0 +1,20 @@ +SRCREV_FORMAT = "default_cmsis" +SRCREV_cmsis = "c3bd2094f92d574377f7af2aec147ae181aa5f8e" +SRCREV_default = "2d6322d74aaac838ead46bfcba0db619cff4b534" +SRCREV_libmetal = "39d049d4ae68e6f6d595fce7de1dcfc1024fb4eb" +SRCREV_lvgl = "31acbaa36e9e74ab88ac81e3d21e7f1d00a71136" +SRCREV_mbedtls = "5765cb7f75a9973ae9232d438e361a9d7bbc49e7" +SRCREV_nordic = "574493fe29c79140df4827ab5d4a23df79d03681" +SRCREV_open-amp = "6010f0523cbc75f551d9256cf782f173177acdef" +SRCREV_openthread = "385e19da1ae15f27872c2543b97276a42f102ead" +SRCREV_stm32 = "f8ff8d25aa0a9e65948040c7b47ec67f3fa300df" +SRCREV_tinycrypt = "3e9a49d2672ec01435ffbf0d788db6d95ef28de0" + +ZEPHYR_BRANCH = "v2.6-branch" +PV = "2.6.1+git${SRCPV}" + +SRC_URI:append = " \ + file://0001-cmake-add-yocto-toolchain.patch \ + file://0001-x86-fix-efi-binary-generation-issue-in-cross-compila.patch \ + file://arduino-nano-33-ble-storage-partition.patch \ +" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.7.1.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.7.1.inc new file mode 100644 index 0000000..9d31c69 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-2.7.1.inc @@ -0,0 +1,20 @@ +SRCREV_FORMAT = "default_cmsis" +SRCREV_cmsis = "b0612c97c1401feeb4160add6462c3627fe90fc7" +SRCREV_default = "e4da3e528088a34a9989f5a50e7ed3149d57de92" +SRCREV_libmetal = "39d049d4ae68e6f6d595fce7de1dcfc1024fb4eb" +SRCREV_lvgl = "31acbaa36e9e74ab88ac81e3d21e7f1d00a71136" +SRCREV_mbedtls = "5765cb7f75a9973ae9232d438e361a9d7bbc49e7" +SRCREV_nordic = "a6e5299041f152da5ae0ab17b2e44e088bb96d6d" +SRCREV_open-amp = "6010f0523cbc75f551d9256cf782f173177acdef" +SRCREV_openthread = "5d706547ebcb0a85e11412bcd88e80e2af98c74d" +SRCREV_stm32 = "5c8275071ec1cf160bfe8c18bbd9330a7d714dc8" +SRCREV_tinycrypt = "3e9a49d2672ec01435ffbf0d788db6d95ef28de0" + +ZEPHYR_BRANCH = "v2.7-branch" +PV = "2.7.1+git${SRCPV}" + +SRC_URI:append = " \ + file://0001-cmake-add-yocto-toolchain.patch \ + file://0001-x86-fix-efi-binary-generation-issue-in-cross-compila.patch \ + file://dtc.patch \ +" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-dev.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-dev.inc new file mode 100644 index 0000000..da2a5d5 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src-dev.inc @@ -0,0 +1,17 @@ +SRCREV_FORMAT = "default_cmsis" +SRCREV_default = "72bb75a360ce05bfc94ff0fbecda2e2d094e3d84" +SRCREV_cmsis = "c3bd2094f92d574377f7af2aec147ae181aa5f8e" +SRCREV_nordic = "00fd2aa97a22ea1052d9dabe1b18ab396daab93a" +SRCREV_stm32 = "4200321ef1cd27cacc37b0439389424156bb1267" +SRCREV_open-amp = "6010f0523cbc75f551d9256cf782f173177acdef" +SRCREV_openthread = "542b14a5bc5b38f29e2cab892c66da670a524b05" +SRCREV_libmetal = "39d049d4ae68e6f6d595fce7de1dcfc1024fb4eb" +SRCREV_tinycrypt = "3e9a49d2672ec01435ffbf0d788db6d95ef28de0" +SRCREV_mbedtls = "5765cb7f75a9973ae9232d438e361a9d7bbc49e7" + +ZEPHYR_BRANCH = "main" +PV = "2.6.0+git${SRCPV}" + +SRC_URI:append = " file://0001-cmake-add-yocto-toolchain.patch \ + file://0001-x86-fix-efi-binary-generation-issue-in-cross-compila.patch \ + " diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src.bb new file mode 100644 index 0000000..92d277d --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src.bb @@ -0,0 +1,19 @@ +include zephyr-kernel-src.inc + +ZEPHYR_TEST_SRCDIR = "tests/legacy/kernel/" + +IMAGE_NO_MANIFEST = "1" +INHIBIT_DEFAULT_DEPS = "1" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" +do_install () { + kerneldir=${D}/usr/src/zephyr + install -d $kerneldir + cp -r ${S}/* $kerneldir +} + +PACKAGES = "${PN}" +FILES:${PN} = "/usr/src/zephyr" + +SYSROOT_DIRS += "/usr/src/zephyr" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src.inc new file mode 100644 index 0000000..da1efea --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-src.inc @@ -0,0 +1,27 @@ +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc" + +inherit cmake + +# This file might be included from other places (like other layers) and not +# having an explicit path to the patches directory, will make bitbake fail to +# find the patch(es) in SRC_URI. +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +SRC_URI = "\ + git://github.com/zephyrproject-rtos/zephyr.git;protocol=https;branch=${ZEPHYR_BRANCH};name=default \ + git://github.com/zephyrproject-rtos/cmsis.git;protocol=https;nobranch=1;destsuffix=git/modules/cmsis;name=cmsis \ + git://github.com/zephyrproject-rtos/hal_nordic.git;protocol=https;nobranch=1;destsuffix=git/modules/hal/nordic;name=nordic \ + git://github.com/zephyrproject-rtos/hal_stm32.git;protocol=https;branch=main;destsuffix=git/modules/hal/stm32;name=stm32 \ + git://github.com/zephyrproject-rtos/libmetal.git;protocol=https;nobranch=1;destsuffix=git/modules/hal/libmetal;name=libmetal \ + git://github.com/zephyrproject-rtos/lvgl.git;branch=zephyr;protocol=https;destsuffix=git/modules/lib/gui/lvgl;name=lvgl \ + git://github.com/zephyrproject-rtos/mbedtls.git;protocol=https;nobranch=1;destsuffix=git/modules/lib/mbedtls;name=mbedtls \ + git://github.com/zephyrproject-rtos/open-amp.git;protocol=https;nobranch=1;destsuffix=git/modules/lib/open-amp;name=open-amp \ + git://github.com/zephyrproject-rtos/openthread.git;protocol=https;nobranch=1;branch=zephyr;destsuffix=git/modules/lib/openthread;name=openthread \ + git://github.com/zephyrproject-rtos/tinycrypt.git;protocol=https;nobranch=1;destsuffix=git/modules/crypto/tinycrypt;name=tinycrypt \ + " +S = "${WORKDIR}/git" + +# Default to a stable version +PREFERRED_VERSION_zephyr-kernel ??= "2.7.1" +include zephyr-kernel-src-${PREFERRED_VERSION_zephyr-kernel}.inc diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test-all.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test-all.bb new file mode 100644 index 0000000..85efd24 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test-all.bb @@ -0,0 +1,18 @@ +LICENSE = "Apache-2.0" +INHIBIT_DEFAULT_DEPS = "1" + +require zephyr-kernel-test.inc + +addtask testimage +deltask compile +deltask install + +do_testimage () { + : +} + +do_testimage[depends] = '${@" ".join(["zephyr-kernel-test-" + x + ":do_testimage" for x in d.getVar("ZEPHYRTESTS", True).split()])}' + +do_build[depends] = '${@" ".join(["zephyr-kernel-test-" + x + ":do_build" for x in d.getVar("ZEPHYRTESTS", True).split()])}' + +do_clean[depends] = '${@" ".join(["zephyr-kernel-test-" + x + ":do_clean" for x in d.getVar("ZEPHYRTESTS", True).split()])}' diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test.bb new file mode 100644 index 0000000..2918d2d --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test.bb @@ -0,0 +1,4 @@ +require zephyr-image.inc +require zephyr-kernel-test.inc + +BBCLASSEXTEND = '${@" ".join(["zephyrtest:" + x for x in d.getVar("ZEPHYRTESTS", True).split()])}' diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc new file mode 100644 index 0000000..77f45a7 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-test.inc @@ -0,0 +1,63 @@ +ZEPHYRTESTS:remove = "fifo fpu_sharing lifo mbox mem_heap mem_pool \ + mem_protect mem_slab msgq mutex pipe profiling sched semaphore \ + stack threads tickless timer workq" + +# Exclude tests which does not build for various reasons +ZEPHYRTESTS:remove = "gen_isr_table spinlock smp mp" + +# Exclude tests that are not currently compiling +ZEPHYRTESTS:remove:96b-avenger96 = "common device poll queue sleep" +ZEPHYRTESTS:remove:96b-nitrogen = "common device poll queue sleep" +ZEPHYRTESTS:remove:arduino-nano-33-ble = "common device poll queue sleep" +ZEPHYRTESTS:remove:nrf52840dk-nrf52840 = "common device poll queue sleep" +ZEPHYRTESTS:remove:qemu-x86 = "common device interrupt poll queue sleep" +ZEPHYRTESTS:remove:stm32mp157c-dk2 = "common device poll queue sleep" + +# test_context will fail because QEMU for ARM does not emulate CortexM3 BASEPRI register +#ZEPHYRTESTS:remove:arm = "" + +# test_critical never finishes in an unpatched QEMU either +#ZEPHYRTESTS:remove:arm = "" + +#Remove ARM specific tests +#ZEPHYRTESTS:remove:x86 = "" + +#Remove tests not intended for Nios2 +#ZEPHYRTESTS:remove:nios2 = "" + +# List of all available kernel tests +ZEPHYRTESTS = " \ + common \ + context \ + device \ + early_sleep \ + fifo \ + fpu_sharing \ + gen_isr_table \ + interrupt \ + lifo \ + mbox \ + mem_heap \ + mem_pool \ + mem_protect \ + mem_slab \ + mp \ + msgq \ + mutex \ + pending \ + pipe \ + poll \ + profiling \ + queue \ + sched \ + semaphore \ + sleep \ + smp \ + spinlock \ + stack \ + threads \ + tickless \ + timer \ + workq \ + xip \ + " diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-lvgl.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-lvgl.bb new file mode 100644 index 0000000..4f08fc7 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-lvgl.bb @@ -0,0 +1,18 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/subsys/display/lvgl" +ZEPHYR_MODULES:append = "\;${S}/modules/lib/gui/lvgl\;${S}/modules/debug/segger" + +# TODO Once more machines and displays are supported, add a PACKAGECONFIG. +EXTRA_OECMAKE:append =" -DSHIELD=adafruit_2_8_tft_touch_v2" + +SRC_URI:append = " \ + file://0001-cmake-added-missing-file-ext-to.patch;patchdir=modules/lib/gui/lvgl \ + git://github.com/zephyrproject-rtos/segger.git;protocol=https;nobranch=1;destsuffix=git/modules/debug/segger;name=segger \ + git://github.com/zephyrproject-rtos/TraceRecorderSource.git;branch=zephyr;protocol=https;destsuffix=git/modules/debug/TraceRecorder;name=TraceRecorderSource \ +" + +SRCREV_segger = "3a52ab222133193802d3c3b4d21730b9b1f1d2f6" +SRCREV_TraceRecorderSource = "36c577727642457b0db7274298a4b96558374832" + +COMATIBLE_MACHINE = "(nrf52840dk-nrf52840)" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-mqtt-publisher.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-mqtt-publisher.bb new file mode 100644 index 0000000..02b3c16 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-mqtt-publisher.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/net/mqtt_publisher" + +ZEPHYR_MODULES:append = "\;${S}/modules/lib/mbedtls" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-openamp-rsc-table.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-openamp-rsc-table.bb new file mode 100644 index 0000000..3eec58a --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-openamp-rsc-table.bb @@ -0,0 +1,10 @@ +include zephyr-sample.inc + + +ZEPHYR_MAKE_OUTPUT = "zephyr_openamp_rsc_table.elf" +ZEPHYR_MAKE_BIN_OUTPUT = "zephyr_openamp_rsc_table.bin" +ZEPHYR_MAKE_EFI_OUTPUT = "zephyr_openamp_rsc_table.efi" + +ZEPHYR_SRC_DIR = "${S}/samples/subsys/ipc/openamp_rsc_table" + +COMPATIBLE_MACHINE = "(stm32mp157c-dk2)" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-openthread-echo-client.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-openthread-echo-client.bb new file mode 100644 index 0000000..88922b8 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-openthread-echo-client.bb @@ -0,0 +1,13 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/net/sockets/echo_client" + +ZEPHYR_MODULES:append = "\;${S}/modules/lib/mbedtls" +ZEPHYR_MODULES:append = "\;${S}/modules/lib/openthread" + +EXTRA_OECMAKE += "-DOVERLAY_CONFIG=overlay-ot.conf" + +# The overlay config and OpenThread itself imposes some specific requirements +# towards the boards (e.g. flash layout and ieee802154 radio) so we need to +# limit to known working machines here. +COMPATIBLE_MACHINE = "(arduino-nano-33-ble)" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-peripheral-esp.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-peripheral-esp.bb new file mode 100644 index 0000000..045ea36 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-peripheral-esp.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/bluetooth/peripheral_esp" + +ZEPHYR_MODULES:append = "\;${S}/modules/crypto/tinycrypt" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-peripheral-hr.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-peripheral-hr.bb new file mode 100644 index 0000000..64fd0ec --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-peripheral-hr.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/bluetooth/peripheral_hr" + +ZEPHYR_MODULES:append = "\;${S}/modules/crypto/tinycrypt" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-philosophers.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-philosophers.bb new file mode 100644 index 0000000..a2afb57 --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-philosophers.bb @@ -0,0 +1,3 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/philosophers" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc new file mode 100644 index 0000000..77fa5ad --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc @@ -0,0 +1,23 @@ +require zephyr-kernel-src.inc +require zephyr-kernel-common.inc +inherit deploy + +ZEPHYR_BASE = "${S}" +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 diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-websocket-client.bb b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-websocket-client.bb new file mode 100644 index 0000000..85f2cda --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-websocket-client.bb @@ -0,0 +1,5 @@ +include zephyr-sample.inc + +ZEPHYR_SRC_DIR = "${S}/samples/net/sockets/websocket_client" + +ZEPHYR_MODULES:append = "\;${S}/modules/lib/mbedtls" |