Compare commits

..

128 Commits

Author SHA1 Message Date
Christopher Friedt
e4da3e5280 release: Bump release to 2.7.1
Bump version to 2.7.1

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2021-12-15 11:34:12 -05:00
Christopher Friedt
604b40118f release: additional entries in release notes
* Bluetooth Host qualification in 2.7 (#39882)
* sensor: qdec_nrfx: PM callback.. (#39687)
* drivers: ieee802154_dw1000: use dedicated wq (#41237)
* spi: slave: division by zero in timeout calculation (#39609)
* Possible bug or undocumented behaviour of spi_write (#39594)

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2021-12-15 11:34:12 -05:00
Krzysztof Kopyściński
7eb6869b24 bluetooth: tester: allow to set DisplayYesNo IO capability
This allows us to run SCPK tests with it.

signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
2021-12-15 10:50:07 -05:00
Andrzej Głąbek
5c08f183f2 drivers: spi_context: Correct alignment of LOG_DBG() parameters
so that the call looks nicer.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2021-12-15 10:49:27 -05:00
Andrzej Głąbek
a74b652d52 drivers: spi_context: Fix handling of zero-length buffers
In some cases, it is quite useful to have the possibility to also
include zero-length buffers in a buffer set used in transfers
(for example, when frames in a protocol consist of several parts,
of which some are optional). So far, the behavior of spi_context
update functions was that the transfer in a given direction was
finished when a zero-length buffer was encountered in the buffer
set. Change those functions to simply skip such buffers. Correct
in the same way also the spi_context_buffers_setup() function.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2021-12-15 10:49:27 -05:00
Andrzej Głąbek
5db25d9882 drivers: spi_context: Do not use transfer timeout in slave mode
Do not use any timeout in the slave mode, as in this case it is not
known when the transfer will actually start and what the frequency
will be.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2021-12-15 10:49:27 -05:00
Johann Fischer
525c112ac3 drivers: ieee802154_dw1000: use dedicated workqueue
Driver has dedicated workqueue for IRQ processing.
Submit work to dedicated workqueue intead of system workqueue.
It also fixes driver functionality when NET_TC_TX_COUNT is set to 0.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-12-15 10:08:11 -05:00
Gerard Marull-Paretas
38bd485a59 sensor: qdec_nrfx: fix PM callback signature
The PM action callback had an incorrect signature, probably a leftover
from the actions conversion.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-12-15 09:55:43 -05:00
Christopher Friedt
18b08740e7 release: v2.7.1 release notes
Release notes for 2.7.1 with list of fixed bugs.

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2021-12-15 08:27:56 -05:00
Evgeniy Paltsev
edd1612388 tests: tracing.osawareness.openocd cleanup
Move all config options to prj.conf. No functional
changes intended.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Evgeniy Paltsev <PaltsevEvgeniy@gmail.com>
2021-12-14 09:11:16 -05:00
Evgeniy Paltsev
142be60c2a tests: fix tracing.osawareness.openocd when thread names disabled
tracing.osawareness.openocd relies on the CONFIG_THREAD_NAME is
enabled, however we don't enable it in test config.

Fix that.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Evgeniy Paltsev <PaltsevEvgeniy@gmail.com>
2021-12-14 09:11:16 -05:00
Evgeniy Paltsev
b0618e11fc tests: fix tracing.osawareness.openocd for SMP platforms
The tracing.osawareness.openocd doesn't support executing
on multicore Zephyr. However we disable multiple CPUs
usage in two different ways for this test:
 - by setting CONFIG_MP_NUM_CPUS to 1
 - by setting CONFIG_SMP to n

It's not correct for all SMP platforms to disable SMP. As
it is also excessive (we can guarantee the execution on
single core by setting CONFIG_MP_NUM_CPUS=1) let's drop
SMP disabling.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Evgeniy Paltsev <PaltsevEvgeniy@gmail.com>
2021-12-14 09:11:16 -05:00
Henrik Brix Andersen
05318b5349 drivers: can: fix can_configure() when CAN-FD is enabled
Currently, can_configure() pass a hard-coded 0 for the data bitrate
(which is only used for CAN-FD), breaking this API for CAN-FD enabled
applications.

Instead pass in the provided bitrate for both arbitration phase and data
phase.

Fixes: #34375

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-12-09 20:01:00 -05:00
Szymon Janc
a14b830775 test/bluetooth/tester: Re-pair on lost bond
If IUT is acting as a central device and peer lost bond we need
to re-pair to restore bond. PTS is not sending any WID for this
so bonding needs to be initiated implicitly by IUT.

This was affecting GAP/SEC/AUT/BV-25-C qualification test case.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-12-08 09:12:58 -05:00
Daniel DeGrasse
644ebe5494 drivers: mcux_flexspi: Default logging to disabled when XIP is used
Program flow will behave incorrectly (memory and instruction fetches
return invalid data) if Flexspi is accessed by the Flexspi driver while
being used as XIP memory by the Cortex M7.

Set logging to disabled by when XIP mode is used in the memc and
flexspi drivers, and warn the user if they attempt to enable it.

Fixes #40133

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2021-12-08 08:57:39 -05:00
Christopher Friedt
d80eaa357a tests: libc: minimal: Add tests for qsort()
This change adds tests for qsort().

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2021-12-08 08:40:32 -05:00
Christopher Friedt
f66b26e28d libc: minimal: add qsort to the minimal libc
This change implements qsort() for the minimal libc via Heapsort.

Heapsort time complexity is O(n log(n)) in the best, average,
and worst cases. It is O(1) in space complexity (i.e. sorts
in-place) and is iterative rather than recursive. Heapsort is
not stable (i.e. does not preserve order of identical elements).

On cortex-m0, this implementation occupies ~240 bytes.

Fixes #28896

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2021-12-08 08:40:32 -05:00
Daniel DeGrasse
078269364a soc: rt6xx: Default flexspi logging to disabled
RT600 uses the mcux flexspi driver, which can produce RWW hazards when
calling code linked into flash (such as the logging subsystem). Disable
logging in flexspi driver by default for RT600 series.

Fixes #40744

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2021-12-06 08:11:23 -05:00
Anas Nashif
9039be480b tests: m2gl025_miv: exclude slow platform from some tests
This platform is slow on some tests and times out on non-hardware
related tests, so exclude it or increase timeout for some of the tests
to avoid false negatives in the test results due to timeouts.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-03 08:40:59 -05:00
Stephanos Ioannidis
f9cafd218f tests: cpp: libcxx: Set minimum RAM requirement for full newlib test
This commit sets the minimum RAM requirement for the full newlib test
(`cpp.libcxx.newlib`) to 24 KiB so that only the target platforms that
can provide sufficient RAM area for the newlib heap are selected.

In case of the newlib full variant, the minimum required newlib heap
size, specified by CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE, is 8192.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-12-03 08:40:35 -05:00
Stephanos Ioannidis
9c23f6a2c9 riscv: Fix C++ exception handling info linking
The RISC-V architecture linker script was including `cplusplus-ram.ld`
linker script before `__data_region_start`, and this caused the content
of `.gcc_except_table` section to be not copied to the RAM by the
`z_data_copy` function; leading to the C++ exception handling
malfunction.

This commit relocates the `cplusplus-ram.ld` linker script inclusion
such that the contents of the relevant sections are properly copied by
the `z_data_copy` function.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-12-03 08:40:35 -05:00
Torsten Rasmussen
9118a7a8be twister: remove CMAKE_EXPORT_COMPILE_COMMANDS=1
The -DCMAKE_EXPORT_COMPILE_COMMANDS=1 is removed from twisterlib.py as
it is now always set by the Zephyr build system.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-12-03 07:37:54 -05:00
Torsten Rasmussen
1d67f68ee1 scripts: support compile_commands.json in gen_app_partitions.py
Fixes: #40590

This commit updates gen_app_partitions.py to include only files present
in the current build by extracting the information from the CMake
generated `compile_commands.json` file.

This ensures that object files in sub-projects, such as `empty_cpu0`,
will not be considered by the script.

Using the compile_commands.json instead of walking the whole build tree
for finding object files also improves performance:

Time of executing `gen_app_partitions.py` (Old):
__________________________
Executed in  480.06 millis
   usr time  425.83 millis
   sys time   49.55 millis

Time of executing `gen_app_partitions.py` (New):
________________________________________________________
Executed in   76.22 millis
   usr time   49.00 millis
   sys time   24.59 millis

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-12-03 07:37:54 -05:00
Anas Nashif
f3169352fd scripts: gen_app_partitions: do not load empty files
Do not load empty files through the ELF parser and raise exception when
magic number of ELF is not matched.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
d98d138b4b actions: twister: remove existing ccache directory
if .ccache exists, remove it and replace it with new .ccache directory.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
ea7c9116e6 actions: twister: determine nodes in python script
Improve calculation of matrix and move calculations from workflow to the
testplan script. We now generate a file that can be parsed by the action
with the data needed to start twister with the right number of nodes.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
ce3e0c9a42 actions: fix filtering for clang action
Do not invoke --integration when dealing with one platform only and
generate testplan only for the needed platforms.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
7df4bffa19 ci: test_plan: fix pylint warnings
Fix some of the warnings reported by pylint.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
72f8d81d57 actions: twister: limit daily job to 60 builders
Keep some builders available for pull requests.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
43274af272 actions: twister: do not schedule on non main branches
We do not want to schedule jobs on branches other than the main branch.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
0abe60b1c2 actions: twister: upload testplan as an artifact
Upload test plan file as an artifact for later verification.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
c9e1bf4509 actions: twister: load modules from cache
We have a local cache, so tell west to clone modules from cache if
available.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
7c69cbc153 actions: twister: run tests on all platforms when changed
When tests are changes, run them on all supported platformed, not only
integration platforms.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Anas Nashif
748bee1180 actions: twister: apply a new strategy from smaller test plans
When the number of tests is smaller, but not too small, we still run on
10 builders, if the test is small enough however, we will determine the
number of builders automatically.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-12-02 23:53:10 -05:00
Jamie McCrae
d8171312a4 boards: arm: bt610: Rename from bt6x0
The BT6x0 board configuration is only valid for the BT610 device,
therefore rename the boards file to BT610

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2021-12-02 11:09:16 -05:00
Szymon Janc
652f04f6ca tests: bluetooth: tester: Fix memory corruption in reconfigured_cb
Pass proper length when memsetting struct.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-12-02 11:08:48 -05:00
Szymon Janc
d72602d95b bluetooth: ATT: Ignore signed writes on EATT bearer
Core Specification 5.3 Vol 3. Part G. 4.2:
The Signed Write Without Response sub-procedure shall only be supported
on the LE Fixed Channel Unenhanced ATT bearer.

This was affecting GATT/SR/GAW/BI-38-C qualification test.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 21:30:09 -05:00
Szymon Janc
b156e0fadc Bluetooth: Disconnect L2CAP channel if peer sent too much data
This was affecting L2CAP/LE/CFC/BV-26-C, L2CAP/LE/CFC/BV-27-C,
L2CAP/ECFC/BV-33-C and L2CAP/ECFC/BV-34-C qualification test cases.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:19:53 -05:00
Daniel N. Hansten
422546623d drivers: led: pca9633: add support for multiple devices
PCA9633 driver does not cunnetly support multiple devices.
Updated the driver to use DT_INST_FOREACH_STATUS_OKAY to
configure all devices defined in the device tree.
Convert driver to use `i2c_dt_spec` helpers.

Fixes #40076

Signed-off-by: Daniel N. Hansten <dnh2000@gmail.com>
2021-11-30 07:19:23 -05:00
Ilya Makarov
07680b27d5 Bluetooth: host: Fix MIC generation in Bluetooth CCM encryption
bt_ccm_encrypt only works when encrypting in place. To fix this
ccm_auth() inside bt_ccm_encrypt() must take plaintext instead of
enc_data, to not rely on assumption that plain and cypher data are the
same memory.

Signed-off-by: Ilya Makarov <ilya.makarov.592@gmail.com>

Fixes: #40069
2021-11-30 07:18:59 -05:00
Vinayak Kariappa Chettimada
96d62441c3 Bluetooth: Controller: Fix DTM HCI command returned error codes
Fix DTM HCI command returned error codes.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-30 07:17:57 -05:00
Vinayak Kariappa Chettimada
136fc6ff28 Bluetooth: Controller: Fix missing DTM Tx/Rx reset on HCI Reset Command
Fix missing implementation to reset DTM Tx/Rx reset on HCI
Reset Command.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-11-30 07:17:57 -05:00
Piotr Pryga
fde888685f Bluetooth: controller: enable missing RSSI while periodic adv sync
The RSSI measurement was not enabled while receiving periodic
advertising. The function responsible for enable the feature
in radio was called, but it was done too early.
It was overwritten by radio_switch_XXX function that assigns
a value to RADIO->SHORTS register.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-11-30 07:17:46 -05:00
Piotr Pryga
6a7cfe1a5f Bluetooth: host: Add handling of failures in per sync established evt
Handling of HCI_LE_Periodic_Advertising_Sync_Established didn't
have implemented handling of possible failures of periodic
advertising synchronization.
There are two situations definded by BT 5.3 Core spec:
- There is no AUX_SYNC_IND pdu within 6 periodic advertising events.
  If that happens, status of the command is set to (0x3E) Connection
  Failed To Be Established / Synchronization Timeout.
- Periodic advertising has wrong CTE type while periodic advertising
  list is not used to determine the advertiser to listen.
  In this case status of the command is set to (0x1A) Unsupported
  Remote Feature.

The commit provides missing functionality.
In case of error, the periodic advertising will be deleted and
application will be notified by call to terminated callback.
The callback data were extended by err member. It provides
information why periodic advertising was terminated.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-11-30 07:17:10 -05:00
Johann Fischer
c8baa85fee usb: function_rndis: do not force USB_COMPOSITE_DEVICE for IAD
Just always prove interface association descriptor for RNDIS
function instead of forcing it via Kconfig USB_COMPOSITE_DEVICE
option.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-11-30 07:16:49 -05:00
Johann Fischer
7fde6f8ac2 usb: function_rndis: align rndis_cmd_pool to request buffer size
Set reasonable range for the request buffer in case RNDIS
function is used. Align net_buf size from rndis_cmd_pool to
request buffer size since request is copied there before
it is queued.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2021-11-30 07:16:49 -05:00
Szymon Janc
7a8a9b6c99 tests: bluetooth: tester: Add support for advertising with target RPA
This allows to do directed advertising with peer address set to RPA.
To do this according to specification IUT must first read Central
Address Resolution characteristic to check if peer supports it.

This is affecting GAP/CONN/DCON/BV-05-C qualification test.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:16:29 -05:00
Szymon Janc
9a6cb39c96 tests: bluetooth: tester: Adjust Directed Advertising to latest BTP
This makes implementation in sync with autopts.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:16:29 -05:00
Ilhan Ates
d290393388 Bluetooth: tester: Add directed adv support
GAP/CONN/DCON/BV-01-C test case needs directed advertising
support.

Signed-off-by: Ilhan Ates <ilhan.ates@nordicsemi.no>
2021-11-30 07:16:29 -05:00
Szymon Janc
28956534cd tests: bluetooth: tester: Add support for security_changed callback
This allows to track security levels and check for lost bond of peer
peripherals.

This was affecting GAP/SEC/AUT/BV-21-C qualification test.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:16:29 -05:00
Szymon Janc
ea9a59f287 tests: bluetooth: tester: Increase ATT prepare write buffers count
GATT/SR/GAW/BV-10-C requires more buffers as it tests nested long
writes.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:16:29 -05:00
Szymon Janc
374d2d031a tests: bluetooth: tester: Add support for pairing failed event
This event is sent if pairing failed.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:16:29 -05:00
Szymon Janc
98bd6534a3 bluetooth: host: Add support for SMP error code 0x0f
This error code informs that peer device rejected key during
keys distribution phase.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:16:29 -05:00
Szymon Janc
9fe9ff18ee tests: bluetooth: tester: Add support for L2CAP channels options
This allows for better control over IUT behaviour by Upper Tester.

PTS and TS require inconsistent behaviour in terms of how IUT should
return credits. Some tests require return on explicit UT request and
some require that IUT returns credits autonomously.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-30 07:16:29 -05:00
Daniel Leung
fe8405271a toolchain: xcc: add macro __in_section_unique_named()
XCC doesn't like having quotes in the section name, so
workaround it by overriding __in_section_unique_named()
similar to __in_section_unique().

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2021-11-30 07:15:47 -05:00
Marek Pieta
a153645d46 bluetooth: att: Fix indication handling
Zephyr device that is not a GATT Client, should ignore indication.

An Android device may send an indication even if Zephyr
device does not support GATT Client role. In that case, the sent
error response was improperly matched to subsequent GATT request
of the Android device which caused issues.

Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
2021-11-30 07:11:55 -05:00
Martin Jäger
89c052e1e5 task_wdt: fix overflow in current_ticks making wdt get stuck
The task_wdt was getting stuck after approx. 36 hours on e.g. nRF52840,
which has a SysTick with 32768 Hz. This corresponds to an overflow of
the uint32_t current_ticks in schedule_next_timeout.

This commit fixes the accidentally introduced narrowing conversion.

Fixes #40152

Signed-off-by: Martin Jäger <martin@libre.solar>
2021-11-30 07:09:58 -05:00
Sylvio Alves
faf0e21a66 samples: shell_module: fix missing qsort reference
PR #39980 added qsort to minimal libc but caused
shell_modules sample to fail building.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2021-11-30 07:09:38 -05:00
Anas Nashif
95c41f6889 actions: twister: remove cleanup job
We now cleanup at the beginning.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Anas Nashif
82e255bf2a actions: check of testplan exists
Check if test plan exist before trying to read it.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Anas Nashif
552a0e1524 actions: twister/clang: cleanup test plan generation
Merged 3 files used to generate the test plan per PR based on the
changes. 2 python scripts and a shell script are now all merged into 1
python script that generates the input file for twister based on a list
of changed files by the PR.

This remove lots of old and obsolete code and simplifies things a bit,
no need anymore for an intermediate script to call twister, we call it
directly in the workflow and use the new test_plan script to generate
the test plan.

This also reenables the recently disabled tag based filtering which had
a bug, bug is resolved in this new implementation.

On push events, we now run twister without the --integration option to
catch any issues in the main branch that were not caught in PRs. PRs
continue to run with --integration enabled. This event (push) is now run
on 15 builders due to the increased size.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Anas Nashif
17e4ed1fd7 doc: replace buildkite with github actions
Update CI docs and the badge with links pointing to GH actions rather
than buildkite.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Anas Nashif
0b91e56939 actions: twister: adapt events to branch
Adapt events and cron to the 2.7 branch.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Anas Nashif
e1e9fa6670 actions: twister: add a cancel job very early on
Cancel using GH runner for faster execution.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Anas Nashif
fe8efca309 actions: clang: add branch name to ccache key
Add branch name to the ccache key to avoid cache contamination from old
branches.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Anas Nashif
328df98c40 actions: run twister using github action
This action replaces current buildkite workflow and uses github actions
to build and run tests in the zephyr tree using twister. The main
differences to current builtkite workflow:

- the action handles all 3 events: pull requests, push and schedule

- the action determines size of matrix (number of build hosts) based on
  the change with a minimum of 1 builder. If more tests are built/run
  due to changes to boards or tests/samples, the matrix size is
  increased. This will avoid timeouts when running over capacity due to
  board/test changes.

- We use ccache and store cache files on amazon S3 for more flexibility

- Results are collected per build host and merged in the final step and
  failures are posted into github action check runs.

- It runs on more powerful instances that can handle more load.
  Currently we have 10 build hosts per run (that can increase depending
  on number of tests run) and can deliver results within 1 hour.

- the action can deal with non code changes and will not allocate more
  than required to deal with changes to documentation and other files
  that do not require running twister

The goal long-term is better integrate this workflow with other actions
and not run unncessarily if other workflows have failed, for example, if
commit message is bogus, we should stop at that check, to avoid wasting
resources given that the commit message will have to be fixed anyways
which would later trigger another run on the same code.

Currently there is 1 open issue with this action related to a github
workflow bug where the final results are not posted to the same workflow
and might appear under other workflows. Github is working on this bug.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-26 06:43:38 -05:00
Alexandre Bourdiol
7e2e9d612d drivers: clock_control: stm32u5: set voltage scaling VOS for MSIS
In case of MSIS selected as system clock source it is necessary
to set Voltage scaling (VOS) when freqency is greater than 24MHz

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2021-11-24 14:20:09 -05:00
Alexandre Bourdiol
6242d56255 drivers: clock_control: stm32u5: keep reset values of MSI trimming
When MSI trimming values where set to 0,
and MSIS is used as system core clock and MSI > 4 MHz,
it causes uart to fail.
There is no need to set thoses trimming values.
So keep the default reset value. (keep ST Factory calibration)

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2021-11-24 14:20:09 -05:00
Alexandre Bourdiol
8bb53d7dc8 drivers: clock_control: stm32u5: rework MSIS as system clock source
Because on stm32u5 MSIS is the default clock after reset,
changing MSIS range means immediate frequency change.
Thus it is important to do it after flash latency change
in case of higher new frequency.

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2021-11-24 14:20:09 -05:00
Alexandre Bourdiol
7ae9f2fadb include: drivers: clock_control: stm32u5 missing MSIS define
Missing definition of STM32_SYSCLK_SRC_MSIS
especially needed for STM32U5

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2021-11-24 14:20:09 -05:00
Johan Lundin
78fc03b07b Bluetooth: Host: Set SID in bt_le_per_adv_sync_recv_info
Sets SID in bt_le_per_adv_sync_recv_info when host receives
a Periodic Advertising Report

Signed-off-by: Johan Lundin <johan.lundin@nordicsemi.no>
2021-11-20 23:15:15 -05:00
Szymon Janc
93e0cc85f7 tests: bluetooth: tester: Fix not marking chan as unused on disconnect
This fix not being able to re-connect channel after disconnect.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-18 19:32:17 -05:00
Szymon Janc
5f4707abe3 bluetooth: Fix L2CAP CoC response code if LTK is present
If an LTK or an STK is available and encryption is required
(LE security mode 1) but encryption is not enabled, the
service request shall be rejected with the error code
"Insufficient Encryption".

This is affecting L2CAP/LE/CFC/BV-25-C and L2CAP/ECFC/BV-32-C
qualification test cases.

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-18 19:29:58 -05:00
Anas Nashif
758bfe43da ci: hotfix: disable test exclusion by tags
Many tests and CI activties are being missed by excluding tests
mistakingly when running twister.
This is visibile when you change one or more tests in kernel/ for
example, twister does not run those tests that have changed at all and
marking the PR as tested and ready to be merged.

Temporary fix for #40235.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
cdb27db36c actions: clang: set reporting before calling twister
Otherwise reporting is skipped and failures are not recorded.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
9ff7a43035 actions: clang: use ccache
Use ccache to speed up builds.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
be9d5426d7 actions: retry west update on various workflows
Retry west when update fails and use update.narrow configuration.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
ebee866639 actions: clang: fix typo
Add missing ")".

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
d4dc4a9714 actions: clang: do not rebase, use commit range
Avoid rebasing and instead use the commit range. This avoids issues with
trees having intermediate rebase data after a reboot (due to
cancellation).

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
faf03b0092 actions: run code coverage only on main tree
Run code coverage reporting on main zephyr repo only.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
126896153b actions: follow namespace for job names
To avoid conflicts in reporting.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
bcc700d732 actions: conflict: update version
Use released version instead of master.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
075ca208a0 actions: compliance: minor improvements
Namespace job names and retry west update if something goes wrong the
first time.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
8d9ac1c5a5 actions: bluetooth: rename action and make it obvious
Rename to make action file name obvious referring to bluetooth, rather
than the tool used.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
85dd671855 actions: bluetooth: fix job names and description
Misc fixes including:
- unique job names
- Change description to mention Bluetooth
- Retry west update
- Use latest unit test publication action

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
04b994883b action: codecov: do not run on weekends
No need to run on weekends, nothing much happens, so lets save some
resources.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
2e89d2c73b actions: fix typo in clang action
Fix a minor typo in action and always set variable controlling reports.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
83c12581c4 action: configure git user
Configure git for rebase by setting user name, email.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
84dd113165 actions: optimize clang actions
- use zephyr runner
- reduce number of builders and adapt matrix to be platform based
- check for changed files and optimize run accordingly, should reduce
  build times depending on what has changed
- If no source has changed, skip twister completely.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Anas Nashif
827e397988 ci: add code coverage action
Add a code coverage collection action that triggers based on a schedule
on the main branch and posts results to

 https://app.codecov.io/gh/zephyrproject-rtos/zephyr

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-11-18 19:16:08 -05:00
Henrik Brix Andersen
a9a563fa55 boards: arm: waveshare_open103z: disable CAN bus tests
Disable CAN bus tests since can1 is disabled by default due to an IRQ
conflict with the USB controller.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-11-18 10:17:34 -05:00
Robert Lubos
0efda1c06f tests: net: all: Add LwM2M to build all test
LwM2M was not covered by networking build all test, leaving an opening
for possible regression in modules that are not enabled by default in
the sample.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-17 10:08:23 -05:00
Robert Lubos
e2fe23a7cc net: lwm2m: Fix removed engine_observer_list usage
`engine_remove_observer_by_path()` was not updated during some recent
LwM2M observer changes, still using the `engine_observer_list` which got
moved into the `lwm2m_context` structure. Update the function to align
with these changes.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-17 10:08:23 -05:00
Andrzej Głąbek
3f24e7ddf5 samples: hci_spi: Decrease maximum number of BT connections
With the maximum number set to 20, the sample fails to build for
both platforms set as allowed for this sample and mentioned in its
documentation, i.e. 96b_carbon_nrf51 and nrf51dk_nrf51422 (a build
attempt ends up with an SRAM region overflow). Use a lower number
to prevent this failure and set both those boards as integration
platforms, so that such problem, if it was to appear again, could be
caught by CI.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2021-11-17 09:06:03 -05:00
Henrik Brix Andersen
3aff490e33 drivers: pwm: mcux: ftm: return -EBUSY if PWM capture in progress
Return -EBUSY (not 0) from pwm_pin_enable_capture() if PWM capture is
already in progress.

Fixes: #39817

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-11-17 09:05:10 -05:00
Robert Lubos
9d31c46861 net: sockets: tls: Fix TCP disconnect detection in poll()
`ztls_socket_data_check()` function ignored a fact when
`mbedtls_ssl_read()` indicated that the underlying TCP connection was
closed. Fix this by returning `-ENOTCONN` in such case, allowing
`poll()` to detect such event.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-17 09:04:47 -05:00
Rafał Kuźnia
27201bb1ad drivers: ieee802154: nrf5: fix NULL pointer dereference
When a frame is sent with a cleared ACK request bit, the transmit
metadata contains a NULL pointer to the ACK frame.

The pointer must not be dereferenced in such case.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2021-11-17 09:04:16 -05:00
Lucas Dietrich
9727a2143f drivers: can: Fixed timeout values comparison
Trivial fix of compilation error "invalid operands to binary "
when CONFIG_CAN_AUTO_BUS_OFF_RECOVERY = n

Fixes #40290

Signed-off-by: Lucas Dietrich <ld.adecy@gmail.com>
2021-11-17 08:54:47 -05:00
Francois Ramu
84abb58886 drivers: uart stm32 flushing Rx register once the RXNE irq is enabled
When the "Read data register not empty" irq occurs,
this commit is cleaning the RXNE flag by flushing the RX register
since the Receive Data Reg. (USART_RDR) has not be read previously
This could be the case when aborting a Rx for example.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-11-17 08:53:47 -05:00
Piotr Pryga
7bdf17756c Bluetooth: controller: ULL: fix dequeue of IQ samples reports
Dequeue and  scheduling IQ samples report towards host
was working by accident. IQ samples were casted to
pointer to struct pdu_adv. Then type of PDU was checked.
Fortunately the IQ samples hadn't got PDU_ADV_TYPE_EXT_IND
in memory pointed by struct pdu_adv->type.

NODE_RX_TYPE_IQ_SAMPLE_REPORT must have separate execution
path in rx_demux_rx.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-11-11 19:21:33 -05:00
Piotr Pryga
961ee2115f BLuetooth: controller: hci: fix wrong sync handle in IQ samples report
There were no assignment to iq_report->hdr.handle in the code
hence all IQ samples reports had the same handle value which
was zero.

Since the handle is related with ll_sync_set pointer the handle
value may not be set in LLL.

The best place to set handle value is thread context where
bt_hci_evt_le_connectionless_iq_report is prepared.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-11-11 19:21:33 -05:00
Krzysztof Chruscinski
053dc75720 kernel: timer: Call user handler without spinlock
Add spinlock unlocking before calling timer expiration
handler. Locking was introduced by dde3d6c.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-11-11 07:21:44 -05:00
Robert Lubos
b7954c9991 samples: net: http_get: Update root CA certificate
The root CA used so far (GlobalSign R2) is about to expire soon
(December 2021) and Google have switched to a new certificate, signed by
GlobalSign R1 (valid until 2028). Therefore we need to replace the
root CA used by the sample to the new one, in order to establish secure
connection to with google.com.

Additionally, the new certificate chain sent by Google is larger again,
so it's needed to increase mbed TLS max content length parameter in
order to process it correctly. This also implies an increase in heap
usage, so increase the heap size as well.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2021-11-10 08:25:56 -05:00
Jacob Siverskog
3a39b7824e bluetooth: host: avoid freeing structure that's part of a linked list
see https://github.com/zephyrproject-rtos/zephyr/pull/39507 for
context.

Signed-off-by: Jacob Siverskog <jacob@teenage.engineering>
2021-11-09 13:45:01 -05:00
Jacob Siverskog
9247efaba8 bluetooth: host: reset channel request on send failure
make sure channel request reference is cleared if send fails. without
this change this could happen when att_handle_rsp was called:

1. reqs before call:
head: 0x2000f8e8, tail: 0x2000f8c0, elements:
- addr 0x2000f8e8, function pointer NULL
- addr 0x2000f8c0, function pointer 0x35c1d

2. att_handle_rsp called, calling bt_att_req_free with address
0x2000f8e8

3. reqs after call:
head: 0x2000f8e8, tail:	0x2000f8c0, elements:
- addr 0x2000f8e8, function pointer NULL
- addr 0x2000f8d4, function pointer NULL
- addr 0x2000f8ac, function pointer NULL
- addr 0x2000f898, function pointer NULL
- addr 0x2000f884, function pointer NULL
- addr 0x2000f870, function pointer 0xd92b7e7c
- addr 0x2000f85c, function pointer 0x462a03a9
- addr 0x2000f848, function pointer 0xf77b2f4b
- addr 0x2000f834, function pointer 0x33714775
- addr 0x2000f820, function pointer 0x31ba37f8
- addr 0x2000f80c, function pointer 0x5fda8494
- addr 0x2000f7f8, function pointer 0xbcff174e
- addr 0x2000f7e4, function pointer 0x341393f
- addr 0x2000f7d0, function pointer 0xbcfee8b8
- addr 0x2000f7bc, function pointer 0x1e73d9e5

which obviously is broken.

closes #39506.

Signed-off-by: Jacob Siverskog <jacob@teenage.engineering>
2021-11-09 13:45:01 -05:00
Szymon Janc
2fbb10c394 tests: bluetooth: tester: Fix NULL pointer dereference in error path
bt_conn_unref() requires valid conn pointer but could be called with
NULL in case valid connection was not found in disconnect_eatt_chans().

Fixes #39851

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2021-11-09 13:41:31 -05:00
Lingao Meng
2f9ae20c60 [backport v2.7-branch] bluetooth: mesh: Fix incorrect return value
Should be continue when client->type not equal PROXY.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-11-09 11:15:27 -05:00
Enjia Mai
8188fd3b5e tests: subsys: libcxx: extend the timeout for cpp.libcxx.newlib_nano
Extend the timeout to prevent the cpp.libcxx.newlib_nano testcase runs
failed in acrn_ehl_crb, ehl_crb and up_squared. We need to give these
boards more time to finish the testcase's automation.

Fixes #36852

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2021-11-08 17:56:18 -05:00
Julien D'ascenzio
8bc60390d0 drivers/uart: stm32: fix a bug during transmission
If a transmission is made with poll_out and immediately after an other
transmission is made with interrupt api the transmission is locked.
We fix this behavior by clearing the tx_poll_stream_on flag during the
irq_tx_enable function

Signed-off-by: Julien D'ascenzio <julien.dascenzio@paratronic.fr>
2021-11-08 17:55:50 -05:00
Francois Ramu
f5d4fb40b5 drivers: clock control disable AHB3 clock in stm32_clock_control_off
This commit is fixing the error on clock control for the AHB3
in the stm32_clock_control_off function.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2021-11-05 15:15:24 -04:00
Lingao Meng
c90e0c1197 Bluetooth: Mesh: Fix missing enable adv thread
When user only use pb-gatt provisioning, which unable to
send out connectable advertising, due to adv thread not started.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-11-05 15:15:05 -04:00
Marcin Niestroj
53d9e942cf samples: sockets: http_get: increase main thread stack size
After commit eeb15aa393 ("timer: hpet: enable 64 bit mode for
better usages") was applied, main thread stack usage on qemu_x86
platform increased from 984 to 1040 bytes.

Default stack size, which is 1024, is no longer enough. Change that to
1536 to make sure this sample runs correctly on qemu_x86.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2021-11-05 15:14:38 -04:00
Pieter De Gendt
dd435b011f net: openthread: Fix alarm timers reference calculation
The OpenThread stack uses uint32_t to calculate expiry time for
alarms, while comparing to zephyr's uint64_t uptime.

This commit fixes broken milliseconds alarms after ~49.7 days of
uptime.

Fixes #39704

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2021-11-05 15:14:22 -04:00
Andy Ross
6a851f1f48 kernel/sched: Fix race with thread return values
There was a brief (but seen in practice on real apps on real
hardware!) race with the switch-based z_swap() implementation.  The
thread return value was being initialized to -EAGAIN after the
enclosing lock had been released.  But that lock is supposed to be
atomic with the thread suspend.

This opened a window for another racing thread to come by and "wake
up" our pending thread (which is fine on its own), set its return
value (e.g. to 0 for success) and then have that value clobbered by
the thread continuing to suspend itself outside the lock.

Melodramatic aside: I continue to hate this
arch_thread_return_value_set() API; it needs to die.  At best it's a
mild optimization on a handful of architectures (e.g. x86 implements
it by writing to the EAX register save slot in the context block).
Asynchronous APIs are almost always worse than synchronous ones, and
in this case it's an async operation that races against literal
context switch code that can't use traditional locking strategies.

Fixes #39575

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-10-29 12:36:58 -04:00
Krzysztof Chruscinski
68a6a3e5c3 logging: Cleaning references to tracing in logging
There were some leftovers in logging after attempt to use
logging as tracing backend. Removing all references since it
lead to test compilation failures.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-10-26 18:22:47 -04:00
Dominik Ermel
dff331a40c west.yml: Update mcumgr to backport fix for issue #38502
The commit updates mcumgr revision to include backport of
   345caab img_mgmt: fix callback parameter values
           (backport-upstream-137-to-v2.7-branch)

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-10-26 17:53:55 -04:00
Timo Teräs
96a7b32e85 drivers: uart_ns16550: Fix dts hw_flow_control mapping to config
DT_INST_NODE_HAS_PROP() returns true always since the boolean
tag is valid. Use DT_INST_PROP_OR() to get the real value.

Fixes: baecd7e55a drivers: uart_ns16550: Remove CMake-based templating
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
2021-10-25 19:20:29 -04:00
Martin Jäger
6f11b2d7f2 task_wdt: ensure hw wdt is started before being fed
If a fallback hardware watchdog is used, it is fed together with the
task watchdog in task_wdt_feed. However, the hardware watchdog was
not yet set up before the first call to task_wdt_feed.

This commit fixes the order of wdt_setup and task_wdt_feed calls.

Fixes #39523

Signed-off-by: Martin Jäger <martin@libre.solar>
2021-10-22 06:50:56 -04:00
Henrik Brix Andersen
5166ff9fb1 drivers: can: flexcan: fix timing parameter limits
Fix the limits for the timing parameter calculations.

The lower limit for the phase_seg2 value is wrongly specified as 1 to 7,
but 1U is substracted before writing it to the CTRL1:PSEG2 register
field. This results in register field values between 0 and 6, but 0 is
an invalid value for the PSEG2 register field.

The upper limits for several of the timing parameters are wrong as well,
but this does not result in invalid register field values being
calculated. It can, however, result in not being able to meet CAN timing
requirements.

The confusion in specifying the limits likely stems from the timing
calculations and timing limits using the "physical" values, whereas the
registers fields all use the "physical" value minus 1. When the
datasheet says "The valid programmable values are 1-7", the
corresponding limits should be set to 2 to 8 to take the "minus 1" into
account.

Fixes: #39541

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-10-22 06:50:04 -04:00
Ryan Erickson
16e3655739 modem: hl7800: fix IPv6 socket creation
When creating a socket, be sure to check the address
family and set the correct address family option in
the AT command.

Signed-off-by: Ryan Erickson <ryan.erickson@lairdconnect.com>
2021-10-19 22:43:27 -04:00
Jakub Rzeszutko
b757110019 shell: fix assert in panic mode
In panic mode, the function: z_shell_fprintf is expected to be
called from an interrupt context. Therefore, the dedicated assert
cannot be checked in this case.

Fixes #38612

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
2021-10-19 18:23:30 -04:00
Torsten Rasmussen
61730131c7 cmake: CMake compile features support
Fixes: #36558 #32577

This commit introduces CMAKE_C_COMPILE_FEATURES and
CMAKE_CXX_COMPILE_FEATURES.

This allows users to use the `target_compile_features()` in their own
code.

In Zephyr, the CMAKE_C/CXX_COMPILE_FEATURES are defined based on the
compiler and the Kconfig / CSTD setting.
Doing so ensures that a user compiling Zephyr with c99 and specifies
`target_compile_features(<target> ... c_std_11)` will get an error.
And similar if building Zephyr with C++ support and c++11, but testing
for `target_compile_features(<target> ... cxx_std_17)`.

For example in the C++ case, the user must ensure that Zephyr is
compiled with C++17, that is: CPLUSPLUS=y and STD_CPP17=y, in which case
the CMAKE_CXX_COMPILE_FEATURES will contain support for C++17 and thus
the `target_compile_features(<target> ... cxx_std_17)` will succeed.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-10-19 18:21:50 -04:00
Maureen Helm
5455bf4ba7 soc: arm: Configure serial driver init priority for NXP SoCs
Configures the default serial driver initialization priority for NXP
SoCs to ensure that serial drivers initialize after clock control
drivers.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-18 09:46:52 -04:00
Maureen Helm
c65645cc39 drivers: serial: Refactor drivers to use shared init priority Kconfig
Refactors all of the serial drivers to use a shared driver class
initialization priority configuration, CONFIG_SERIAL_INIT_PRIORITY, to
allow configuring serial drivers separately from other devices. This is
similar to other driver classes like I2C and SPI.

The default is set to CONFIG_KERNEL_INIT_PRIORITY_DEVICE to preserve the
existing default initialization priority for most drivers. The one
exception is uart_lpc11u6x.c which previously used
CONFIG_KERNEL_INIT_PRIORITY_OBJECTS.

This change was motivated by an issue on the frdm_k64f board where the
serial driver was incorrectly initialized before the clock control
driver.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2021-10-18 09:46:52 -04:00
Henrik Brix Andersen
cef9cbeb60 runners: canopen: poll for flash ready
Poll the flash status instead of just reading the flash status once. Add
support for controlling the number of SDO retries and the SDO timeouts.

These changes allows for greater control of the CANopen program
download, which is especially useful on noisy or congested CAN networks
and on devices with slower flash access.

Fixes: #39409

Signed-off-by: Klaus H. Sorensen <khso@vestas.com>
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2021-10-17 11:52:36 -04:00
Evgeniy Paltsev
ac0477f17c ARC: forbid FIRQ or multiple register banks w/ 1 IRQ priority level
Don't allow to enable multiple register banks / fast
interrupts if we have only one interrupt priority level.

NOTE: we duplicate some checks by adding dependencies to ARC
Kconfig and adding build-time checks in C code. We do it
intentionally as for some reason we can violate dependencies
in architecture-level Kconfig by adding incorrect default in
SoC-level Kconfig. Such violation happens without any
warnings / errors from the Kconfig.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Evgeniy Paltsev <PaltsevEvgeniy@gmail.com>
2021-10-17 11:52:12 -04:00
Jamie McCrae
cb4ed62d98 boards: arm: bl5340_dvk: Fix broken image
This updates the broken image for the BL5340 board to a working one

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2021-10-17 11:51:51 -04:00
Manivannan Sadhasivam
df0c972787 modules: loramac-node: Fix the build issue for US915 and AU915 regions
These 2 regions depends on the RegionBaseUS.c file.

Fixes: #39297

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2021-10-17 11:51:15 -04:00
175 changed files with 2225 additions and 1264 deletions

View File

@@ -11,16 +11,16 @@ on:
- "arch/posix/**"
jobs:
bsim-build-cancel:
bluetooth-test-prep:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
bsim-build:
bluetooth-test-build:
runs-on: ubuntu-latest
needs: bsim-build-cancel
needs: bluetooth-test-prep
container:
image: zephyrprojectrtos/ci:v0.18.4
options: '--entrypoint /bin/bash'
@@ -46,11 +46,11 @@ jobs:
- name: west setup
run: |
west init -l . || true
west update
west config --global update.narrow true
west update 2>&1 1> west.update.log || west update 2>&1 1> west.update2.log
- name: Run Bluetooth Tests with BSIM
run: |
#source zephyr-env.sh
export ZEPHYR_BASE=${PWD}
WORK_DIR=${ZEPHYR_BASE}/bsim_bt_out tests/bluetooth/bsim_bt/compile.sh
RESULTS_FILE=${ZEPHYR_BASE}/${bsim_bt_test_results_file} \
@@ -63,9 +63,9 @@ jobs:
name: Bluetooth Test Results
path: ./bsim_bt_out/bsim_results.xml
publish-test-results:
name: "Publish Unit Tests Results"
needs: bsim-build
bluetooth-test-results:
name: "Publish Bluetooth Test Results"
needs: bluetooth-test-build
runs-on: ubuntu-20.04
# the build-and-test job might be skipped, we don't need to run this job then
if: success() || failure()
@@ -76,10 +76,10 @@ jobs:
with:
path: artifacts
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v1.12
- name: Publish Bluetooth Test Results
uses: EnricoMi/publish-unit-test-result-action@v1
with:
check_name: Bluetooth Test Results
github_token: ${{ secrets.GITHUB_TOKEN }}
files: "**/bsim_results.xml"
comment_on_pr: false
comment_mode: off

View File

@@ -3,7 +3,7 @@ name: Build with Clang/LLVM
on: pull_request_target
jobs:
clang-build-cancel:
clang-build-prep:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
@@ -11,38 +11,51 @@ jobs:
with:
access_token: ${{ github.token }}
clang-build:
runs-on: ubuntu-latest
needs: clang-build-cancel
runs-on: zephyr_runner
needs: clang-build-prep
container:
image: zephyrprojectrtos/ci:v0.18.4
options: '--entrypoint /bin/bash'
volumes:
- /home/runners/zephyrproject:/github/cache/zephyrproject
strategy:
fail-fast: false
matrix:
subset: [1, 2, 3, 4, 5]
platform: ["native_posix"]
env:
ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.13.1
CLANG_ROOT_DIR: /usr/lib/llvm-12
MATRIX_SIZE: 5
COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
BASE_REF: ${{ github.base_ref }}
outputs:
report_needed: ${{ steps.twister.outputs.report_needed }}
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: Update PATH for west
- name: Cleanup
run: |
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: checkout
# hotfix, until we have a better way to deal with existing data
rm -rf zephyr zephyr-testing
- name: Checkout
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: west setup
- name: Environment Setup
run: |
pip3 install GitPython
echo "$HOME/.local/bin" >> $GITHUB_PATH
git config --global user.email "bot@zephyrproject.org"
git config --global user.name "Zephyr Bot"
git rebase origin/${BASE_REF}
git log --pretty=oneline | head -n 10
west init -l . || true
west update
west config --global update.narrow true
# In some cases modules are left in a state where they can't be
# updated (i.e. when we cancel a job and the builder is killed),
# So first retry to update, if that does not work, remove all modules
# and start over. (Workaround until we implement more robust module
# west caching).
west update --path-cache /github/cache/zephyrproject 2>&1 1> west.log || west update --path-cache /github/cache/zephyrproject 2>&1 1> west2.log || ( rm -rf ../modules && west update --path-cache /github/cache/zephyrproject)
- name: Check Environment
run: |
@@ -51,40 +64,76 @@ jobs:
gcc --version
ls -la
- name: Run Tests with Twister
- name: Prepare ccache timestamp/data
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
string(REPLACE "/" "_" repo ${{github.repository}})
string(REPLACE "-" "_" repo2 ${repo})
message("::set-output name=repo::${repo2}")
- name: use cache
id: cache-ccache
uses: nashif/action-s3-cache@master
with:
key: ${{ steps.ccache_cache_timestamp.outputs.repo }}-${{ github.ref_name }}-clang-${{ matrix.platform }}-ccache
path: /github/home/.ccache
aws-s3-bucket: ccache.zephyrproject.org
aws-access-key-id: ${{ secrets.CCACHE_S3_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.CCACHE_S3_SECRET_ACCESS_KEY }}
aws-region: us-east-2
- name: ccache stats initial
run: |
test -d github/home/.ccache && rm -rf /github/home/.ccache && mv github/home/.ccache /github/home/.ccache
ccache -M 10G -s
- name: Run Tests with Twister
id: twister
run: |
#source zephyr-env.sh
export ZEPHYR_BASE=${PWD}
export ZEPHYR_TOOLCHAIN_VARIANT=llvm
./scripts/twister --inline-logs -M -N -v -p native_posix --subset ${{matrix.subset}}/${MATRIX_SIZE} --retry-failed 3
# check if we need to run a full twister or not based on files changed
python3 ./scripts/ci/test_plan.py --platform ${{ matrix.platform }} -c origin/${BASE_REF}..
# We can limit scope to just what has changed
if [ -s testplan.csv ]; then
echo "::set-output name=report_needed::1";
# Full twister but with options based on changes
./scripts/twister --inline-logs -M -N -v --load-tests testplan.csv --retry-failed 2
else
# if nothing is run, skip reporting step
echo "::set-output name=report_needed::0";
fi
- name: ccache stats post
run: |
ccache -s
- name: Upload Unit Test Results
if: always()
if: always() && steps.twister.outputs.report_needed != 0
uses: actions/upload-artifact@v2
with:
name: Unit Test Results (Subset ${{ matrix.subset }})
name: Unit Test Results (Subset ${{ matrix.platform }})
path: twister-out/twister.xml
publish-test-results:
clang-build-results:
name: "Publish Unit Tests Results"
needs: clang-build
runs-on: ubuntu-20.04
# the build-and-test job might be skipped, we don't need to run this job then
if: success() || failure()
if: (success() || failure() ) && needs.clang-build.outputs.report_needed != 0
steps:
- name: Download Artifacts
uses: actions/download-artifact@v2
with:
path: artifacts
- name: Display structure of downloaded files
run: ls -R
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v1.12
uses: EnricoMi/publish-unit-test-result-action@v1
if: always()
with:
check_name: Unit Test Results
github_token: ${{ secrets.GITHUB_TOKEN }}
files: "**/twister.xml"
comment_on_pr: false
comment_mode: off

164
.github/workflows/codecov.yaml vendored Normal file
View File

@@ -0,0 +1,164 @@
name: Code Coverage with codecov
on:
schedule:
- cron: '25 */3 * * 1-5'
jobs:
codecov-prep:
runs-on: ubuntu-latest
if: github.repository == 'zephyrproject-rtos/zephyr'
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
codecov:
runs-on: zephyr_runner
needs: codecov-prep
container:
image: zephyrprojectrtos/ci:v0.18.4
options: '--entrypoint /bin/bash'
strategy:
fail-fast: false
matrix:
platform: ["native_posix", "qemu_x86", "unit_testing"]
env:
ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.13.1
CLANG_ROOT_DIR: /usr/lib/llvm-12
steps:
- name: Update PATH for west
run: |
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: west setup
run: |
west init -l . || true
west update 1> west.update.log || west update 1> west.update-2.log
- name: Check Environment
run: |
cmake --version
${CLANG_ROOT_DIR}/bin/clang --version
gcc --version
ls -la
- name: Prepare ccache keys
id: ccache_cache_prop
shell: cmake -P {0}
run: |
string(REPLACE "/" "_" repo ${{github.repository}})
string(REPLACE "-" "_" repo2 ${repo})
message("::set-output name=repo::${repo2}")
- name: use cache
id: cache-ccache
uses: nashif/action-s3-cache@master
with:
key: ${{ steps.ccache_cache_prop.outputs.repo }}-${{github.event_name}}-${{matrix.platform}}-codecov-ccache
path: /github/home/.ccache
aws-s3-bucket: ccache.zephyrproject.org
aws-access-key-id: ${{ secrets.CCACHE_S3_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.CCACHE_S3_SECRET_ACCESS_KEY }}
aws-region: us-east-2
- name: ccache stats initial
run: |
test -d github/home/.ccache && mv github/home/.ccache /github/home/.ccache
ccache -M 10G -s
- name: Run Tests with Twister (Push)
continue-on-error: true
run: |
export ZEPHYR_BASE=${PWD}
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
mkdir -p coverage/reports
./scripts/twister -N -v --filter runnable -p ${{ matrix.platform }} --coverage -T tests
- name: Generate Coverage Report
run: |
mv twister-out/coverage.info lcov.pre.info
lcov -q --remove lcov.pre.info mylib.c --remove lcov.pre.info tests/\* \
--remove lcov.pre.info samples/\* --remove lcov.pre.info ext/\* \
--remove lcov.pre.info *generated* \
-o coverage/reports/${{ matrix.platform }}.info --rc lcov_branch_coverage=1
- name: ccache stats post
run: |
ccache -s
- name: Upload Coverage Results
if: always()
uses: actions/upload-artifact@v2
with:
name: Coverage Data (Subset ${{ matrix.platform }})
path: coverage/reports/${{ matrix.platform }}.info
codecov-results:
name: "Publish Coverage Results"
needs: codecov
runs-on: ubuntu-latest
# the codecov job might be skipped, we don't need to run this job then
if: success() || failure()
steps:
- name: checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Download Artifacts
uses: actions/download-artifact@v2
with:
path: coverage/reports
- name: Move coverage files
run: |
mv ./coverage/reports/*/*.info ./coverage/reports
ls -la ./coverage/reports
- name: Generate list of coverage files
id: get-coverage-files
shell: cmake -P {0}
run: |
file(GLOB INPUT_FILES_LIST "coverage/reports/*.info")
set(MERGELIST "")
set(FILELIST "")
foreach(ITEM ${INPUT_FILES_LIST})
get_filename_component(f ${ITEM} NAME)
if(FILELIST STREQUAL "")
set(FILELIST "${f}")
else()
set(FILELIST "${FILELIST},${f}")
endif()
endforeach()
foreach(ITEM ${INPUT_FILES_LIST})
get_filename_component(f ${ITEM} NAME)
if(MERGELIST STREQUAL "")
set(MERGELIST "-a ${f}")
else()
set(MERGELIST "${MERGELIST} -a ${f}")
endif()
endforeach()
message("::set-output name=mergefiles::${MERGELIST}")
message("::set-output name=covfiles::${FILELIST}")
- name: Merge coverage files
run: |
sudo apt-get install -y lcov
cd ./coverage/reports
lcov ${{ steps.get-coverage-files.outputs.mergefiles }} -o merged.info --rc lcov_branch_coverage=1
- name: Upload coverage to Codecov
if: always()
uses: codecov/codecov-action@v2
with:
directory: ./coverage/reports
env_vars: OS,PYTHON
fail_ci_if_error: false
verbose: true
files: merged.info

View File

@@ -1,4 +1,4 @@
name: Compliance
name: Compliance Checks
on: pull_request
@@ -19,7 +19,7 @@ jobs:
run: |
python3 ./scripts/get_maintainer.py path CMakeLists.txt
compliance_job:
check_compliance:
runs-on: ubuntu-latest
name: Run compliance checks on patch series (PR)
steps:
@@ -57,7 +57,7 @@ jobs:
# debug
git log --pretty=oneline | head -n 10
west init -l . || true
west update
west update 2>&1 1> west.update.log || west update 2>&1 1> west.update2.log
- name: Run Compliance Tests
continue-on-error: true

View File

@@ -8,7 +8,7 @@ jobs:
conflict:
runs-on: ubuntu-latest
steps:
- uses: mschilde/auto-label-merge-conflicts@master
- uses: mschilde/auto-label-merge-conflicts@v2
with:
CONFLICT_LABEL_NAME: "has conflicts"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -52,7 +52,8 @@ jobs:
- name: west setup
run: |
west init -l . || true
west update
west config --global update.narrow true
west update 2>&1 1> west.update.log || west update 2>&1 1> west.update2.log
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1

View File

@@ -42,7 +42,8 @@ jobs:
- name: west setup
run: |
west init -l . || true
west update
west config --global update.narrow true
west update 2>&1 1> west.update.log || west update 2>&1 1> west.update.log
- name: Detect Changes in Footprint
env:

248
.github/workflows/twister.yaml vendored Normal file
View File

@@ -0,0 +1,248 @@
name: Run tests with twister
on:
push:
pull_request_target:
schedule:
# Run at 00:00 on Saturday
- cron: '20 0 * * 6'
jobs:
twister-build-cleanup:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
twister-build-prep:
runs-on: zephyr_runner
needs: twister-build-cleanup
container:
image: zephyrprojectrtos/ci:v0.18.4
options: '--entrypoint /bin/bash'
volumes:
- /home/runners/zephyrproject:/github/cache/zephyrproject
outputs:
subset: ${{ steps.output-services.outputs.subset }}
size: ${{ steps.output-services.outputs.size }}
env:
MATRIX_SIZE: 10
PUSH_MATRIX_SIZE: 15
DAILY_MATRIX_SIZE: 80
ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.13.1
CLANG_ROOT_DIR: /usr/lib/llvm-12
TESTS_PER_BUILDER: 700
COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
BASE_REF: ${{ github.base_ref }}
steps:
- name: Cleanup
run: |
# hotfix, until we have a better way to deal with existing data
rm -rf zephyr zephyr-testing
- name: Checkout
if: github.event_name == 'pull_request_target'
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Environment Setup
if: github.event_name == 'pull_request_target'
run: |
pip3 install GitPython
git config --global user.email "bot@zephyrproject.org"
git config --global user.name "Zephyr Bot"
git rebase origin/${BASE_REF}
git log --pretty=oneline | head -n 10
west init -l . || true
# no need for west update here
- name: Generate Test Plan with Twister
if: github.event_name == 'pull_request_target'
id: test-plan
run: |
export ZEPHYR_BASE=${PWD}
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
# temporary until we have all PRs rebased on top of this commit.
git log -n 500 --oneline | grep -q "run twister using github action" || (
echo "Your branch is not up to date, you need to rebase on top of latest HEAD of main branch"
exit 1
)
python3 ./scripts/ci/test_plan.py -c origin/${BASE_REF}.. --pull-request -t $TESTS_PER_BUILDER
if [ -s .testplan ]; then
cat .testplan >> $GITHUB_ENV
else
echo "TWISTER_NODES=${MATRIX_SIZE}" >> $GITHUB_ENV
fi
rm -f testplan.csv .testplan
- name: Determine matrix size
id: output-services
run: |
if [ "${{github.event_name}}" = "pull_request_target" ]; then
if [ -n "${TWISTER_NODES}" ]; then
subset="[$(seq -s',' 1 ${TWISTER_NODES})]"
else
subset="[$(seq -s',' 1 ${MATRIX_SIZE})]"
fi
size=${TWISTER_NODES}
elif [ "${{github.event_name}}" = "push" ]; then
subset="[$(seq -s',' 1 ${PUSH_MATRIX_SIZE})]"
size=${MATRIX_SIZE}
elif [ "${{github.event_name}}" = "schedule" && "${{github.repository}}" = "zephyrproject-rtos/zephyr" ]; then
subset="[$(seq -s',' 1 ${DAILY_MATRIX_SIZE})]"
size=${DAILY_MATRIX_SIZE}
else
size=0
fi
echo "::set-output name=subset::${subset}";
echo "::set-output name=size::${size}";
twister-build:
runs-on: zephyr_runner
needs: twister-build-prep
if: needs.twister-build-prep.outputs.size != 0
container:
image: zephyrprojectrtos/ci:v0.18.4
options: '--entrypoint /bin/bash'
volumes:
- /home/runners/zephyrproject:/github/cache/zephyrproject
strategy:
fail-fast: false
matrix:
subset: ${{fromJSON(needs.twister-build-prep.outputs.subset)}}
env:
ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.13.1
CLANG_ROOT_DIR: /usr/lib/llvm-12
TWISTER_COMMON: ' --inline-logs -v -N -M --retry-failed 3 '
DAILY_OPTIONS: ' -M --build-only --all '
PR_OPTIONS: ' --clobber-output --integration '
PUSH_OPTIONS: ' --clobber-output -M '
COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
BASE_REF: ${{ github.base_ref }}
steps:
- name: Cleanup
run: |
# hotfix, until we have a better way to deal with existing data
rm -rf zephyr zephyr-testing
- name: Checkout
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Environment Setup
run: |
pip3 install GitPython
if [ "${{github.event_name}}" = "pull_request_target" ]; then
git config --global user.email "bot@zephyrproject.org"
git config --global user.name "Zephyr Builder"
git rebase origin/${BASE_REF}
git log --pretty=oneline | head -n 10
fi
echo "$HOME/.local/bin" >> $GITHUB_PATH
west init -l . || true
west config --global update.narrow true
west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || ( rm -rf ../modules && west update --path-cache /github/cache/zephyrproject)
west forall -c 'git reset --hard HEAD'
- name: Check Environment
run: |
cmake --version
${CLANG_ROOT_DIR}/bin/clang --version
gcc --version
ls -la
echo "github.ref: ${{ github.ref }}"
echo "github.base_ref: ${{ github.base_ref }}"
echo "github.ref_name: ${{ github.ref_name }}"
- name: Prepare ccache timestamp/data
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
string(REPLACE "/" "_" repo ${{github.repository}})
string(REPLACE "-" "_" repo2 ${repo})
message("::set-output name=repo::${repo2}")
- name: use cache
id: cache-ccache
uses: nashif/action-s3-cache@master
with:
key: ${{ steps.ccache_cache_timestamp.outputs.repo }}-${{ github.ref_name }}-${{github.event_name}}-${{ matrix.subset }}-ccache
path: /github/home/.ccache
aws-s3-bucket: ccache.zephyrproject.org
aws-access-key-id: ${{ secrets.CCACHE_S3_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.CCACHE_S3_SECRET_ACCESS_KEY }}
aws-region: us-east-2
- name: ccache stats initial
run: |
test -d github/home/.ccache && rm -rf /github/home/.ccache && mv github/home/.ccache /github/home/.ccache
ccache -M 10G -s
- if: github.event_name == 'push'
name: Run Tests with Twister (Push)
run: |
export ZEPHYR_BASE=${PWD}
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
./scripts/twister --subset ${{matrix.subset}}/${{ strategy.job-total }} ${TWISTER_COMMON} ${PUSH_OPTIONS}
- if: github.event_name == 'pull_request_target'
name: Run Tests with Twister (Pull Request)
run: |
rm -f testplan.csv
export ZEPHYR_BASE=${PWD}
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
python3 ./scripts/ci/test_plan.py -c origin/${BASE_REF}.. --pull-request
./scripts/twister --subset ${{matrix.subset}}/${{ strategy.job-total }} --load-tests testplan.csv ${TWISTER_COMMON} ${PR_OPTIONS}
- if: github.event_name == 'schedule'
name: Run Tests with Twister (Daily)
run: |
export ZEPHYR_BASE=${PWD}
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
./scripts/twister --subset ${{matrix.subset}}/${{ strategy.job-total }} ${TWISTER_COMMON} ${DAILY_OPTIONS}
- name: ccache stats post
run: |
ccache -s
- name: Upload Unit Test Results
if: always()
uses: actions/upload-artifact@v2
with:
name: Unit Test Results (Subset ${{ matrix.subset }})
if-no-files-found: ignore
path: |
twister-out/twister.xml
testplan.csv
twister-test-results:
name: "Publish Unit Tests Results"
needs: twister-build
runs-on: ubuntu-latest
# the build-and-test job might be skipped, we don't need to run this job then
if: success() || failure()
steps:
- name: Download Artifacts
uses: actions/download-artifact@v2
with:
path: artifacts
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v1
with:
check_name: Unit Test Results
github_token: ${{ secrets.GITHUB_TOKEN }}
files: "**/twister.xml"
comment_mode: off

View File

@@ -168,21 +168,29 @@ if(CONFIG_CPLUSPLUS)
# Kconfig choice ensures only one of these CONFIG_STD_CPP* is set.
if(CONFIG_STD_CPP98)
set(STD_CPP_DIALECT_FLAGS $<TARGET_PROPERTY:compiler-cpp,dialect_cpp98>)
list(APPEND CMAKE_CXX_COMPILE_FEATURES ${compile_features_cpp98})
elseif(CONFIG_STD_CPP11)
set(STD_CPP_DIALECT_FLAGS $<TARGET_PROPERTY:compiler-cpp,dialect_cpp11>) # Default in kconfig
list(APPEND CMAKE_CXX_COMPILE_FEATURES ${compile_features_cpp11})
elseif(CONFIG_STD_CPP14)
set(STD_CPP_DIALECT_FLAGS $<TARGET_PROPERTY:compiler-cpp,dialect_cpp14>)
list(APPEND CMAKE_CXX_COMPILE_FEATURES ${compile_features_cpp14})
elseif(CONFIG_STD_CPP17)
set(STD_CPP_DIALECT_FLAGS $<TARGET_PROPERTY:compiler-cpp,dialect_cpp17>)
list(APPEND CMAKE_CXX_COMPILE_FEATURES ${compile_features_cpp17})
elseif(CONFIG_STD_CPP2A)
set(STD_CPP_DIALECT_FLAGS $<TARGET_PROPERTY:compiler-cpp,dialect_cpp2a>)
list(APPEND CMAKE_CXX_COMPILE_FEATURES ${compile_features_cpp20})
elseif(CONFIG_STD_CPP20)
set(STD_CPP_DIALECT_FLAGS $<TARGET_PROPERTY:compiler-cpp,dialect_cpp20>)
list(APPEND CMAKE_CXX_COMPILE_FEATURES ${compile_features_cpp20})
elseif(CONFIG_STD_CPP2B)
set(STD_CPP_DIALECT_FLAGS $<TARGET_PROPERTY:compiler-cpp,dialect_cpp2b>)
list(APPEND CMAKE_CXX_COMPILE_FEATURES ${compile_features_cpp20})
else()
assert(0 "Unreachable code. Expected C++ standard to have been chosen. See Kconfig.zephyr.")
endif()
set(CMAKE_CXX_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES} PARENT_SCOPE)
zephyr_compile_options($<$<COMPILE_LANGUAGE:CXX>:${STD_CPP_DIALECT_FLAGS}>)
endif()
@@ -979,6 +987,7 @@ set_ifndef(CSTD c99)
zephyr_compile_options(
$<$<COMPILE_LANGUAGE:C>:$<TARGET_PROPERTY:compiler,cstd>${CSTD}>
)
set(CMAKE_C_COMPILE_FEATURES ${compile_features_${CSTD}} PARENT_SCOPE)
# @Intent: Configure linker scripts, i.e. generate linker scripts with variables substituted
toolchain_ld_configure_files()
@@ -1035,7 +1044,7 @@ if(CONFIG_USERSPACE)
OUTPUT ${APP_SMEM_UNALIGNED_LD} ${APP_SMEM_PINNED_UNALIGNED_LD}
COMMAND ${PYTHON_EXECUTABLE}
${ZEPHYR_BASE}/scripts/gen_app_partitions.py
-d ${OBJ_FILE_DIR}
-f ${CMAKE_BINARY_DIR}/compile_commands.json
-o ${APP_SMEM_UNALIGNED_LD}
$<$<BOOL:${APP_SMEM_PINNED_UNALIGNED_LD}>:--pinoutput=${APP_SMEM_PINNED_UNALIGNED_LD}>
${APP_SMEM_PINNED_PARTITION_LIST_ARG}

View File

@@ -8,9 +8,10 @@
<a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
<a href="https://buildkite.com/zephyr/zephyr">
<a
href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
<img
src="https://badge.buildkite.com/f5bd0dc88306cee17c9b38e78d11bb74a6291e3f40e7d13f31.svg?branch=main"></a>
src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>
The Zephyr Project is a scalable real-time operating system (RTOS) supporting
@@ -62,8 +63,7 @@ Here's a quick summary of resources to help you find your way around:
`Zephyr Development mailing list`_. The other `Zephyr mailing list
subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
The builds@lists.zephyrproject.org mailing list archives the CI
(buildkite) nightly build results.
The builds@lists.zephyrproject.org mailing list archives the CI nightly build results.
* **Chat**: Real-time chat happens in Zephyr's Discord Server. Use
this `Discord Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_

View File

@@ -1,5 +1,5 @@
VERSION_MAJOR = 2
VERSION_MINOR = 7
PATCHLEVEL = 0
PATCHLEVEL = 1
VERSION_TWEAK = 0
EXTRAVERSION =

View File

@@ -136,6 +136,7 @@ config NUM_IRQS
config RGF_NUM_BANKS
int "Number of General Purpose Register Banks"
depends on ARC_FIRQ
depends on NUM_IRQ_PRIO_LEVELS > 1
range 1 2
default 2
help
@@ -145,10 +146,15 @@ config RGF_NUM_BANKS
If fast interrupts are supported but there is only 1
register bank, the fast interrupt handler must save
and restore general purpose registers.
NOTE: it's required to have more than one interrupt priority level
to use second register bank - otherwise all interrupts will use
same register bank. Such configuration isn't supported in software
and it is not beneficial from the performance point of view.
config ARC_FIRQ
bool "FIRQ enable"
depends on ISA_ARCV2
depends on NUM_IRQ_PRIO_LEVELS > 1
default y
help
Fast interrupts are supported (FIRQ). If FIRQ enabled, for interrupts
@@ -156,6 +162,10 @@ config ARC_FIRQ
other regs will be saved according to the number of register bank;
If FIRQ is disabled, the handle of interrupts with highest priority
will be same with other interrupts.
NOTE: we don't allow the configuration with FIRQ enabled and only one
interrupt priority level (so all interrupts are FIRQ). Such
configuration isn't supported in software and it is not beneficial
from the performance point of view.
config ARC_FIRQ_STACK
bool "Enable separate firq stack"

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View File

@@ -43,8 +43,8 @@ This development kit has the following features:
* :abbr:`USB (Universal Serial Bus)`
* :abbr:`WDT (Watchdog Timer)`
.. figure:: img/bl5340_dvk_front.jpg
:width: 800px
.. figure:: img/bl5340_dvk_top.png
:width: 340px
:align: center
:alt: BL5340 DVK

View File

@@ -1,4 +1,4 @@
# BT6X0 board configuration
# BT610 board configuration
# Copyright (c) 2021 Laird Connectivity
# SPDX-License-Identifier: Apache-2.0
@@ -7,4 +7,4 @@ config BOARD_ENABLE_DCDC
bool "Enable DCDC mode"
select SOC_DCDC_NRF52X
default y
depends on BOARD_BT6X0
depends on BOARD_BT610

View File

@@ -1,8 +1,8 @@
# BT6X0 board configuration
# BT610 board configuration
# Copyright (c) 2021 Laird Connectivity
# SPDX-License-Identifier: Apache-2.0
config BOARD_BT6X0
bool "BT6X0"
config BOARD_BT610
bool "BT610"
depends on SOC_NRF52840_QIAA

View File

@@ -3,10 +3,10 @@
# Copyright (c) 2021 Laird Connectivity
# SPDX-License-Identifier: Apache-2.0
if BOARD_BT6X0
if BOARD_BT610
config BOARD
default "bt6x0"
default "bt610"
config IEEE802154_NRF5
default y
@@ -21,4 +21,4 @@ DT_COMPAT_TI_TCA9538 := ti,tca9538
config I2C
default $(dt_compat_on_bus,$(DT_COMPAT_TI_TCA9538),i2c)
endif # BOARD_BT6X0
endif # BOARD_BT610

View File

@@ -8,8 +8,8 @@
#include <nordic/nrf52840_qiaa.dtsi>
/ {
model = "Laird BT6x0 Sensor";
compatible = "lairdconnect,bt6x0";
model = "Laird BT610 Sensor";
compatible = "lairdconnect,bt610";
chosen {
zephyr,console = &uart0;

View File

@@ -1,5 +1,5 @@
identifier: bt6x0
name: BT6X0
identifier: bt610
name: BT610
type: mcu
arch: arm
ram: 256

View File

@@ -2,7 +2,7 @@
CONFIG_SOC_SERIES_NRF52X=y
CONFIG_SOC_NRF52840_QIAA=y
CONFIG_BOARD_BT6X0=y
CONFIG_BOARD_BT610=y
# Enable MPU
CONFIG_ARM_MPU=y

View File

@@ -1,12 +1,12 @@
.. _bt6x0:
.. _bt610:
Laird Connectivity Sentrius BT6x0 Sensor
Laird Connectivity Sentrius BT610 Sensor
########################################
Overview
********
The Sentrius™ BT6x0 Sensor is a battery powered, Bluetooth v5 Long Range
The Sentrius™ BT610 Sensor is a battery powered, Bluetooth v5 Long Range
integrated sensor platform that uses a Nordic Semiconductor nRF52840 ARM
Cortex-M4F CPU.
@@ -28,19 +28,19 @@ The sensor has the following features:
* :abbr:`UART (Universal Asynchronous Receiver-Transmitter)`
* :abbr:`WDT (Watchdog Timer)`
.. figure:: img/bt6x0_front.jpg
.. figure:: img/bt610_front.jpg
:width: 500px
:align: center
:alt: Sentrius BT6x0 Sensor, front view
:alt: Sentrius BT610 Sensor, front view
Sentrius BT6x0 Sensor, front view
Sentrius BT610 Sensor, front view
.. figure:: img/bt6x0_back.jpg
.. figure:: img/bt610_back.jpg
:width: 500px
:align: center
:alt: Sentrius BT6x0 Sensor, rear view
:alt: Sentrius BT610 Sensor, rear view
Sentrius BT6x0 Sensor, rear view
Sentrius BT610 Sensor, rear view
More information about the board can be found at the
`Sentrius BT610 website`_.
@@ -51,7 +51,7 @@ Hardware
Supported Features
==================
The BT6x0 Sensor supports the following
The BT610 Sensor supports the following
hardware features:
+-----------+------------+----------------------+
@@ -89,12 +89,12 @@ hardware features:
| WDT | on-chip | watchdog |
+-----------+------------+----------------------+
.. figure:: img/bt6x0_board.jpg
.. figure:: img/bt610_board.jpg
:width: 500px
:align: center
:alt: Sentrius BT6x0 Sensor, board layout
:alt: Sentrius BT610 Sensor, board layout
Sentrius BT6x0 Sensor, board layout
Sentrius BT610 Sensor, board layout
Connections and IOs
===================
@@ -102,7 +102,7 @@ Connections and IOs
LED
---
Two LEDs are visible through the BT6x0 housing lid. Note that the LEDs can be
Two LEDs are visible through the BT610 housing lid. Note that the LEDs can be
driven either directly, or via PWM. PWM should be used when current consumption
is required to be minimised.
@@ -115,7 +115,7 @@ is required to be minimised.
Push button
------------
The BT6x0 incorporates three mechanical push buttons. Note these are only
The BT610 incorporates three mechanical push buttons. Note these are only
accessible with the housing cover removed.
Two of the buttons are available for use via the board DTS file, as follows.
@@ -129,7 +129,7 @@ microcontroller.
Magnetoresistive sensor
-----------------------
The BT6x0 incorporates a Honeywell SM351LT magnetoresistive sensor. Refer to
The BT610 incorporates a Honeywell SM351LT magnetoresistive sensor. Refer to
the `Honeywell SM351LT datasheet`_ for further details.
* MAG_1 = SW2 = P1.15 (SM3531LT_0)
@@ -157,7 +157,7 @@ This can deliver up to 50mA peak and 20mA continuous current.
Sensor connectivity
-------------------
The BT6x0 incorporates three terminal blocks J5, J6 & J7 that allow
The BT610 incorporates three terminal blocks J5, J6 & J7 that allow
connectivity to its sensor inputs, as follows.
Terminal Block J5
@@ -485,12 +485,12 @@ Required pins are as follows.
Programming and Debugging
*************************
Applications for the ``bt6x0`` board configuration can be
Applications for the ``bt610`` board configuration can be
built and flashed in the usual way (see :ref:`build_an_application`
and :ref:`application_run` for more details); however, the standard
debugging targets are not currently available.
The BT6x0 features a 10 way header, J3, for connection of a
The BT610 features a 10 way header, J3, for connection of a
programmer/debugger, with pinout as follows.
+-----------+------------+----------------------+
@@ -537,7 +537,7 @@ pinout as follows.
+-----------+------------+----------------------+-----------+
Note that pin 3 requires a solder bridge to be closed to enable powering of the
BT6x0 board via the UART connector.
BT610 board via the UART connector.
Flashing
========
@@ -552,7 +552,7 @@ Here is an example for the :ref:`hello_world` application.
First, run your favorite terminal program to listen for output.
NOTE: On the BT6x0, the UART lines are at TTL levels and must be passed through
NOTE: On the BT610, the UART lines are at TTL levels and must be passed through
an appropriate line driver circuit for translation to RS232 levels. Refer to
the `MAX3232 datasheet`_ for a suitable driver IC.
@@ -560,14 +560,14 @@ the `MAX3232 datasheet`_ for a suitable driver IC.
$ minicom -D <tty_device> -b 115200
Replace :code:`<tty_device>` with the port where the BT6x0 can be found. For
Replace :code:`<tty_device>` with the port where the BT610 can be found. For
example, under Linux, :code:`/dev/ttyUSB0`.
Then build and flash the application in the usual way.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: bt6x0
:board: bt610
:goals: build flash
Note that an external debugger is required to perform application flashing.
@@ -575,14 +575,14 @@ Note that an external debugger is required to perform application flashing.
Debugging
=========
The ``bt6x0`` board does not have an on-board J-Link debug IC
The ``bt610`` board does not have an on-board J-Link debug IC
as some nRF5x development boards, however, instructions from the
:ref:`nordic_segger` page also apply to this board, with the additional step
of connecting an external debugger.
Testing Bluetooth on the BT6x0
Testing Bluetooth on the BT610
***********************************
Many of the Bluetooth examples will work on the BT6x0.
Many of the Bluetooth examples will work on the BT610.
Try them out:
* :ref:`ble_peripheral`
@@ -590,7 +590,7 @@ Try them out:
* :ref:`bluetooth-ibeacon-sample`
Testing the LEDs and buttons on the BT6x0
Testing the LEDs and buttons on the BT610
*****************************************
There are 2 samples that allow you to test that the buttons (switches) and LEDs
@@ -601,7 +601,7 @@ on the board are working properly with Zephyr:
You can build and flash the examples to make sure Zephyr is running correctly
on your board. The button, LED and sensor device definitions can be found in
:zephyr_file:`boards/arm/bt6x0/bt6x0.dts`.
:zephyr_file:`boards/arm/bt610/bt610.dts`.
References

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -40,7 +40,7 @@ The Waveshare Open103Z configuration supports the following hardware features:
+-----------+------------+--------------------------------------+
| I2C | on-chip | i2c |
+-----------+------------+--------------------------------------+
| CAN | on-chip | can |
| CAN | on-chip | can (disabled by default) |
+-----------+------------+--------------------------------------+
| USB | on-chip | usb |
+-----------+------------+--------------------------------------+

View File

@@ -16,4 +16,3 @@ supported:
- watchdog
- adc
- usb_device
- can

View File

@@ -9,6 +9,7 @@
# set(<old_board_name>_DEPRECATED <new_board_name>)
set(bl5340_dvk_cpuappns_DEPRECATED bl5340_dvk_cpuapp_ns)
set(bt6x0_DEPRECATED bt610)
set(mps2_an521_nonsecure_DEPRECATED mps2_an521_ns)
set(musca_b1_nonsecure_DEPRECATED musca_b1_ns)
set(musca_s1_nonsecure_DEPRECATED musca_s1_ns)

View File

@@ -546,6 +546,14 @@ set(SOC_SERIES ${CONFIG_SOC_SERIES})
set(SOC_TOOLCHAIN_NAME ${CONFIG_SOC_TOOLCHAIN_NAME})
set(SOC_FAMILY ${CONFIG_SOC_FAMILY})
# For the gen_app_partitions.py to work correctly, we must ensure that
# all targets exports their compile commands to fetch object files.
# We enable it unconditionally, as this is also useful for several IDEs
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE CACHE BOOL
"Export CMake compile commands. Used by gen_app_partitions.py script"
FORCE
)
if("${SOC_SERIES}" STREQUAL "")
set(SOC_PATH ${SOC_NAME})
else()

View File

@@ -0,0 +1,26 @@
set(c23id c2x gnu2x)
set(c17id c17 c18 gnu17 gnu18 "iso9899:2017" "iso9899:2018")
set(c11id c11 gnu11 "iso9899:2011")
set(c99id c99 gnu99 "iso9899:1999")
set(c90id c89 c90 gnu89 gnu90 "iso9899:1990" "iso9899:199409")
set(compile_features_list)
# For each id value above a compile_features_${idval} with a list of supported
# `c_std_XX` values are created for easy lookup.
# For example, the settings
# - `compile_feature_c99` will contain `c_std_90;c_std_99`
# - `compile_feature_iso9899:2011` will contain `c_std_90;c_std_99;c_std_11`
# that can then be used to set CMAKE_C_COMPILE_FEATURES accordingly.
foreach(standard 90 99 11 17 23)
list(APPEND compile_features_list c_std_${standard})
foreach(id ${c${standard}id})
set(compile_features_${id} ${compile_features_list})
endforeach()
endforeach()
set(compile_features_cpp98 cxx_std_98)
set(compile_features_cpp11 cxx_std_11 ${compile_features_cpp98})
set(compile_features_cpp14 cxx_std_14 ${compile_features_cpp11})
set(compile_features_cpp17 cxx_std_17 ${compile_features_cpp14})
set(compile_features_cpp20 cxx_std_20 ${compile_features_cpp17})

View File

@@ -24,6 +24,11 @@ set(TOOLCHAIN_SIGNATURE ${CMAKE_C_COMPILER_MD5_SUM})
string(MD5 COMPILER_SIGNATURE ${CMAKE_C_COMPILER}_${CMAKE_C_COMPILER_ID}_${CMAKE_C_COMPILER_VERSION})
set(TOOLCHAIN_SIGNATURE ${TOOLCHAIN_SIGNATURE}_${COMPILER_SIGNATURE})
# Load the compile features file which will provide compile features lists for
# various C / CXX language dialects that can then be exported based on current
# Zephyr Kconfig settings or the CSTD global property.
include(${CMAKE_CURRENT_LIST_DIR}/compiler/compiler_features.cmake)
# Loading of templates are strictly not needed as they does not set any
# properties.
# They purely provides an overview as well as a starting point for supporting

View File

@@ -179,8 +179,8 @@ on https://github.com and have Git tools available on your development system.
(Linux, macOS, and Windows) but some of the tools used in the sections below
are only available on Linux and macOS. On Windows, instead of running these
tools yourself, you will need to rely on the Continuous Integration (CI)
service ``buildkite``, which runs automatically on GitHub when you submit
your Pull Request (PR). You can see any failure results in the Buildkite
service using Github Actions, which runs automatically on GitHub when you submit
your Pull Request (PR). You can see any failure results in the workflow
details link near the end of the PR conversation list. See
`Continuous Integration`_ for more information
@@ -696,11 +696,10 @@ every Pull Request (PR) in order to verify several aspects of the PR:
* Twister builds for multiple architectures and boards
* Documentation build to verify any doc changes
CI is run both on the ``buildkite`` cloud service and Github Actions and it uses
the same tools described in the `Contribution Tools`_ section.
The CI results must be green indicating "All checks have passed" before
the Pull Request can be merged. CI is run when the PR is created, and
again every time the PR is modified with a commit.
CI is run on Github Actions and it uses the same tools described in the
`Contribution Tools`_ section. The CI results must be green indicating "All
checks have passed" before the Pull Request can be merged. CI is run when the
PR is created, and again every time the PR is modified with a commit.
The current status of the CI run can always be found at the bottom of the
GitHub PR page, below the review status. Depending on the success or failure
@@ -710,17 +709,16 @@ of the run you will see:
* "All checks have failed"
In case of failure you can click on the "Details" link presented below the
failure message in order to navigate to ``buildkite`` or ``Github Actions``
and inspect the results.
Once you click on the link you will be taken to the ``buildkite`` summary
failure message in order to navigate to ``Github Actions`` and inspect the
results.
Once you click on the link you will be taken to the ``Github actions`` summary
results page where a table with all the different builds will be shown. To see
what build or test failed click on the row that contains the failed (i.e.
non-green) build and then click on the "Tests" tab to see the console output
messages indicating the failure.
non-green) build.
The `builds@lists.zephyrproject.org mailing list
<https://lists.zephyrproject.org/g/builds>`_
archives the CI (buildkite) nightly build results.
<https://lists.zephyrproject.org/g/builds>`_ archives any nightly build results
produced by CI.
Contributions to External Modules
**********************************

View File

@@ -2,6 +2,61 @@
.. _zephyr_2.7:
.. _zephyr_2.7.1:
Zephyr 2.7.1
####################
This is an LTS maintenance release with fixes.
Security Vulnerability Related
******************************
The following security vulnerabilities (CVEs) were addressed in this
release:
* (N/A)
More detailed information can be found in:
https://docs.zephyrproject.org/latest/security/vulnerabilities.html
Issues Fixed
************
These GitHub issues were addressed since the previous 2.7.0 tagged
release:
.. comment List derived from GitHub Issue query: ...
* :github:`issuenumber` - issue title
* :github:`36558` - Use of CMAKE_<lang>_COMPILER_FORCED on host-builds flag breaks third-party libraries
* :github:`36852` - acrn_ehl_crb: the test of tests/subsys/cpp/libcxx/ failed
* :github:`38181` - tests/drivers/uart/uart_basic_api/drivers.uart.cdc_acm fails to build
* :github:`38612` - Fault with assertions enabled prevents detailed output because of ISR() assertion check in shell function
* :github:`38972` - logging: Cleaning references to tracing in logging
* :github:`38999` - Bluetooth: Controller: Fix HCI command parameter check failures
* :github:`39022` - tests/drivers/uart/uart_basic_api/drivers.uart.cdc_acm fails to build
* :github:`39297` - Lorawan regression in v2.7rc4 for US915 and AU915 regions
* :github:`39361` - BL5340 image is broken on documentation page
* :github:`39409` - runners: canopen: program download fails with slow flash access and/or congested CAN nets
* :github:`39523` - task watchdog crash/asset on NRF52840 - need to reorder task_wdt_feed() in task_wdt_add()
* :github:`39541` - can: mcux_flexcan: wrong timing calculation
* :github:`39575` - k_mutex_lock and k_sem_take with K_FOREVER return -EAGAIN value
* :github:`39594` - Possible bug or undocumented behaviour of spi_write
* :github:`39609` - spi: slave: division by zero in timeout calculation
* :github:`39687` - sensor: qdec_nrfx: PM callback has incorrect signature
* :github:`39704` - Using OpenThread makes the system unresponsive after 49.7 days
* :github:`39817` - drivers: pwm: nxp: (potentially) Incorrect return value on API function
* :github:`39851` - [Coverity CID: 240242] Dereference after null check in tests/bluetooth/tester/src/l2cap.c
* :github:`39882` - Bluetooth Host qualification on 2.7 branch
* :github:`40133` - mimxrt1060-evk flash shell command causes shell deadlock
* :github:`40244` - hci_spi sample cannot be built for nrf51dk_nrf51422 and 96b_carbon_nrf51
* :github:`40290` - CAN_STM32: Build error with CONFIG_CAN_AUTO_BUS_OFF_RECOVERY=n
* :github:`40844` - gen_app_partitions scans object files unrelated to current image
* :github:`41237` - drivers: ieee802154_dw1000: use dedicated workqueue
.. _zephyr_2.7.0:
Zephyr 2.7.0
############

View File

@@ -462,9 +462,9 @@ int mcux_flexcan_recover(const struct device *dev, k_timeout_t timeout)
start_time = k_uptime_ticks();
config->base->CTRL1 &= ~CAN_CTRL1_BOFFREC_MASK;
if (timeout != K_NO_WAIT) {
if (!K_TIMEOUT_EQ(timeout, K_NO_WAIT)) {
while (mcux_flexcan_get_state(dev, NULL) == CAN_BUS_OFF) {
if (timeout != K_FOREVER &&
if (!K_TIMEOUT_EQ(timeout, K_FOREVER) &&
k_uptime_ticks() - start_time >= timeout.ticks) {
ret = CAN_TIMEOUT;
}
@@ -747,19 +747,28 @@ static const struct can_driver_api mcux_flexcan_driver_api = {
#endif
.register_state_change_isr = mcux_flexcan_register_state_change_isr,
.get_core_clock = mcux_flexcan_get_core_clock,
/*
* FlexCAN timing limits are specified in the "FLEXCANx_CTRL1 field
* descriptions" table in the SoC reference manual.
*
* Note that the values here are the "physical" timing limits, whereas
* the register field limits are physical values minus 1 (which is
* handled by the flexcan_config_t field assignments elsewhere in this
* driver).
*/
.timing_min = {
.sjw = 0x1,
.sjw = 0x01,
.prop_seg = 0x01,
.phase_seg1 = 0x01,
.phase_seg2 = 0x01,
.phase_seg2 = 0x02,
.prescaler = 0x01
},
.timing_max = {
.sjw = 0x03,
.prop_seg = 0x07,
.phase_seg1 = 0x07,
.phase_seg2 = 0x07,
.prescaler = 0xFF
.sjw = 0x04,
.prop_seg = 0x08,
.phase_seg1 = 0x08,
.phase_seg2 = 0x08,
.prescaler = 0x100
}
};

View File

@@ -586,7 +586,7 @@ int can_stm32_recover(const struct device *dev, k_timeout_t timeout)
start_time = k_uptime_ticks();
while (can->ESR & CAN_ESR_BOFF) {
if (timeout != K_FOREVER &&
if (!K_TIMEOUT_EQ(timeout, K_FOREVER) &&
k_uptime_ticks() - start_time >= timeout.ticks) {
goto done;
}

View File

@@ -210,7 +210,7 @@ static inline int stm32_clock_control_off(const struct device *dev,
defined(CONFIG_SOC_SERIES_STM32WLX) || \
defined(CONFIG_SOC_SERIES_STM32G4X)
case STM32_CLOCK_BUS_AHB3:
LL_AHB3_GRP1_EnableClock(pclken->enr);
LL_AHB3_GRP1_DisableClock(pclken->enr);
break;
#endif /* CONFIG_SOC_SERIES_STM32_* */
case STM32_CLOCK_BUS_APB1:

View File

@@ -254,20 +254,6 @@ static void set_up_clk_msis(void)
LL_RCC_MSIS_SetRange(STM32_MSIS_RANGE << RCC_ICSCR1_MSISRANGE_Pos);
if (STM32_MSIS_RANGE < 4) {
/* MSI clock trimming for ranges 0 to 3 */
LL_RCC_MSI_SetCalibTrimming(0, LL_RCC_MSI_OSCILLATOR_0);
} else if (STM32_MSIS_RANGE < 8) {
/* MSI clock trimming for ranges 4 to 7 */
LL_RCC_MSI_SetCalibTrimming(0, LL_RCC_MSI_OSCILLATOR_1);
} else if (STM32_MSIS_RANGE < 12) {
/* MSI clock trimming for ranges 8 to 11 */
LL_RCC_MSI_SetCalibTrimming(0, LL_RCC_MSI_OSCILLATOR_2);
} else {
/* MSI clock trimming for ranges 12 to 15 */
LL_RCC_MSI_SetCalibTrimming(0, LL_RCC_MSI_OSCILLATOR_3);
}
#if STM32_MSIS_PLL_MODE
#if !STM32_LSE_CLOCK
@@ -491,8 +477,6 @@ void config_src_sysclk_msis(LL_UTILS_ClkInitTypeDef s_ClkInitStruct)
uint32_t old_hclk_freq;
uint32_t new_hclk_freq;
set_up_clk_msis();
old_hclk_freq = HAL_RCC_GetHCLKFreq();
/* Calculate new SystemCoreClock variable with MSI freq */
@@ -511,7 +495,17 @@ void config_src_sysclk_msis(LL_UTILS_ClkInitTypeDef s_ClkInitStruct)
LL_SetFlashLatency(new_hclk_freq);
}
if (new_hclk_freq > MHZ(24)) {
/* when freq > 24MHz it is necessary to set voltage scaling
* to range3
*/
LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE3);
while (LL_PWR_IsActiveFlag_VOS() == 0) {
}
}
/* Set MSIS as SYSCLCK source */
set_up_clk_msis();
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_MSIS);
LL_RCC_SetAHBPrescaler(s_ClkInitStruct.AHBCLKDivider);
while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_MSIS) {

View File

@@ -23,6 +23,17 @@
static uint8_t nor_write_buf[SPI_NOR_PAGE_SIZE];
#endif
/*
* NOTE: If CONFIG_FLASH_MCUX_FLEXSPI_XIP is selected, Any external functions
* called while interacting with the flexspi MUST be relocated to SRAM or ITCM
* at runtime, so that the chip does not access the flexspi to read program
* instructions while it is being written to
*/
#if defined(CONFIG_FLASH_MCUX_FLEXSPI_XIP) && (CONFIG_FLASH_LOG_LEVEL > 0)
#warning "Enabling flash driver logging and XIP mode simultaneously can cause \
read-while-write hazards. This configuration is not recommended."
#endif
LOG_MODULE_REGISTER(flash_flexspi_nor, CONFIG_FLASH_LOG_LEVEL);
enum {

View File

@@ -23,6 +23,17 @@
static uint8_t nor_write_buf[SPI_NOR_PAGE_SIZE];
#endif
/*
* NOTE: If CONFIG_FLASH_MCUX_FLEXSPI_XIP is selected, Any external functions
* called while interacting with the flexspi MUST be relocated to SRAM or ITCM
* at runtime, so that the chip does not access the flexspi to read program
* instructions while it is being written to
*/
#if defined(CONFIG_FLASH_MCUX_FLEXSPI_XIP) && (CONFIG_FLASH_LOG_LEVEL > 0)
#warning "Enabling flash driver logging and XIP mode simultaneously can cause \
read-while-write hazards. This configuration is not recommended."
#endif
LOG_MODULE_REGISTER(flash_flexspi_nor, CONFIG_FLASH_LOG_LEVEL);
enum {

View File

@@ -632,7 +632,7 @@ static void dwt_gpio_callback(const struct device *dev,
struct dwt_context *ctx = CONTAINER_OF(cb, struct dwt_context, gpio_cb);
LOG_DBG("IRQ callback triggered %p", ctx);
k_work_submit(&ctx->irq_cb_work);
k_work_submit_to_queue(&dwt_work_queue, &ctx->irq_cb_work);
}
static enum ieee802154_hw_caps dwt_get_capabilities(const struct device *dev)

View File

@@ -973,14 +973,17 @@ void nrf_802154_transmitted_raw(uint8_t *frame,
nrf5_data.tx_frame_is_secured = metadata->frame_props.is_secured;
nrf5_data.tx_frame_mac_hdr_rdy = metadata->frame_props.dynamic_data_is_set;
nrf5_data.ack_frame.psdu = metadata->data.transmitted.p_ack;
nrf5_data.ack_frame.rssi = metadata->data.transmitted.power;
nrf5_data.ack_frame.lqi = metadata->data.transmitted.lqi;
#if !defined(CONFIG_NRF_802154_SER_HOST) && defined(CONFIG_NET_PKT_TIMESTAMP)
nrf5_data.ack_frame.time =
nrf_802154_first_symbol_timestamp_get(
metadata->data.transmitted.time, nrf5_data.ack_frame.psdu[0]);
if (nrf5_data.ack_frame.psdu) {
nrf5_data.ack_frame.rssi = metadata->data.transmitted.power;
nrf5_data.ack_frame.lqi = metadata->data.transmitted.lqi;
#if !IS_ENABLED(CONFIG_NRF_802154_SER_HOST) && IS_ENABLED(CONFIG_NET_PKT_TIMESTAMP)
nrf5_data.ack_frame.time =
nrf_802154_first_symbol_timestamp_get(
metadata->data.transmitted.time, nrf5_data.ack_frame.psdu[0]);
#endif
}
k_sem_give(&nrf5_data.tx_wait);
}

View File

@@ -31,7 +31,7 @@ LOG_MODULE_REGISTER(pca9633);
/* PCA9633 control register */
#define PCA9633_MODE1 0x00
#define PCA9633_MODE2 0x01
#define PCA9633_PWM_BASE 0x02
#define PCA9633_PWM_BASE 0x02 /* Reg 0x02-0x05 for brightness control LED01-04 */
#define PCA9633_GRPPWM 0x06
#define PCA9633_GRPFREQ 0x07
#define PCA9633_LEDOUT 0x08
@@ -43,8 +43,11 @@ LOG_MODULE_REGISTER(pca9633);
#define PCA9633_MASK 0x03
struct pca9633_config {
struct i2c_dt_spec i2c;
};
struct pca9633_data {
const struct device *i2c;
struct led_data dev_data;
};
@@ -52,6 +55,7 @@ static int pca9633_led_blink(const struct device *dev, uint32_t led,
uint32_t delay_on, uint32_t delay_off)
{
struct pca9633_data *data = dev->data;
const struct pca9633_config *config = dev->config;
struct led_data *dev_data = &data->dev_data;
uint8_t gdc, gfrq;
uint32_t period;
@@ -69,7 +73,7 @@ static int pca9633_led_blink(const struct device *dev, uint32_t led,
* GDC = ((time_on * 256) / period)
*/
gdc = delay_on * 256U / period;
if (i2c_reg_write_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_write_byte_dt(&config->i2c,
PCA9633_GRPPWM,
gdc)) {
LOG_ERR("LED reg write failed");
@@ -83,7 +87,7 @@ static int pca9633_led_blink(const struct device *dev, uint32_t led,
* GFRQ = ((period * 24 / 1000) - 1)
*/
gfrq = (period * 24U / 1000) - 1;
if (i2c_reg_write_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_write_byte_dt(&config->i2c,
PCA9633_GRPFREQ,
gfrq)) {
LOG_ERR("LED reg write failed");
@@ -91,7 +95,7 @@ static int pca9633_led_blink(const struct device *dev, uint32_t led,
}
/* Enable blinking mode */
if (i2c_reg_update_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_update_byte_dt(&config->i2c,
PCA9633_MODE2,
PCA9633_MODE2_DMBLNK,
PCA9633_MODE2_DMBLNK)) {
@@ -100,7 +104,7 @@ static int pca9633_led_blink(const struct device *dev, uint32_t led,
}
/* Select the GRPPWM source to drive the LED outpout */
if (i2c_reg_update_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_update_byte_dt(&config->i2c,
PCA9633_LEDOUT,
PCA9633_MASK << (led << 1),
PCA9633_LED_GRP_PWM << (led << 1))) {
@@ -114,6 +118,7 @@ static int pca9633_led_blink(const struct device *dev, uint32_t led,
static int pca9633_led_set_brightness(const struct device *dev, uint32_t led,
uint8_t value)
{
const struct pca9633_config *config = dev->config;
struct pca9633_data *data = dev->data;
struct led_data *dev_data = &data->dev_data;
uint8_t val;
@@ -125,7 +130,7 @@ static int pca9633_led_set_brightness(const struct device *dev, uint32_t led,
/* Set the LED brightness value */
val = (value * 255U) / dev_data->max_brightness;
if (i2c_reg_write_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_write_byte_dt(&config->i2c,
PCA9633_PWM_BASE + led,
val)) {
LOG_ERR("LED reg write failed");
@@ -133,7 +138,7 @@ static int pca9633_led_set_brightness(const struct device *dev, uint32_t led,
}
/* Set the LED driver to be controlled through its PWMx register. */
if (i2c_reg_update_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_update_byte_dt(&config->i2c,
PCA9633_LEDOUT,
PCA9633_MASK << (led << 1),
PCA9633_LED_PWM << (led << 1))) {
@@ -146,10 +151,10 @@ static int pca9633_led_set_brightness(const struct device *dev, uint32_t led,
static inline int pca9633_led_on(const struct device *dev, uint32_t led)
{
struct pca9633_data *data = dev->data;
const struct pca9633_config *config = dev->config;
/* Set LED state to ON */
if (i2c_reg_update_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_update_byte_dt(&config->i2c,
PCA9633_LEDOUT,
PCA9633_MASK << (led << 1),
PCA9633_LED_ON << (led << 1))) {
@@ -162,10 +167,10 @@ static inline int pca9633_led_on(const struct device *dev, uint32_t led)
static inline int pca9633_led_off(const struct device *dev, uint32_t led)
{
struct pca9633_data *data = dev->data;
const struct pca9633_config *config = dev->config;
/* Set LED state to OFF */
if (i2c_reg_update_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_update_byte_dt(&config->i2c,
PCA9633_LEDOUT,
PCA9633_MASK << (led << 1),
PCA9633_LED_OFF)) {
@@ -178,17 +183,17 @@ static inline int pca9633_led_off(const struct device *dev, uint32_t led)
static int pca9633_led_init(const struct device *dev)
{
const struct pca9633_config *config = dev->config;
struct pca9633_data *data = dev->data;
struct led_data *dev_data = &data->dev_data;
data->i2c = device_get_binding(DT_INST_BUS_LABEL(0));
if (data->i2c == NULL) {
LOG_DBG("Failed to get I2C device");
return -EINVAL;
if (!device_is_ready(config->i2c.bus)) {
LOG_ERR("I2C bus is not ready");
return -ENODEV;
}
/* Take the LED driver out from Sleep mode. */
if (i2c_reg_update_byte(data->i2c, DT_INST_REG_ADDR(0),
if (i2c_reg_update_byte_dt(&config->i2c,
PCA9633_MODE1,
PCA9633_MODE1_SLEEP,
~PCA9633_MODE1_SLEEP)) {
@@ -204,8 +209,6 @@ static int pca9633_led_init(const struct device *dev)
return 0;
}
static struct pca9633_data pca9633_led_data;
static const struct led_driver_api pca9633_led_api = {
.blink = pca9633_led_blink,
.set_brightness = pca9633_led_set_brightness,
@@ -213,7 +216,16 @@ static const struct led_driver_api pca9633_led_api = {
.off = pca9633_led_off,
};
DEVICE_DT_INST_DEFINE(0, &pca9633_led_init, NULL,
&pca9633_led_data,
NULL, POST_KERNEL, CONFIG_LED_INIT_PRIORITY,
&pca9633_led_api);
#define PCA9633_DEVICE(id) \
static const struct pca9633_config pca9633_##id##_cfg = { \
.i2c = I2C_DT_SPEC_INST_GET(id) \
}; \
static struct pca9633_data pca9633_##id##_data; \
\
DEVICE_DT_INST_DEFINE(id, &pca9633_led_init, NULL, \
&pca9633_##id##_data, \
&pca9633_##id##_cfg, POST_KERNEL, \
CONFIG_LED_INIT_PRIORITY, \
&pca9633_led_api);
DT_INST_FOREACH_STATUS_OKAY(PCA9633_DEVICE)

View File

@@ -11,6 +11,18 @@
#include "memc_mcux_flexspi.h"
/*
* NOTE: If CONFIG_FLASH_MCUX_FLEXSPI_XIP is selected, Any external functions
* called while interacting with the flexspi MUST be relocated to SRAM or ITCM
* at runtime, so that the chip does not access the flexspi to read program
* instructions while it is being written to
*/
#if defined(CONFIG_FLASH_MCUX_FLEXSPI_XIP) && (CONFIG_MEMC_LOG_LEVEL > 0)
#warning "Enabling memc driver logging and XIP mode simultaneously can cause \
read-while-write hazards. This configuration is not recommended."
#endif
LOG_MODULE_REGISTER(memc_flexspi, CONFIG_MEMC_LOG_LEVEL);
struct memc_flexspi_config {

View File

@@ -11,7 +11,19 @@
#include "memc_mcux_flexspi.h"
LOG_MODULE_DECLARE(memc_flexspi, CONFIG_MEMC_LOG_LEVEL);
/*
* NOTE: If CONFIG_FLASH_MCUX_FLEXSPI_XIP is selected, Any external functions
* called while interacting with the flexspi MUST be relocated to SRAM or ITCM
* at runtime, so that the chip does not access the flexspi to read program
* instructions while it is being written to
*/
#if defined(CONFIG_FLASH_MCUX_FLEXSPI_XIP) && (CONFIG_MEMC_LOG_LEVEL > 0)
#warning "Enabling memc driver logging and XIP mode simultaneously can cause \
read-while-write hazards. This configuration is not recommended."
#endif
LOG_MODULE_REGISTER(memc_flexspi, CONFIG_MEMC_LOG_LEVEL);
enum {
READ_DATA,

View File

@@ -313,6 +313,8 @@ static const struct mdm_control_pinconfig pinconfig[] = {
#else
#define MODEM_HL7800_ADDRESS_FAMILY "IPV6"
#endif
#define MDM_HL7800_SOCKET_AF_IPV4 0
#define MDM_HL7800_SOCKET_AF_IPV6 1
#define SET_RAT_M1_CMD_LEGACY "AT+KSRAT=0"
#define SET_RAT_NB1_CMD_LEGACY "AT+KSRAT=1"
@@ -5116,26 +5118,23 @@ static int configure_TCP_socket(struct hl7800_socket *sock)
int ret;
char cmd_cfg[sizeof("AT+KTCPCFG=#,#,\"" IPV6_ADDR_FORMAT "\",#####")];
int dst_port = -1;
int af;
#if defined(CONFIG_NET_IPV6)
if (sock->dst.sa_family == AF_INET6) {
af = MDM_HL7800_SOCKET_AF_IPV6;
dst_port = net_sin6(&sock->dst)->sin6_port;
} else
#endif
#if defined(CONFIG_NET_IPV4)
if (sock->dst.sa_family == AF_INET) {
} else if (sock->dst.sa_family == AF_INET) {
af = MDM_HL7800_SOCKET_AF_IPV4;
dst_port = net_sin(&sock->dst)->sin_port;
} else
#endif
{
} else {
return -EINVAL;
}
/* socket # needs assigning */
sock->socket_id = MDM_MAX_SOCKETS + 1;
snprintk(cmd_cfg, sizeof(cmd_cfg), "AT+KTCPCFG=%d,%d,\"%s\",%u", 1, 0,
hl7800_sprint_ip_addr(&sock->dst), dst_port);
snprintk(cmd_cfg, sizeof(cmd_cfg), "AT+KTCPCFG=%d,%d,\"%s\",%u,,,,%d", 1, 0,
hl7800_sprint_ip_addr(&sock->dst), dst_port, af);
ret = send_at_cmd(sock, cmd_cfg, MDM_CMD_SEND_TIMEOUT, 0, false);
if (ret < 0) {
LOG_ERR("AT+KTCPCFG ret:%d", ret);
@@ -5158,12 +5157,22 @@ done:
static int configure_UDP_socket(struct hl7800_socket *sock)
{
int ret = 0;
char cmd[sizeof("AT+KUDPCFG=1,0,,,,,0")];
int af;
/* socket # needs assigning */
sock->socket_id = MDM_MAX_SOCKETS + 1;
ret = send_at_cmd(sock, "AT+KUDPCFG=1,0", MDM_CMD_SEND_TIMEOUT, 0,
false);
if (sock->family == AF_INET) {
af = MDM_HL7800_SOCKET_AF_IPV4;
} else if (sock->family == AF_INET6) {
af = MDM_HL7800_SOCKET_AF_IPV6;
} else {
return -EINVAL;
}
snprintk(cmd, sizeof(cmd), "AT+KUDPCFG=1,0,,,,,%d", af);
ret = send_at_cmd(sock, cmd, MDM_CMD_SEND_TIMEOUT, 0, false);
if (ret < 0) {
LOG_ERR("AT+KUDPCFG ret:%d", ret);
goto done;

View File

@@ -228,8 +228,8 @@ static int mcux_ftm_pin_enable_capture(const struct device *dev, uint32_t pwm)
}
if (FTM_GetEnabledInterrupts(config->base) & BIT(PAIR_2ND_CH(pair))) {
LOG_WRN("Capture already active on channel pair %d", pair);
return 0;
LOG_ERR("Capture already active on channel pair %d", pair);
return -EBUSY;
}
FTM_ClearStatusFlags(config->base, BIT(PAIR_1ST_CH(pair)) |

View File

@@ -207,9 +207,11 @@ static int qdec_nrfx_init(const struct device *dev)
}
#ifdef CONFIG_PM_DEVICE
static int qdec_nrfx_pm_control(struct qdec_nrfx_data *data,
static int qdec_nrfx_pm_control(const struct device *dev,
enum pm_device_action action)
{
ARG_UNUSED(dev);
switch (action) {
case PM_DEVICE_ACTION_RESUME:
qdec_nrfx_gpio_ctrl(true);

View File

@@ -31,6 +31,12 @@ config SERIAL_SUPPORT_INTERRUPT
This is an option to be enabled by individual serial driver
to signal that the driver and hardware supports interrupts.
config SERIAL_INIT_PRIORITY
int "Serial init priority"
default KERNEL_INIT_PRIORITY_DEVICE
help
Serial driver device initialization priority.
config UART_USE_RUNTIME_CONFIGURE
bool "Enable runtime configuration for UART controllers"
default y

View File

@@ -354,7 +354,7 @@ static struct leuart_gecko_data leuart_gecko_0_data;
DEVICE_DT_INST_DEFINE(0, &leuart_gecko_init,
NULL, &leuart_gecko_0_data,
&leuart_gecko_0_config, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&leuart_gecko_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -407,7 +407,7 @@ static struct leuart_gecko_data leuart_gecko_1_data;
DEVICE_DT_INST_DEFINE(1, &leuart_gecko_init,
NULL, &leuart_gecko_1_data,
&leuart_gecko_1_config, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&leuart_gecko_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN

View File

@@ -61,7 +61,7 @@ static int serial_vnd_init(const struct device *dev)
#define VND_SERIAL_INIT(n) \
DEVICE_DT_INST_DEFINE(n, &serial_vnd_init, NULL, \
NULL, NULL, POST_KERNEL, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&serial_vnd_api);
DT_INST_FOREACH_STATUS_OKAY(VND_SERIAL_INIT)

View File

@@ -61,5 +61,5 @@ static const struct uart_device_config uart_altera_jtag_dev_cfg_0 = {
DEVICE_DT_INST_DEFINE(0, uart_altera_jtag_init, NULL,
NULL, &uart_altera_jtag_dev_cfg_0,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
&uart_altera_jtag_driver_api);

View File

@@ -538,7 +538,7 @@ static const struct uart_driver_api apbuart_driver_api = {
&apbuart##index##_data, \
&apbuart##index##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&apbuart_driver_api);
DT_INST_FOREACH_STATUS_OKAY(APBUART_INIT)

View File

@@ -558,7 +558,7 @@ static const struct uart_driver_api uart_b91_driver_api = {
&uart_b91_data_##n, \
&uart_b91_cfg_##n, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
(void *)&uart_b91_driver_api); \
\
static void uart_b91_irq_connect_##n(void) \

View File

@@ -539,7 +539,7 @@ static const struct uart_driver_api uart_cc13xx_cc26xx_driver_api = {
uart_cc13xx_cc26xx_init_##n, \
uart_cc13xx_cc26xx_pm_control, \
&uart_cc13xx_cc26xx_data_##n, &uart_cc13xx_cc26xx_config_##n,\
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_cc13xx_cc26xx_driver_api)
#ifdef CONFIG_PM_DEVICE

View File

@@ -331,7 +331,7 @@ static struct uart_cc32xx_dev_data_t uart_cc32xx_dev_data_##idx = { \
DEVICE_DT_INST_DEFINE(idx, uart_cc32xx_init, \
NULL, &uart_cc32xx_dev_data_##idx, \
&uart_cc32xx_dev_cfg_##idx, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
(void *)&uart_cc32xx_driver_api); \
DT_INST_FOREACH_STATUS_OKAY(UART_32XX_DEVICE);

View File

@@ -508,7 +508,7 @@ DEVICE_DT_INST_DEFINE(0,
NULL,
&uart_cmsdk_apb_dev_data_0,
&uart_cmsdk_apb_dev_cfg_0, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&uart_cmsdk_apb_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -573,7 +573,7 @@ DEVICE_DT_INST_DEFINE(1,
NULL,
&uart_cmsdk_apb_dev_data_1,
&uart_cmsdk_apb_dev_cfg_1, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&uart_cmsdk_apb_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -638,7 +638,7 @@ DEVICE_DT_INST_DEFINE(2,
NULL,
&uart_cmsdk_apb_dev_data_2,
&uart_cmsdk_apb_dev_cfg_2, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&uart_cmsdk_apb_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -703,7 +703,7 @@ DEVICE_DT_INST_DEFINE(3,
NULL,
&uart_cmsdk_apb_dev_data_3,
&uart_cmsdk_apb_dev_cfg_3, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&uart_cmsdk_apb_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -768,7 +768,7 @@ DEVICE_DT_INST_DEFINE(4,
NULL,
&uart_cmsdk_apb_dev_data_4,
&uart_cmsdk_apb_dev_cfg_4, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&uart_cmsdk_apb_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN

View File

@@ -519,7 +519,7 @@ DEVICE_DT_DEFINE(DT_NODELABEL(uart##idx), \
&uart_esp32_data_##idx, \
&uart_esp32_cfg_port_##idx, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_esp32_api);
#if DT_NODE_HAS_STATUS(DT_NODELABEL(uart0), okay)

View File

@@ -549,7 +549,7 @@ static const struct uart_driver_api uart_gecko_driver_api = {
DEVICE_DT_INST_DEFINE(idx, &uart_gecko_init, \
NULL, &uart_gecko_data_##idx, \
&uart_gecko_cfg_##idx, PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_gecko_driver_api); \
\
\
@@ -607,7 +607,7 @@ DT_INST_FOREACH_STATUS_OKAY(GECKO_UART_INIT)
DEVICE_DT_INST_DEFINE(idx, &uart_gecko_init, NULL, \
&usart_gecko_data_##idx, \
&usart_gecko_cfg_##idx, PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_gecko_driver_api); \
\
GECKO_USART_IRQ_HANDLER(idx)

View File

@@ -319,7 +319,7 @@ static const struct uart_driver_api uart_imx_driver_api = {
DEVICE_DT_INST_DEFINE(n, &uart_imx_init, NULL, \
&imx_uart_##n##_data, &imx_uart_##n##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_imx_driver_api); \
\
UART_IMX_CONFIG_FUNC(n) \

View File

@@ -321,7 +321,7 @@ DEVICE_DT_INST_DEFINE(0,
uart_liteuart_init,
NULL,
&uart_liteuart_data_0, &uart_liteuart_dev_cfg_0,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
(void *)&uart_liteuart_driver_api);
static int uart_liteuart_init(const struct device *dev)

View File

@@ -446,7 +446,7 @@ DEVICE_DT_DEFINE(DT_NODELABEL(uart0),
&lpc11u6x_uart0_init,
NULL,
&uart0_data, &uart0_config,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_OBJECTS,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
&uart0_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -904,7 +904,7 @@ static struct lpc11u6x_uartx_data uart_data_##idx; \
DEVICE_DT_DEFINE(DT_NODELABEL(uart##idx), \
&lpc11u6x_uartx_init, NULL, \
&uart_data_##idx, &uart_cfg_##idx, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_OBJECTS, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uartx_api)
#if DT_NODE_HAS_STATUS(DT_NODELABEL(uart1), okay)

View File

@@ -894,7 +894,7 @@ static const struct uart_driver_api uart_xec_driver_api = {
&uart_xec_dev_data_##n, \
&uart_xec_dev_cfg_##n, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_xec_driver_api); \
UART_XEC_IRQ_FUNC_DEFINE(n)

View File

@@ -414,7 +414,7 @@ static const struct uart_mcux_config uart_mcux_##n##_config = { \
&uart_mcux_##n##_data, \
&uart_mcux_##n##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_mcux_driver_api); \
\
UART_MCUX_CONFIG_FUNC(n) \

View File

@@ -348,7 +348,7 @@ static const struct mcux_flexcomm_config mcux_flexcomm_##n##_config = { \
&mcux_flexcomm_##n##_data, \
&mcux_flexcomm_##n##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&mcux_flexcomm_driver_api); \
\
UART_MCUX_FLEXCOMM_CONFIG_FUNC(n) \

View File

@@ -317,7 +317,7 @@ static const struct mcux_iuart_config mcux_iuart_##n##_config = { \
&mcux_iuart_##n##_data, \
&mcux_iuart_##n##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&mcux_iuart_driver_api); \
\
IUART_MCUX_CONFIG_FUNC(n) \

View File

@@ -321,7 +321,7 @@ static const struct mcux_lpsci_config mcux_lpsci_##n##_config = { \
&mcux_lpsci_##n##_data, \
&mcux_lpsci_##n##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&mcux_lpsci_driver_api); \
\
MCUX_LPSCI_CONFIG_FUNC(n) \

View File

@@ -448,7 +448,7 @@ static const struct mcux_lpuart_config mcux_lpuart_##n##_config = { \
&mcux_lpuart_##n##_data, \
&mcux_lpuart_##n##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&mcux_lpuart_driver_api); \
\
LPUART_MCUX_CONFIG_FUNC(n) \

View File

@@ -409,7 +409,7 @@ static const struct uart_miv_device_config uart_miv_dev_cfg_0 = {
DEVICE_DT_INST_DEFINE(0, uart_miv_init, NULL,
&uart_miv_data_0, &uart_miv_dev_cfg_0,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
(void *)&uart_miv_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN

View File

@@ -362,5 +362,5 @@ DEVICE_DT_INST_DEFINE(0,
uart_msp432p4xx_init, NULL,
&uart_msp432p4xx_dev_data_0,
&uart_msp432p4xx_dev_cfg_0,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
(void *)&uart_msp432p4xx_driver_api);

View File

@@ -367,14 +367,14 @@ static int np_uart_tty_poll_in(const struct device *dev,
DEVICE_DT_INST_DEFINE(0,
&np_uart_0_init, NULL,
(void *)&native_uart_status_0, NULL,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
&np_uart_driver_api_0);
#if defined(CONFIG_UART_NATIVE_POSIX_PORT_1_ENABLE)
DEVICE_DT_INST_DEFINE(1,
&np_uart_1_init, NULL,
(void *)&native_uart_status_1, NULL,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
&np_uart_driver_api_1);
#endif /* CONFIG_UART_NATIVE_POSIX_PORT_1_ENABLE */

View File

@@ -506,7 +506,7 @@ static inline int uart_npcx_pm_control(const struct device *dev,
&uart_npcx_init, \
uart_npcx_pm_control, \
&uart_npcx_data_##inst, &uart_npcx_cfg_##inst, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_npcx_driver_api); \
\
NPCX_UART_IRQ_CONFIG_FUNC(inst)

View File

@@ -1188,5 +1188,5 @@ DEVICE_DT_INST_DEFINE(0,
NULL,
/* Initialize UART device before UART console. */
PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&uart_nrfx_uart_driver_api);

View File

@@ -1997,7 +1997,7 @@ static int uarte_nrfx_pm_control(const struct device *dev,
&uarte_##idx##_data, \
&uarte_##idx##z_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_nrfx_uarte_driver_api)
#define UARTE_CONFIG(idx) \

View File

@@ -1062,7 +1062,7 @@ static const struct uart_driver_api uart_ns16550_driver_api = {
#define DEV_DATA_FLOW_CTRL0 UART_CFG_FLOW_CTRL_NONE
#define DEV_DATA_FLOW_CTRL1 UART_CFG_FLOW_CTRL_RTS_CTS
#define DEV_DATA_FLOW_CTRL(n) \
_CONCAT(DEV_DATA_FLOW_CTRL, DT_INST_NODE_HAS_PROP(n, hw_flow_control))
_CONCAT(DEV_DATA_FLOW_CTRL, DT_INST_PROP_OR(n, hw_flow_control, 0))
#define DEV_DATA_DLF0(n)
#define DEV_DATA_DLF1(n) \
@@ -1090,7 +1090,7 @@ static const struct uart_driver_api uart_ns16550_driver_api = {
}; \
DEVICE_DT_INST_DEFINE(n, &uart_ns16550_init, NULL, \
&uart_ns16550_dev_data_##n, &uart_ns16550_dev_cfg_##n, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_ns16550_driver_api); \
UART_NS16550_IRQ_FUNC_DEFINE(n)

View File

@@ -207,7 +207,7 @@ DEVICE_DT_INST_DEFINE(index, \
NULL, \
&uart_numicro_data_##index, \
&uart_numicro_cfg_##index, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_numicro_driver_api);
DT_INST_FOREACH_STATUS_OKAY(NUMICRO_INIT)

View File

@@ -443,7 +443,7 @@ DEVICE_DT_INST_DEFINE(0,
NULL,
&pl011_data_port_0,
&pl011_cfg_port_0, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&pl011_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -506,7 +506,7 @@ DEVICE_DT_INST_DEFINE(1,
NULL,
&pl011_data_port_1,
&pl011_cfg_port_1, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&pl011_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -571,7 +571,7 @@ DEVICE_DT_INST_DEFINE(0,
NULL,
&pl011_data_sbsa,
&pl011_cfg_sbsa, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
CONFIG_SERIAL_INIT_PRIORITY,
&pl011_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN

View File

@@ -361,7 +361,7 @@ static const struct uart_driver_api uart_psoc6_driver_api = {
DEVICE_DT_INST_DEFINE(n, &uart_psoc6_init, NULL, \
CY_PSOC6_UART_DECL_DATA_PTR(n), \
&cy_psoc6_uart##n##_config, PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_psoc6_driver_api);
DT_INST_FOREACH_STATUS_OKAY(CY_PSOC6_UART_INIT)

View File

@@ -583,7 +583,7 @@ static const struct uart_driver_api uart_rcar_driver_api = {
NULL, \
&uart_rcar_data_##n, \
&uart_rcar_cfg_##n, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_rcar_driver_api); \
\
UART_RCAR_CONFIG_FUNC(n) \

View File

@@ -53,7 +53,7 @@ DEVICE_DT_DEFINE(DT_NODELABEL(uart##idx), \
NULL, \
NULL, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_rom_esp32c3_api); \
DT_INST_FOREACH_STATUS_OKAY(ESP32C3_ROM_UART_INIT)

View File

@@ -51,7 +51,7 @@ DEVICE_DT_DEFINE(DT_NODELABEL(uart##idx), \
NULL, \
NULL, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_rom_esp32s2_api); \
DT_INST_FOREACH_STATUS_OKAY(ESP32S2_ROM_UART_INIT)

View File

@@ -217,7 +217,7 @@ static const struct uart_driver_api uart_rtt_driver_api = {
\
DEVICE_DT_DEFINE(UART_RTT(idx), uart_rtt_init, NULL, \
&uart_rtt##idx##_data, config, \
PRE_KERNEL_2, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_2, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_rtt_driver_api)
#ifdef CONFIG_UART_RTT_0

View File

@@ -334,7 +334,7 @@ static const struct uart_driver_api rv32m1_lpuart_driver_api = {
&rv32m1_lpuart_##n##_data, \
&rv32m1_lpuart_##n##_cfg, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&rv32m1_lpuart_driver_api); \
\
RV32M1_LPUART_CONFIG_FUNC(n) \

View File

@@ -364,7 +364,7 @@ static const struct uart_driver_api uart_sam_driver_api = {
DEVICE_DT_INST_DEFINE(n, &uart_sam_init, \
NULL, &uart##n##_sam_data, \
&uart##n##_sam_config, PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_sam_driver_api); \
\
UART_SAM_CONFIG_FUNC(n) \

View File

@@ -1256,7 +1256,7 @@ UART_SAM0_CONFIG_DEFN(n); \
DEVICE_DT_INST_DEFINE(n, uart_sam0_init, NULL, \
&uart_sam0_data_##n, \
&uart_sam0_config_##n, PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_sam0_driver_api); \
UART_SAM0_IRQ_HANDLER(n)

View File

@@ -396,7 +396,7 @@ DEVICE_DT_INST_DEFINE(0,
uart_sifive_init,
NULL,
&uart_sifive_data_0, &uart_sifive_dev_cfg_0,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
(void *)&uart_sifive_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -435,7 +435,7 @@ DEVICE_DT_INST_DEFINE(1,
uart_sifive_init,
NULL,
&uart_sifive_data_1, &uart_sifive_dev_cfg_1,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
(void *)&uart_sifive_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN

View File

@@ -652,7 +652,7 @@ DEVICE_DT_INST_DEFINE(0,
&uart_stellaris_init,
NULL,
&uart_stellaris_dev_data_0, &uart_stellaris_dev_cfg_0,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
&uart_stellaris_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -691,7 +691,7 @@ DEVICE_DT_INST_DEFINE(1,
&uart_stellaris_init,
NULL,
&uart_stellaris_dev_data_1, &uart_stellaris_dev_cfg_1,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
&uart_stellaris_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
@@ -730,7 +730,7 @@ DEVICE_DT_INST_DEFINE(2,
&uart_stellaris_init,
NULL,
&uart_stellaris_dev_data_2, &uart_stellaris_dev_cfg_2,
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY,
&uart_stellaris_driver_api);
#ifdef CONFIG_UART_INTERRUPT_DRIVEN

View File

@@ -594,11 +594,13 @@ static void uart_stm32_irq_tx_enable(const struct device *dev)
{
USART_TypeDef *UartInstance = UART_STRUCT(dev);
LL_USART_EnableIT_TC(UartInstance);
#ifdef CONFIG_PM
struct uart_stm32_data *data = DEV_DATA(dev);
data->tx_poll_stream_on = false;
uart_stm32_pm_constraint_set(dev);
#endif
LL_USART_EnableIT_TC(UartInstance);
}
static void uart_stm32_irq_tx_disable(const struct device *dev)
@@ -886,7 +888,7 @@ static void uart_stm32_isr(const struct device *dev)
uart_stm32_dma_rx_flush(dev);
}
} else if (LL_USART_IsEnabledIT_TC(UartInstance) &&
LL_USART_IsActiveFlag_TC(UartInstance)) {
LL_USART_IsActiveFlag_TC(UartInstance)) {
LL_USART_DisableIT_TC(UartInstance);
LL_USART_ClearFlag_TC(UartInstance);
@@ -896,6 +898,15 @@ static void uart_stm32_isr(const struct device *dev)
#ifdef CONFIG_PM
uart_stm32_pm_constraint_release(dev);
#endif
} else if (LL_USART_IsEnabledIT_RXNE(UartInstance) &&
LL_USART_IsActiveFlag_RXNE(UartInstance)) {
#ifdef USART_SR_RXNE
/* clear the RXNE flag, because Rx data was not read */
LL_USART_ClearFlag_RXNE(UartInstance);
#else
/* clear the RXNE by flushing the fifo, because Rx data was not read */
LL_USART_RequestRxDataFlush(UartInstance);
#endif /* USART_SR_RXNE */
}
/* Clear errors */
@@ -977,6 +988,9 @@ static int uart_stm32_async_rx_disable(const struct device *dev)
data->rx_next_buffer = NULL;
data->rx_next_buffer_len = 0;
/* When async rx is disabled, enable interruptable instance of uart to function normally*/
LL_USART_EnableIT_RXNE(UartInstance);
LOG_DBG("rx: disabled");
async_user_callback(data, &disabled_event);
@@ -1605,7 +1619,7 @@ DEVICE_DT_INST_DEFINE(index, \
&uart_stm32_init, \
NULL, \
&uart_stm32_data_##index, &uart_stm32_cfg_##index, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_stm32_driver_api); \
\
STM32_UART_IRQ_HANDLER(index)

View File

@@ -1214,7 +1214,7 @@ DEVICE_DT_INST_DEFINE(port, \
NULL, \
&uart_xlnx_ps_dev_data_##port, \
&uart_xlnx_ps_dev_cfg_##port, \
PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
PRE_KERNEL_1, CONFIG_SERIAL_INIT_PRIORITY, \
&uart_xlnx_ps_driver_api)
#define UART_XLNX_INSTANTIATE(inst) \

View File

@@ -379,7 +379,7 @@ static const struct xlnx_uartlite_config xlnx_uartlite_##n##_config = { \
&xlnx_uartlite_##n##_data, \
&xlnx_uartlite_##n##_config, \
PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&xlnx_uartlite_driver_api); \
\
XLNX_UARTLITE_CONFIG_FUNC(n) \

View File

@@ -77,7 +77,7 @@ static const struct uart_device_config xmc4xxx_config_##index = { \
NULL, \
&xmc4xxx_data_##index, \
&xmc4xxx_config_##index, PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&uart_xmc4xxx_driver_api);
DT_INST_FOREACH_STATUS_OKAY(XMC4XXX_INIT)

View File

@@ -366,7 +366,7 @@ static const struct uart_driver_api usart_sam_driver_api = {
&usart_sam_init, NULL, \
&usart##n##_sam_data, \
&usart##n##_sam_config, PRE_KERNEL_1, \
CONFIG_KERNEL_INIT_PRIORITY_DEVICE, \
CONFIG_SERIAL_INIT_PRIORITY, \
&usart_sam_driver_api); \
\
USART_SAM_CONFIG_FUNC(n) \

View File

@@ -112,22 +112,34 @@ static inline void spi_context_release(struct spi_context *ctx, int status)
static inline int spi_context_wait_for_completion(struct spi_context *ctx)
{
int status = 0;
uint32_t timeout_ms;
k_timeout_t timeout;
timeout_ms = MAX(ctx->tx_len, ctx->rx_len) * 8 * 1000 /
ctx->config->frequency;
timeout_ms += CONFIG_SPI_COMPLETION_TIMEOUT_TOLERANCE;
/* Do not use any timeout in the slave mode, as in this case it is not
* known when the transfer will actually start and what the frequency
* will be.
*/
if (IS_ENABLED(CONFIG_SPI_SLAVE) && spi_context_is_slave(ctx)) {
timeout = K_FOREVER;
} else {
uint32_t timeout_ms;
timeout_ms = MAX(ctx->tx_len, ctx->rx_len) * 8 * 1000 /
ctx->config->frequency;
timeout_ms += CONFIG_SPI_COMPLETION_TIMEOUT_TOLERANCE;
timeout = K_MSEC(timeout_ms);
}
#ifdef CONFIG_SPI_ASYNC
if (!ctx->asynchronous) {
if (k_sem_take(&ctx->sync, K_MSEC(timeout_ms))) {
if (k_sem_take(&ctx->sync, timeout)) {
LOG_ERR("Timeout waiting for transfer complete");
return -ETIMEDOUT;
}
status = ctx->sync_status;
}
#else
if (k_sem_take(&ctx->sync, K_MSEC(timeout_ms))) {
if (k_sem_take(&ctx->sync, timeout)) {
LOG_ERR("Timeout waiting for transfer complete");
return -ETIMEDOUT;
}
@@ -236,6 +248,25 @@ static inline void spi_context_unlock_unconditionally(struct spi_context *ctx)
}
}
static inline void *spi_context_get_next_buf(const struct spi_buf **current,
size_t *count,
size_t *buf_len,
uint8_t dfs)
{
/* This loop skips zero-length buffers in the set, if any. */
while (*count) {
if (((*current)->len / dfs) != 0) {
*buf_len = (*current)->len / dfs;
return (*current)->buf;
}
++(*current);
--(*count);
}
*buf_len = 0;
return NULL;
}
static inline
void spi_context_buffers_setup(struct spi_context *ctx,
const struct spi_buf_set *tx_bufs,
@@ -244,29 +275,17 @@ void spi_context_buffers_setup(struct spi_context *ctx,
{
LOG_DBG("tx_bufs %p - rx_bufs %p - %u", tx_bufs, rx_bufs, dfs);
if (tx_bufs) {
ctx->current_tx = tx_bufs->buffers;
ctx->tx_count = tx_bufs->count;
ctx->tx_buf = (const uint8_t *)ctx->current_tx->buf;
ctx->tx_len = ctx->current_tx->len / dfs;
} else {
ctx->current_tx = NULL;
ctx->tx_count = 0;
ctx->tx_buf = NULL;
ctx->tx_len = 0;
}
ctx->current_tx = tx_bufs ? tx_bufs->buffers : NULL;
ctx->tx_count = ctx->current_tx ? tx_bufs->count : 0;
ctx->tx_buf = (const uint8_t *)
spi_context_get_next_buf(&ctx->current_tx, &ctx->tx_count,
&ctx->tx_len, dfs);
if (rx_bufs) {
ctx->current_rx = rx_bufs->buffers;
ctx->rx_count = rx_bufs->count;
ctx->rx_buf = (uint8_t *)ctx->current_rx->buf;
ctx->rx_len = ctx->current_rx->len / dfs;
} else {
ctx->current_rx = NULL;
ctx->rx_count = 0;
ctx->rx_buf = NULL;
ctx->rx_len = 0;
}
ctx->current_rx = rx_bufs ? rx_bufs->buffers : NULL;
ctx->rx_count = ctx->current_rx ? rx_bufs->count : 0;
ctx->rx_buf = (uint8_t *)
spi_context_get_next_buf(&ctx->current_rx, &ctx->rx_count,
&ctx->rx_len, dfs);
ctx->sync_status = 0;
@@ -275,10 +294,10 @@ void spi_context_buffers_setup(struct spi_context *ctx,
#endif /* CONFIG_SPI_SLAVE */
LOG_DBG("current_tx %p (%zu), current_rx %p (%zu),"
" tx buf/len %p/%zu, rx buf/len %p/%zu",
ctx->current_tx, ctx->tx_count,
ctx->current_rx, ctx->rx_count,
ctx->tx_buf, ctx->tx_len, ctx->rx_buf, ctx->rx_len);
" tx buf/len %p/%zu, rx buf/len %p/%zu",
ctx->current_tx, ctx->tx_count,
ctx->current_rx, ctx->rx_count,
ctx->tx_buf, ctx->tx_len, ctx->rx_buf, ctx->rx_len);
}
static ALWAYS_INLINE
@@ -295,14 +314,13 @@ void spi_context_update_tx(struct spi_context *ctx, uint8_t dfs, uint32_t len)
ctx->tx_len -= len;
if (!ctx->tx_len) {
ctx->tx_count--;
if (ctx->tx_count) {
ctx->current_tx++;
ctx->tx_buf = (const uint8_t *)ctx->current_tx->buf;
ctx->tx_len = ctx->current_tx->len / dfs;
} else {
ctx->tx_buf = NULL;
}
/* Current buffer is done. Get the next one to be processed. */
++ctx->current_tx;
--ctx->tx_count;
ctx->tx_buf = (const uint8_t *)
spi_context_get_next_buf(&ctx->current_tx,
&ctx->tx_count,
&ctx->tx_len, dfs);
} else if (ctx->tx_buf) {
ctx->tx_buf += dfs * len;
}
@@ -343,14 +361,13 @@ void spi_context_update_rx(struct spi_context *ctx, uint8_t dfs, uint32_t len)
ctx->rx_len -= len;
if (!ctx->rx_len) {
ctx->rx_count--;
if (ctx->rx_count) {
ctx->current_rx++;
ctx->rx_buf = (uint8_t *)ctx->current_rx->buf;
ctx->rx_len = ctx->current_rx->len / dfs;
} else {
ctx->rx_buf = NULL;
}
/* Current buffer is done. Get the next one to be processed. */
++ctx->current_rx;
--ctx->rx_count;
ctx->rx_buf = (uint8_t *)
spi_context_get_next_buf(&ctx->current_rx,
&ctx->rx_count,
&ctx->rx_len, dfs);
} else if (ctx->rx_buf) {
ctx->rx_buf += dfs * len;
}

View File

@@ -43,6 +43,40 @@
#endif
#endif
#if defined(CONFIG_ARC_FIRQ) && defined(CONFIG_ISA_ARCV3)
#error "Unsupported configuration: ARC_FIRQ and ISA_ARCV3"
#endif
/*
* We don't allow the configuration with FIRQ enabled and only one interrupt priority level
* (so all interrupts are FIRQ). Such configuration isn't supported in software and it is not
* beneficial from the performance point of view.
*/
#if defined(CONFIG_ARC_FIRQ) && CONFIG_NUM_IRQ_PRIO_LEVELS < 2
#error "Unsupported configuration: ARC_FIRQ and (NUM_IRQ_PRIO_LEVELS < 2)"
#endif
#if CONFIG_RGF_NUM_BANKS > 1 && !defined(CONFIG_ARC_FIRQ)
#error "Unsupported configuration: (RGF_NUM_BANKS > 1) and !ARC_FIRQ"
#endif
/*
* It's required to have more than one interrupt priority level to use second register bank
* - otherwise all interrupts will use same register bank. Such configuration isn't supported in
* software and it is not beneficial from the performance point of view.
*/
#if CONFIG_RGF_NUM_BANKS > 1 && CONFIG_NUM_IRQ_PRIO_LEVELS < 2
#error "Unsupported configuration: (RGF_NUM_BANKS > 1) and (NUM_IRQ_PRIO_LEVELS < 2)"
#endif
#if defined(CONFIG_ARC_FIRQ_STACK) && !defined(CONFIG_ARC_FIRQ)
#error "Unsupported configuration: ARC_FIRQ_STACK and !ARC_FIRQ"
#endif
#if defined(CONFIG_ARC_FIRQ_STACK) && CONFIG_RGF_NUM_BANKS < 2
#error "Unsupported configuration: ARC_FIRQ_STACK and (RGF_NUM_BANKS < 2)"
#endif
#ifndef _ASMLANGUAGE
#ifdef __cplusplus

View File

@@ -227,7 +227,6 @@ SECTIONS
} GROUP_DATA_LINK_IN(RAMABLE_REGION, RAMABLE_REGION)
#include <linker/common-noinit.ld>
#include <linker/cplusplus-ram.ld>
SECTION_DATA_PROLOGUE(_DATA_SECTION_NAME,,)
{
@@ -271,6 +270,7 @@ SECTIONS
#include <linker/common-ram.ld>
#include <linker/kobject-data.ld>
#include <linker/cplusplus-ram.ld>
/* Located in generated directory. This file is populated by the
* zephyr_linker_sources() Cmake function.

View File

@@ -1153,6 +1153,9 @@ struct bt_le_per_adv_sync_term_info {
/** Advertiser SID */
uint8_t sid;
/** Cause of periodic advertising termination */
uint8_t reason;
};
struct bt_le_per_adv_sync_recv_info {

View File

@@ -751,6 +751,9 @@ enum bt_security_err {
/** Invalid parameters. */
BT_SECURITY_ERR_INVALID_PARAM,
/** Distributed Key Rejected */
BT_SECURITY_ERR_KEY_REJECTED,
/** Pairing failed but the exact reason could not be specified. */
BT_SECURITY_ERR_UNSPECIFIED,
};

View File

@@ -817,7 +817,7 @@ static inline int can_configure(const struct device *dev, enum can_mode mode,
uint32_t bitrate)
{
if (bitrate > 0) {
int err = can_set_bitrate(dev, bitrate, 0);
int err = can_set_bitrate(dev, bitrate, bitrate);
if (err != 0) {
return err;
}
@@ -826,7 +826,6 @@ static inline int can_configure(const struct device *dev, enum can_mode mode,
return can_set_mode(dev, mode);
}
/**
* @brief Get current state
*

View File

@@ -241,6 +241,7 @@
#define STM32_SYSCLK_SRC_HSE DT_SAME_NODE(DT_RCC_CLOCKS_CTRL, DT_NODELABEL(clk_hse))
#define STM32_SYSCLK_SRC_MSI DT_SAME_NODE(DT_RCC_CLOCKS_CTRL, DT_NODELABEL(clk_msi))
#define STM32_SYSCLK_SRC_CSI DT_SAME_NODE(DT_RCC_CLOCKS_CTRL, DT_NODELABEL(clk_csi))
#define STM32_SYSCLK_SRC_MSIS DT_SAME_NODE(DT_RCC_CLOCKS_CTRL, DT_NODELABEL(clk_msis))
#else
#define STM32_SYSCLK_SRC_PLL CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL
#define STM32_SYSCLK_SRC_HSI CONFIG_CLOCK_STM32_SYSCLK_SRC_HSI

View File

@@ -12,21 +12,6 @@
extern "C" {
#endif
#define Z_TRACING_LOG_TRACE(id) do { \
Z_TRACING_LOG_HDR_INIT(_msg, id); \
z_log_msg2_put_trace(_msg); \
} while (0)
#define Z_TRACING_LOG_TRACE_PTR(id, ptr) do { \
Z_TRACING_LOG_HDR_INIT(_msg, id); \
z_log_msg2_put_trace_ptr(_msg, ptr); \
} while (0)
void z_log_msg2_put_trace(struct log_msg2_trace trace);
void z_log_msg2_put_trace_ptr(struct log_msg2_trace hdr, void *data);
/** @brief Initialize module for handling logging message. */
void z_log_msg2_init(void);

Some files were not shown because too many files have changed in this diff Show More