Commit Graph

139 Commits

Author SHA1 Message Date
Andrei Gherzan
5e4e7a1939 zephyr-qemuboot.bbclass: Remove dependency on qemu-system-native
runqemu only really needs the sysroot for qemu-helper-native. Pulling
other qemu dependency would get into a racing issue with rm_work. That
can also be fixed by tweaking the do_addto_recipe_sysroot order in
oe-core for qemu-system-native but that is just not needed for this
specific dependency requirement.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-05-18 12:01:11 +08:00
Andrei Gherzan
5461dda2ce zephyr-qemuboot.bbclass: Don't overwrite the entire elf dictionary key
The nios2_machdata_setfunc was overwriting the elf key in matchdata for
arc done in arc_machdata_setfunc which in turn was overwriting the one
from oe-core. This is making qemu-x86 builds (as an example)
unbuildable:

Exception: KeyError: 'i586'

This patch makes sure that the changes complement the machdata
dictionary as opposed to overwriting the entire "elf" key.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-05-18 12:01:11 +08:00
Naveen Saini
df6d40ed40 zephyr-kernel-src: switch from master branch to main
* branch was renamed in upstream repo

It fixes do_fetch failure

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-05-17 19:14:27 +08:00
Andrei Gherzan
981871dddf zephyr-qemuboot.bbclass: Fix runqemu dependency on qemu native sysroot
The runqemu script depends on having the native sysroot populated for
the qemu recipes. Add the required dependency to the mix.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-05-12 21:06:09 +08:00
Jon Mason
678600bee6 qemuzephyrrunner.py: add tmpfsdir support
OE-Core rev: fd1c26ab426c3699ffd8082b83d65a84c8eb8bff added an
additional parameter, tmpfsdir, to the API.  This caused testimage to no
longer work in meta-zephyr.  Add that parameter and everything is happy
now.

Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-04-27 10:46:58 +08:00
Zbigniew Bodek
15c5eea4ca zephyr-flash-pyocd.bbclass: Fix problems with flashing particular boards
By default, pyocd uses generic target type called "cortex_m" which
should be able to connect and debug but not flash the memory.
Normally pyocd would warn us of using default target instead
of proper one but this message wasn't displayed.

Despite not providing target type, flashing process succeeded
but results were undefined. On Nitrogen, sometimes it worked
(especially for small images) and sometimes the programmed
device crashed miserably.

Fix flashing operation by providing pyocd target type acquired from
the conditional PYOCD_TARGET variable declared for each machine
(chip family).

Signed-off-by: Zbigniew Bodek <zbigniew.bodek@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-04-15 08:05:02 +08:00
Andrei Gherzan
d52c30f411 zephyr-kernel-src.inc: Support samples from external layers
The inc file references patch(es) local to the inc file. Including this
file from another recipe as part of an external layer, will make bitbake
fail finding the files referenced in zephyr-kernel-src.inc's SRC_URI.

By including an explicit path to the files directory in FILESEXTRAPATHS,
we make sure that any recipe including this inc file will inherit the
needed path.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-03-31 13:17:09 +08:00
Jon Mason
dcad4183b0 layer.conf: add hardknott compatibility
Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-03-23 15:45:35 +08:00
Naveen Saini
8f26958025 zephyr-kernel-src.inc: set default preferred version to 2.5.0
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-22 08:24:39 +08:00
Naveen Saini
e641398c0b zephyr: upgrade 2.5.0-rc4 -> 2.5.0
Release notes:
https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v2.5.0

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-22 08:24:39 +08:00
Andrei Gherzan
be40637075 README.txt: Fix small typo in email subject prefix
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:02 +08:00
Andrei Gherzan
7f0a291ee7 zephyr-kernel-src: Upgrade 2.5.0-rc3 to rc4
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:02 +08:00
Andrei Gherzan
8d54c98cc2 zephyr-flash-pyocd.bbclass: Implement configurable probe IDs to program
Implement logic to configure what probes to program based on the
PYOCD_FLASH_IDS variable:
1. by default program all attached probes
2. change default behaviour by listing the probe IDs to flash

