Commit graph

85,247 commits

Author SHA1 Message Date
Petr Sharshavin
f5ae6ccfa8 drivers: lora: fix busy after sx12xx_lora_test_cw
The LoRa modem has been staying in STATE_BUSY
after sx12xx_lora_test_cw() call
because Radio.SetTxContinuousWave() doesn't configure the PHY
to raise 'TX done' event.

It runs TxTimeoutTimer instead,
so we have to handle 'TX timeout' event to correctly release the modem.

This fix has been tested on custom board with STM32L4 and SX1276.

Signed-off-by: Petr Sharshavin <sharshavin@mail.ru>
2023-02-23 09:25:39 +01:00
Théo Battrel
a95811e677 Bluetooth: tests: Add tests for Bluetooth privacy
Add tests to check the following aspects of the Bluetooth privacy feature:

- On device privacy mode, scanner shall accept advertising packets from
  peer with any address type. That, even if they have previously exchanged
  IRK;
- After devices have exchanged IRK, they must correctly resolve RPA.

Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
2023-02-23 09:08:25 +01:00
Robert Lubos
43a86b8138 net: tcp: Fix packet processing result reporting
TCP implementation abused the packet processing result reporting
mechanism, by reporting NET_DROP for every packet other than data
packets (which were passed to the application). This simplified the TCP
implementation a bit, as it didn't need to deal with packet releasing.
While technically it worked, it gave incorrect results when it comes to
packet statistics, as a lot of valid TCP packets were counted as
dropped.

This commit fixes this. Each packet that was properly processed by the
TCP stack is not either released at the TCP level, or passed to the
application. In both cases, NET_OK is returned to the network core,
indicating the packet has been properly processed and consumed.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2023-02-23 09:07:52 +01:00
Garrett Battaglia
65e3f5b23d drivers: sensor: add MAX31855
add MAX31855 cold-junction compensated thermocouple-to-digital
converter sensor driver and sample

Signed-off-by: Garrett Battaglia <garrett@garrettbattaglia.com>
2023-02-23 09:06:28 +01:00
Dominik Ermel
447e2c1859 samples/fs/littlefs: Separate SPI, QSPI and SoC nrf52840dk configs
Add support to run the sample on nrf52840dk_nrf52840 using
internal SoC flash, and external mx25 device over QSPI or SPI.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-02-23 09:03:58 +01:00
Henrik Brix Andersen
eb9bbf4490 drivers: can: sja1000: move public header file to public include path
Move the can_sja1000.h header file to the public
include/zephyr/drivers/can/ include path. This allows writing out-of-tree
SJA1000 based driver front-ends.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-02-23 09:00:34 +01:00
Henrik Brix Andersen
79c8d0e6aa tests: drivers: can: api: add tests for can_frame_matches_filter()
Add CAN API tests for the can_frame_matches_filter() utility function.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-02-23 09:00:12 +01:00
Henrik Brix Andersen
4e67546321 tests: drivers: can: api: adjust CAN IDs used for testing
Adjust the CAN IDs used for testing in order for them to match the various
can_*_filter_2 as documented in common.h.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-02-23 09:00:12 +01:00
Henrik Brix Andersen
9b39c43714 tests: drivers: can: api: use correct CAN ID in test_ext_masked_filter_2
Use the correct CAN ID in struct can_filter test_ext_masked_filter_2.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-02-23 09:00:12 +01:00
Henrik Brix Andersen
8875c3b2e9 tests: drivers: can: move CAN utility function tests to API tests
Move the CAN utility functions tests to a separate test suite under the CAN
API tests.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-02-23 09:00:12 +01:00
Henrik Brix Andersen
36bffb20ae drivers: can: move CAN utility function to public header
Rename the can_utils_filter_match() utility function to
can_frame_matches_filter(), move it to the public
include/zephyr/drivers/can.h header file, and add a missing mismatch for
standard (11-bit) ID frames passing extended (29-bit) filters.

