diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 22a8ef9..145aefd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -79,6 +79,9 @@ nrf52840dk-nrf52840: qemu-cortex-a53: extends: .build + parallel: + matrix: + - TOOLCHAIN: [default, zephyr-toolchain] qemu-cortex-m0: extends: .build @@ -90,7 +93,8 @@ qemu-cortex-m3: extends: .build parallel: matrix: - - TESTING: testimage + - TOOLCHAIN: [default, zephyr-toolchain] + TESTING: testimage qemu-cortex-r5: extends: .build @@ -102,7 +106,8 @@ qemu-x86: extends: .build parallel: matrix: - - TESTING: testimage + - TOOLCHAIN: [default, zephyr-toolchain] + TESTING: testimage stm32mp157c-dk2: extends: .build diff --git a/README.txt b/README.txt index ec860fd..4776a8a 100644 --- a/README.txt +++ b/README.txt @@ -14,9 +14,6 @@ This layer depends on: Python layer (meta-openembedded/meta-python) git://git.openembedded.org/meta-openembedded -Modify local conf by adding: - DISTRO="zephyr" - Add "meta-openembedded/meta-oe" to BBLAYERS Add "meta-openembedded/meta-python" to BBLAYERS Add "meta-zephyr-core" and "meta-zephyr-bsp" to BBLAYERS @@ -25,6 +22,13 @@ Building and Running Zephyr Samples =================================== You can build Zephyr samples. There are several sample recipes. + +To use the Yocto toolchain, modify local conf by adding: + DISTRO="zephyr" + +To use the Zephyr pre-built toolchain, modify local conf by adding: + ZEPHYR_TOOLCHAIN_VARIANT = "zephyr" + For example, to build the Zephyr "philosophers" sample: $ MACHINE=qemu-x86 bitbake zephyr-philosophers diff --git a/ci/zephyr-toolchain.yml b/ci/zephyr-toolchain.yml new file mode 100644 index 0000000..ab8baa3 --- /dev/null +++ b/ci/zephyr-toolchain.yml @@ -0,0 +1,11 @@ +header: + version: 11 + +# The Zephyr toolchain is standalone and does not depend on TCMODE or TCLIB, so +# validate that it is possible to build Zephyr applications alongside a +# poky-based Linux distro +distro: poky + +local_conf_header: + zephyr-toolchain: | + ZEPHYR_TOOLCHAIN_VARIANT = "zephyr" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-toolchain-zephyr.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-toolchain-zephyr.inc new file mode 100644 index 0000000..9987e3c --- /dev/null +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-toolchain-zephyr.inc @@ -0,0 +1,15 @@ +# Additional definitions to use the Zephyr SDK + +# Configure usage of the Zephyr SDK +INHIBIT_DEFAULT_DEPS = "1" +DEPENDS += "zephyr-sdk-native" +export ZEPHYR_SDK_INSTALL_DIR="${STAGING_DIR_NATIVE}${prefix}/zephyr-sdk" +OE_TERMINAL_EXPORTS += "ZEPHYR_SDK_INSTALL_DIR" + +# The Zephyr SDK does not require a CMake toolchain file +EXTRA_OECMAKE:append = " -DCMAKE_TOOLCHAIN_FILE=" +deltask generate_toolchain_file + +# Provide a suitable location to store the toolchain capabilites cache +ZEPHYR_USER_CACHE_DIR = "${B}/.cache" +EXTRA_OECMAKE:append = " -DUSER_CACHE_DIR=${ZEPHYR_USER_CACHE_DIR}"