CONNECT_TIMEOUT_SECONDS was also renamed to maintain consistency with
the PYOCD_FLASH_IDS variable.

One can query the IDs using `pyocd list`.

The value of PYOCD_FLASH_IDS can also be injected into the datastore
using BB_ENV_EXTRAWHITE.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:02 +08:00
Andrei Gherzan
7dcb47371b zephyr-flash-pyocd.bbclass: Handle import error for pyocd modules
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:02 +08:00
Andrei Gherzan
bdbe1a04c1 zephyr-flash-pyocd.bbclass: Flash the first probe found with a timeout
Currently the code flashes the firmware in a blocking way. If the host
is not configured accordingly (for example in terms of permissions),
this would hang undefinitely. This can easily confuse users and in order
to avoid this, the patch changes to unblocking session creation and
opening call, wrapping the tries in some relevant logging. The timeout
can be defined with `CONNECT_TIMEOUT_SECONDS` which defaults to 30
seconds.

Also, by default, when multiple probes are attached, the session call
will return a selection choice. This would obviously break under bitbake
with an exception:
    Exception: EOFError: EOF when reading a line
Avoid this by selecting the first found probe.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:02 +08:00
Andrei Gherzan
281d492b50 zephyr-peripheral-hr: Add recipe for BT HR sample
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:02 +08:00
Andrei Gherzan
c990a39b3a Use an include file for the common parts of the sample recipes
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:02 +08:00
Andrei Gherzan
146e16bafb zephyr-kernel.inc: Remove include file
This file has little advantage and can be easily replaced by just
directly including the src include file.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Andrei Gherzan
081024fd56 zephyr-kernel-common.inc: Reformat EXTRA_OECMAKE
This will improve diffs readability in the future.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Andrei Gherzan
e59eee66b0 zephyr-kernel-common.inc: Fix configuration CPPFLAGS warning
Configure warns when CPPFLAGS is provided as environment variable and
expects its value to be passed to cmake. This patch does that to
surpress the warning.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Andrei Gherzan
dc0daf2d3d zephyr-kernel-src-2.5.0-rc3.inc: Add support for zephyr kernel version 2.5.0-rc3
This version can be selected defining
PREFERRED_VERSION_zephyr-kernel ??= "2.5.0-rc3"

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Andrei Gherzan
d81e72c050 zephyr-kernel-src: Restructure recipe
* Restructure recipe to use include files as opposed to a bbclass. The
  latter is unnatural when defining versions, sources etc.
* Make the zephyr-kernel-src follow the version as defined by
  PREFERRED_VERSION_zephyr-kernel.
* Make the setup of the zephyr-kernel-src.inc extensible for multiple
  versions.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Andrei Gherzan
1ebcb8a34b Cleanup superflous new lines
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Andrei Gherzan
08a40a7de7 zephyr-flash-pyocd.bbclass: Add missing do_flash_usb dependency on do_deploy
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Andrei Gherzan
6dbedd2083 zephyr-flash-dfu.bbclass: Add missing do_flash_usb dependency on do_deploy
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-17 11:51:01 +08:00
Naveen Saini
2502e9507f arduino-101-ble.conf: drop machine configuration
No longer supported.
66d60d2941

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-09 09:45:54 +08:00
Naveen Saini
ba5aade399 arduino-101-sss.conf: drop machine configuration
No longer supported.
ffaba63b10

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-09 09:45:54 +08:00
Naveen Saini
6813c75d03 arduino-101: drop machine configuration
No longer supported.
ffaba63b10

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-09 09:45:54 +08:00
Naveen Saini
ea627c7977 zephyr-ipm: drop recipe
ipm moved to driver folder. Sample is no longer available.