This allows using the utility function in out-of-tree CAN drivers.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-02-23 09:00:12 +01:00
Tim Lin
00e6c19ab5 ITE: drivers/adc: Add config of ADC reference voltage full-scale 3300mV
This option can enable ADC internal reference voltage as
full-scale 3300mV.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2023-02-23 08:59:54 +01:00
Emil Gydesen
4fcc3f0c1e Bluetooth: Audio: Add guard for bt_audio_codec_qos_to_iso_qos
The function are only used by the broadcast roles and
the unicast client.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-02-23 08:58:52 +01:00
Emil Gydesen
f5f1664a41 Bluetooth: Audio: Move most of unicast client-only code from stream.c
Some operations such as Config, QoS, Enable and Stop
are only available for the unicast client, but since
they share the bt_audio_stream prefix, we leave the
agnostic part of it in stream.c, and move the actual
implementation to unicast_client.c.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-02-23 08:58:52 +01:00
Emil Gydesen
6303fa0c18 Bluetooth: Audio: Remove unicast server specific code from stream.c
stream.c had code that was only useful for the unicast server/
ASCS, and have been moved to ascs.c instead.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-02-23 08:58:52 +01:00
Dominik Ermel
d00dfa8a45 sample/drivers/jesd216: Reduce nrf52840dk SPI overlay
Reduce nrf52840dk_nrf52480_spi.overlay to use default board
definition of spi2.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-02-23 08:58:34 +01:00
Mikhail Siomin
8310f83726 soc: arm: nxp_imx: rt: Allow to include boot header.
Allow to include boot header for code linked into
not only FlexSPI controlled memory.
Fixes #53867

Signed-off-by: Mikhail Siomin <victorovich.01@mail.ru>
2023-02-23 08:57:30 +01:00
Joel Guittet
7758ad65b0 board: rak5010_nrf52840: fix lis3dh irq gpio
The INT pin of the LIS3DH sensor is connected to P0.16 on this board.
Fixes #54844.

Signed-off-by: Joel Guittet <joelguittet@gmail.com>
2023-02-23 08:57:11 +01:00
Kumar Gala
434ca63e2f arch: arm: limit FP16 support to Cortex-A or Cortex-R
FP16 isn't something that is supported on Cortex-M so limit the
Kconfig feature to Cortex-A or Cortex-R.

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2023-02-23 08:48:01 +01:00
Marcin Niestroj
2b4cbe9e29 kernel: remove init_abort from _static_thread_data
Commit d823f88e3b ("kernel: move _static_thread_data to ROM") intended to
remove init_abort member from `struct _static_thread_data`, but instead it
just removed it from Z_THREAD_INITIALIZER() initializer.

Remove init_abort, which is a leftover.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2023-02-23 08:47:53 +01:00
Sophie Tyalie
e3ae110a05 fix: doc: in kernel/drivers interrupts function had mismatching types
The typedef defines an interrupt config routine with `const struct device
*dev`, while the example function had (void) as argument. This could be
considered confusing / would throw compiler warnings even though the
parameter isn't strictly necessary.

Code examples for initializing an IRQ in a device example follow the
updated pattern (e.g. see `drivers/serial/uart_npcx.c`).

Signed-off-by: Sophie Tyalie <dev@flowerpot.me>
2023-02-22 16:58:29 -05:00
Alexander Wachter
244f623f8c drivers: gpio: emul: replace mutex with spinlock
Replace all mutex with spinlocks to make the driver usable
from ISRs.

Signed-off-by: Alexander Wachter <alexander@wachter.cloud>
2023-02-22 21:48:30 +01:00
Peter Mitsis
4ab9be98df canbus: isotp: Fix typo in function descriptions
Fixes the return value descriptions for functions isotp_recv() and
isotp_recv_net() as they mistakenly referred to ISOTP_WAIT_TIMEOUT
instead of ISOTP_RECV_TIMEOUT.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2023-02-22 15:09:58 -05:00
Chris Friedt
480b74917d samples: lib: os: hash_map: add Hashmap sample code
This sample shows how to use `sys_hashmap`.

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-22 19:14:05 +01:00
Chris Friedt
e607684cb0 tests: lib: hashmap: tests for hashmap library
Add tests for public API of `<zephyr/sys/hash_map.h>`

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-22 19:14:05 +01:00
Chris Friedt
0bda7b30df lib: os: add hashmap support
* Add a flexible Hashmap API
* Add a Separate-Chaining Hashmap Implementation
* Add a Open-Addressing Linear Probe Hashmap Implementation
* Add a C-Wrapper for `std::unordered_map` for benchmarking

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-22 19:14:05 +01:00
Chris Friedt
2d4619b13c tests: lib: hash_function: tests for sys_hash32
Add a test for `sys_hash32()`. The expectation is that hash
functions should be approximately uniform over a given field.

We can use the Kolmogorov Smirnov test to verify that our
hash function is approximately uniform over a given field.

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-22 19:14:05 +01:00
Chris Friedt
b75df60f0b lib: os: add hash function specification and implementation
Hash functions are necessary for Hashmaps (a.k.a. Hash Tables).

* Create a flexible hash function interface
* Implementation 1. Murmur3
* Implementation 2. djb2
* Kconfig option for system-wide 32-bit hash

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-22 19:14:05 +01:00
Chris Friedt
edb5ee1575 tests: unit: test for Power-of-Two utilities
Tests for Power-of-Two (PoT) utilities.

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-22 19:14:05 +01:00
Chris Friedt
c26fc959e6 sys: util: Power-of-Two utilities
* remove previous `LOG2CEIL()` from `<zephyr/toolchain/common.h>`
  - `LOG2CEIL()` is not used in-tree by any C or C++ source
  - only used are in `.ld` files
  - however, it is built-in to both GNU and LLVM linkers
* sys: util: provide LOG2() and LOG2CEIL() macros
  - calculate `log(x)` and `ceil(log(x))`, respectively
  - both are compile-time `const` / ok for `constexpr`
  - also runtime efficient with `__builtin_clz()`
  - `LOG2()`, `NUMBITS()`, and `IS_POWER_OF_TWO()` macros
    contributed by @JordanYates
  - `LOG2CEIL()` contributed by @oyvindronningstad
* sys: util: provide Next-Highest Power-of-Two macro `NHPOT()`
  - calculate `next = pow(2, ceil(log(x)/log(2)))`
  - leverages `LOG2CEIL()`

Signed-off-by: Chris Friedt <cfriedt@meta.com>
2023-02-22 19:14:05 +01:00
Carles Cufi
d095f7d22f doc: coding guidelines: Add a new rule for macro name collisions
This commit is the outcome of the discussion that has taken place in
multiple forums:

Discord:
https://discord.com/channels/720317445772017664/1014241011989487716/1032623375228608522

GitHub:
https://github.com/zephyrproject-rtos/zephyr/issues/51371
https://github.com/zephyrproject-rtos/zephyr/pull/50239

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2023-02-22 09:39:57 -08:00
Dominik Ermel
86c4b4caa9 west/sign: Move from using partition label property
MCUmgr no longer uses DTS node property label to identify
slots for image upload and running application. It now uses DTS node
labels for that purpose.
This commit moves `west sign` from using label properties
to DTS node labels, same way the MCUmgr does.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2023-02-22 09:32:51 -08:00
Stephanos Ioannidis
fe8c1fb8ba SECURITY: Drop "patch level" from the supported version number list
This commit drops the "patch level" from the supported version numbers
listed in the security policy document because:

1. It currently does not convey any meaningful information (simply set
   to "0") and is really unnecessary because the support status is
   defined at the "minor" version level.