Ref:
131cfa2043

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-09 09:45:54 +08:00
Naveen Saini
fcd20d1016 zephyr-hci-uart: set COMPATIBLE_MACHINE to 96b-nitrogen machine
Fix recipe to build.
Support for Board arduino-101-ble already dropped from v1.12

Ref:
https://github.com/zephyrproject-rtos/zephyr/blob/v2.4-branch/samples/bluetooth/hci_uart/README.rst
https://github.com/zephyrproject-rtos/zephyr/blob/v2.4-branch/samples/bluetooth/hci_uart/boards/96b_nitrogen.conf

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-09 09:45:54 +08:00
Naveen Saini
ce1c9febfa zephyr-kernel-common.inc: use ZEPHYR_MODULES var
Use ZEPHYR_MODULES variable to pass list of absolute source paths of
additional external modules.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-09 09:45:54 +08:00
Wojciech Zmuda
2fc3697f99 zephyr-peripheral-esp: fix compilation
Bluetooth peripheral ESP sample application does not compile
because of:
 - broken source directory path passing to cmake,
 - broken paths in do_deploy,
 - unnecessary call for do_install,
 - missing tinycrypt.

The first issue caused the following error:

    <...>/gcc/arm-yocto-eabi/9.3.0/ld: <...>/recipe-sysroot/usr/lib/libc.a(lib_a-exit.o): in function `exit':
    /usr/src/debug/newlib/3.2.0-r0/newlib-3.2.0/newlib/libc/stdlib/exit.c:64: undefined reference to `_exit'
    collect2: error: ld returned 1 exit status

Fix the issue by providing Zephyr source directory to cmake
via OECMAKE_SOURCEPATH variable. On the do_configure step cmake
now gets the full path to the sample source code instead of
Zephyr root directory.

The second and third issue caused errors because of missing files.
Don't execute do_install and use the same paths in deploy as the
other sample apps do.

Inspecting meta-zephyr commits history shows that similar approach
was used in bb files of other sample application when updating
them to work with Zephyr 2.0.

For the missing Tinycrypt, append its location to cmake.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-05 16:14:27 +08:00
Wojciech Zmuda
fe509167cb zephyr-kernel: clone Tinycrypt
Tinycrypt is a library used in some sample applications,
i.e. in zephyr-peripheral-esp. Add it to kernel bbclass,
so it can be referenced in applications recipes that
use it.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2021-02-05 16:14:26 +08:00
Wojciech Zmuda
bc8d845e38 conf: machine: add 96boards Avenger96 support
The board is based on STMicro STM32MP157AAC 2xCortex-A7+2xCortex-M4
system-on-chip.

Add STM32MP1 family machine config. STM32MP1 support depends on
STM32 HAL and OpenAMP for inter-core communication.

This change has been verified with zephyr-philosophers
and zephyr-shell sample applications on by loading Zephyr image
to Cortex-M4 core from Linux using remoteproc framework.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-16 09:07:43 +08:00
Wojciech Zmuda
86fcab0456 zephyr-kernel: clone OpenAMP
OpenAMP is a framework providing software components enabling
development of software applications for AMP systems.
It is downloaded by default by west from two Zephyr Project
repositories based on original OpenAMP repositories:

 - open-amp - IPC layer that implements rpmsg communication
              between cores,
 - libmetal - HAL abstraction layer used by open-amp.

Clone the repositories so they can be used for building images
for boards with multicore chips.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-16 09:07:43 +08:00
Wojciech Zmuda
a181f90bf8 zephyr-kernel: clone STM32 HAL
HAL for STM32 chipsets is one of Zephyr subprojects. It is downloaded
by default by west. Clone the HAL repository so it can be used for
building images for boards with STM32 chips.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-16 09:07:43 +08:00
Wojciech Zmuda
4814135be3 classes: build zephyr-kernel-test-all for non-qemu boards
Machines not inheriting zephyr-qemuboot did not have
IMGDEPLOYDIR variable set, which is required for building
zephyr-kernel-test-all. The build was fine for qemu-xxx machines,
but for physical boards it failed somewhere inside python code
when .join() got an empty argument incoming from IMGDEPLOYDIR.
Move IMGDEPLOYDIR to zephyr class, so it's defined for
qemu and non-qemu machines.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-14 08:16:12 +08:00
Wojciech Zmuda
b74dee01fc zephyr-flash-pyocd.bbclass: support for flashing via pyocd
Implement do_flash_usb for boards supported by pyocd:

    MACHINE=xxx bitbake yyy -c flash_usb