2. Updating the security policy document whenever there is a new "patch
   release" is arguably too noisy and does not add much value.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2023-02-22 12:06:17 -05:00
Stephanos Ioannidis
1e8fa9b0cb SECURITY: Update supported version list after v3.3
This commit updates the list of supported versions in the project
security policy document after the Zephyr 3.3 release.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2023-02-22 12:06:17 -05:00
Guillaume Gautier
cdd100f1d6 dts: arm: st: l4: fix temperature calibration value
For STM32L47x and STM32L48x, the high calibration value for temperature is
110. For all other STM32L4xx, it is 130. So we set 130 by default and set
it to 110 for L471.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
e08a41a360 dts: arm: st: l4: add gpioi driver to stm32l4r5 dtsi
Add GPIOI driver to STM32L4R5 dtsi.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
45748a7ae9 dts: arm: st: l4: add can2 driver to stm32l496 dtsi
Add CAN2 driver to STM32L496 dtsi.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
ca1646b996 dts: arm: st: l4: add aes driver to stm32l4r5 dtsi
Add AES driver to STM32L4R5 dtsi.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
1b4badf52b dts: arm: st: l4: add sdmmc driver to stm32l433 dtsi
Add SDMMC driver to STM32L433 dtsi.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
7e2edb98dc dts: arm: st: l4: add aes driver to stm32l462 dtsi
Add AES driver to STM32L462 dtsi.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
3ff66ab200 dts: arm: st: l4: add aes driver to stm32l422 dtsi
Add AES driver to STM32L422 dtsi.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
36dfafadeb dts: arm: st: l4: fix aes inclusion for stm32l4xx
AES driver is not present in STM32L486 but it L496 and L4A6 have it

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
6812e561a7 dts: arm: st: l4: remove adc3 duplicates from stm32l476/96
ADC3 is already defined for STM32L471 which is included in STM32L476 and in
STM32L496 so no need to define it a second time.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
687893106a dts: arm: st: l4: add usart3 to stm32l412 & l422
Add USART3 to STM32L412 (and STM32L422 by inclusion) since both have it
available

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
d588d8441b dts: arm: st: l4: add i2c2 to stm32l412 & l422
Add I2C2 to STM32L412 (and STM32L422 by inclusion) since both have it
available

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Guillaume Gautier
f3f0aa0851 dts: arm: st: l4: lptim2 is available on all stm32l4xx
Move LPTIM2 from stm32l431 dtsi to the general stm32l4 dtsi since all
STM32L4xx have two LPTIMs.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-02-22 08:47:31 -08:00
Artur Hadasz
505b60fc9d manifest: update hal_nordic revision
This commit updates hal_nordic revision to bring the latest changes in
nRF IEEE 802.15.4 radio driver.

Signed-off-by: Artur Hadasz <artur.hadasz@nordicsemi.no>
2023-02-22 16:46:15 +01:00
Artur Hadasz
5ec29589c4 modules: hal_nordic: 802.15.4 carrier functions made optional
Added an option to disable and enable the continuous and optional
carrier functions in the nordic 802.15.4 driver.

Signed-off-by: Artur Hadasz <artur.hadasz@nordicsemi.no>
2023-02-22 16:46:15 +01:00
Mulin Chao
809e63a91a driver: uart: npcx: add missing tx/rx interrupt enabled checks
When checking if any UART TX/RX IRQs are pending, the driver should also
consider whether these IRQs are enabled. Or we still get pending status
set even if the related interrupts are disabled.

Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
2023-02-22 16:30:08 +01:00
Mulin Chao
dbc614ee10 driver: uart: npcx: avoid concurrency writing UFTCTL register
In order to avoid concurrency situation during writing UFTCTL register,
this CL adds critical sections to prevent the unexpected result if the
driver wants to set/clear bits of this register.

Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2023-02-22 16:30:08 +01:00