Pyocd support abundance of boards, however for now this
meta-layer supports only one board that can be flashed
using pyocd, that is 96Boards Nitrogen.

Describe the feature in README.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-14 08:16:12 +08:00
Wojciech Zmuda
1247d07c6c conf: machine: add 96boards Nitrogen support
The board is based on Nordic nRF52832 Cortex-M4 chip.
The support depends on Nordic HAL. It has been verified
with zephyr-philosophers and zephyr-shell sample applications.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-14 08:16:12 +08:00
Wojciech Zmuda
4dee0261c1 conf: machine: add support for Nordic nRF52832 Cortex-M4 chip
Add include for Cortex-M4 tunes and nRF52832. The nRF config
appends 'nordic' to MACHINEOVERRIDES, so the kernel recipe
can include Nordic HAL when this override is detected.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-14 08:16:12 +08:00
Wojciech Zmuda
33fde6e6bc zephyr-kernel: clone Nordic HAL
HAL for Nordic chipsets is one of Zephyr subprojects. It is downloaded
by default by west. Clone the HAL repository so it can be used for
building images for boards with Nordic chips.

Signed-off-by: Wojciech Zmuda <wojciech.zmuda@huawei.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-12-14 08:16:12 +08:00
yockgenm
36e7d48141 zephyr: Yocto Image Tests Fix
Fix bug on Image Test, previously the Image Tests was not working
due to update on Yocto Image Test Framework.

The fix has rewritten and restructured existing Image Tests code
to latest Yocto testimage class requirement to make meta-zephyr
able to run Image Tests as expected.

Signed-off-by: yockgenm <yock.gen.mah@intel.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-11-09 12:27:14 +08:00
Naveen Saini
26571f7b89 zephyr-kernel-test: drop fatal kernel testcase
kernel 'fatal' testcase has directory structure changes in v2.4.0
version, which does not fit in current meta-zephyr test
build structure. So excluding it for now.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-11-03 10:06:14 +08:00
Jon Mason
ecfdc7c69e zephyr-kernel: add Zephyr RTOS version 2.4.0 support
Update Zephyr to the latest version.  Tested via zephyr-philosophers on
qemu-cortex-m3.

Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-10-30 12:52:22 +08:00
Naveen Saini
78b3556956 qemu-cortex-m3.conf: Disable RNG passthrough
Qemu system does not passthroth RNG on x86 host.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-10-22 13:05:35 +08:00
Ross Burton
5117e90e61 README: add patch submission details
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-10-21 18:47:20 +08:00
Ross Burton
71dd975d79 layer.conf: add layer dependency on meta-python
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-10-21 18:47:20 +08:00
Ross Burton
b6938016f4 zephyr: use TCLIBC=newlib directly
Instead of setting TCLIBC=baremetal and then adding newlib in various places,
just set TCLIBC=newlib directly.

This also means we can use the standard DEPENDS instead of reinventing them.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-10-21 18:47:20 +08:00
Ross Burton
4df23ca31f layer.conf: add compatibility with Gatesgarth
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2020-10-20 09:35:15 +08:00
Jon Mason
0f75e5e827 zephyr.bbclass: Add ability to set board
Currently, there is no ability to set the board used by Zephyr.  This
limits the ability to set the board to something other than the machine
name.  By setting up an intermediate variable, ZEPHYR_BOARD, this can be
set by those that know better (with the default to use the machine name
as before).

Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-09-29 15:46:42 +08:00