Commit graph

118,807 commits

Author SHA1 Message Date
Robert Lubos
2459ffae41 net: mqtt: Add MQTT 5.0 support for SUBACK/UNSUBACK
Add support for SUBACK/UNSUBACK messaged specified in MQTT 5.0.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
efd795b066 net: mqtt: Add MQTT 5.0 support for SUBSCRIBE/UNSUBSCRIBE
Add support for SUBSCRIBE/UNSUBSCRIBE messages specified in MQTT 5.0.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
c21e64251b net: mqtt: Add MQTT 5.0 support for PUBLISH ACKs
Add support for PUBACK, PUBREC, PUBREL and PUBCOMP specified in MQTT
5.0. As all of these acknowledgment packets have similar format,
introduced a common encoder/decoder to handle ACK packets.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
15ad90aceb net: mqtt: Add MQTT 5.0 support for PUBLISH
Add support for PUBLISH message specified in MQTT 5.0. The message
encoder and decoder were updated to support MQTT properties.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
6038676b83 net: mqtt: Add MQTT 5.0 support for CONNACK
Add support for CONNACK message specified in MQTT 5.0, along with
property decoders required to decode MQTT properties. Decoded properties
are provided to the application within mqtt_connack_param structure,
accompanying the CONNACK event.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
8fe2965500 net: mqtt: Add MQTT 5.0 support for CONNECT
Add support for CONNECT message specified in MQTT 5.0, along with
property encoders required to encode MQTT properties which is a new
concept in MQTT 5.0. Connect and will properties can be specified by the
application in the mqtt_client structure before connecting.

Introduce a helper function which allows to verify whether MQTT 5.0 is
used or not, so that it's still possible to use MQTT 3.1 even if MQTT
5.0 support is enabled in Kconfig.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
1eb9a5c241 net: mqtt: Fix helper macro for encoded binary data length
The macro did not take into account the 2-byte binary data length
encoded before the actual binary data.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
08f8e2f956 tests: net: lib: mqtt: v3_1_1: Add test variant with MQTT 5.0 enabled
Add test variant which enables MQTT 5.0 support. MQTT 3.1.1 should still
work just fine in such case, so it needs to be verified that's the case.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Robert Lubos
f31a45f57c net: mqtt: Add Kconfig to select maximum supported MQTT version
It should be possible to select maximum supported MQTT version, so that
for example MQTT 5.0 features can be compiled-out in case they're not
needed.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-03-26 16:19:42 +01:00
Håvard Reierstad
acccd46306 Bluetooth: Mesh: Test pb cancelling in bsim
Adds a provision test to check that provisioning bearers are cancelled
when a provisioning link is opened. Modifies the functionality for
receiving unprovisioned beacons to fail the test if a unprovisioned
beacon is received from the current provisionee after a threshold.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2025-03-26 16:19:31 +01:00
Håvard Reierstad
062fdc30bd Bluetooth: Mesh: Fix typo in prov bsim
Changes Brearer --> Bearer.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2025-03-26 16:19:31 +01:00
Håvard Reierstad
200628e8d0 Bluetooth: Mesh: Disable prov bearers on link
Previously, PB-GATT unprovisioned advs would continue being sent if a
device is provisioned or in the process of being provisioned (an active
provisioning link) over PB-ADV.

This commit introduces the `link_cancel` callback for the `prov_bearer`
struct. When a provisioning link is established over a prov bearer, all
other (active) prov bearers will be suspended through this callback, and
re-enabled when the link is closed. An exception is made for PB-REMOTE,
which can utilize the other bearers.

The call to `bt_mesh_pb_gatt_srv_disable` in settings.c is removed. This
is called in `mesh_commit`, and is not needed as this is only used
during boot, at which point the Mesh provisioning service has not yet
been enabled/registered, meaning the function does nothing.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2025-03-26 16:19:31 +01:00
Vinayak Kariappa Chettimada
1dfc53fd21 Bluetooth: Controller: Fix ull_hdr_get_cb for Peripheral role
Fix ull_hdr_get_cb() for advanced scheduling to return
ticks_slot for Peripheral role.

Relates to commit d6c3e04eb8 ("Bluetooth: Controller:
Central maximum data PDU size time spacing").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-03-26 16:19:19 +01:00
Etienne Carriere
54ca6aecd4 tests: drivers: device clock controls for stm32n6 series
Add device clock configuration tests for STM32N6 series boards.
These tests cover ADC, I2C and SPI, using ADC1, I2C1 and SPI5 that are
connected on nucleo_n657x0_q and stm32n6570_dk boards.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
b6bbc46610 tests: drivers: core clock controls for stm32n6 series
Add core clock configuration tests for STM32N6 series boards.
These tests covers CPU clock, system clock, PERCLK and LSE/HSE CSS
configuration.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
a4e00505dc drivers: clock_control: get_status handler for stm32n6
Add clock_control get_status handler for stm32n6 platforms.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
105d729aee drivers: clock_control: add TIMG prescaler on STM32N6
Add support for TIMG clock domain as clock source on STM32N6 SoCs.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
056d8ea25f dts: bindings: clock: stm32n6 TIMG prescaler
Add DT bindings for configuration of STM32N6 SoCs TIMG clock domain
prescaler.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
adc36f8cda drivers: clock_control: add HSI_DIV on STM32N6
Enable support for HSI_DIV and its use as a clock source on STM32N6 SoCs.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
0926bdb444 drivers: clock_control: add HCLKx and PCLKx source clocks on STM32N6
Enable support for HCLK, PCLK1, PCLK2, PCLK4 and PCLK5 as subsystem
clock sources identifiers on STM32N6 SoCs. HCLKx relates to the AHBx
buses clock and PCLKx relate to the APBx buses clocks.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
b78ada18b1 include: zephyr: dt-bindings: clock: stm32u5: fix refman reference
Correct references to STM32U5 series reference manual.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
175662eb72 include: zephyr: dt-bindings: clock: stm32n6: fix refman reference
Correct references to STM32N6 series reference manual.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
b228c075ad include: zephyr: dt-bindings: clock: stm32n6: add clock source IDs
Add some clock source identifiers that were missing for stm32n6xx
platforms.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Etienne Carriere
ce63ccfc5d include: drivers: clock_control: stm32n6 CPU clock selection macros
Add STM32_CPUCLK_SRC_* macros as helper macros to select which source
clock feeds the CPU clock on a STM32N6 SoC.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-03-26 16:19:09 +01:00
Tomasz Moń
75109707e3 usb: device_next: Do not add serial number without HWINFO
For many devices iSerialNumber is not required. The only device class
currently supported in Zephyr that requires iSerialNumber is MSC. If the
serial number is not available then iSerialNumber must be 0. Failure to
read the string descriptor for non-zero iSerialNumber fails USB Command
Verifier Chapter 9 tests.

When USBD_DESC_SERIAL_NUMBER_DEFINE() was used without CONFIG_HWINFO
then it did lead to runtime failure when requesting the string (thus
failing certification).

Fail USBD_DESC_SERIAL_NUMBER_DEFINE() at build-time if CONFIG_HWINFO is
not set to prevent the surprise at runtime. Only define serial number
descriptors if CONFIG_HWINFO is enabled.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2025-03-26 16:18:56 +01:00
cyliang tw
ca0f5f6924 tests: drivers: spi: spi_loopback: support numaker_m55m1
Add support for Nuvoton numaker board numaker_m55m1.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2025-03-26 11:34:17 +01:00
cyliang tw
30be9dae6f dts: arm: nuvoton: add spi nodes for numaker m55m1x
Update m55m1x.dtsi for spi support.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2025-03-26 11:34:17 +01:00
Sebastian Głąb
0d7f6d156c tests: boards: nrf: qdec: Add nRF54L20pdk to platform_allow
Enable test execution on nRF54L20pdk.
Overlay was already added.

Signed-off-by: Sebastian Głąb <sebastian.glab@nordicsemi.no>
2025-03-26 11:33:20 +01:00
Jamie McCrae
5c027f270e drivers: sensors: kconfig: Add sort
Adds sort to individual sensor Kconfigs and sorts them

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-03-26 11:33:11 +01:00
Jamie McCrae
f6730f7db3 drivers: serial: kconfig: Fix unsorted additions
Fixes Kconfig files that have not been added in the right place

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-03-26 11:33:11 +01:00
Ivan Iushkov
ded9c1f44d bluetooth: CS: add bt_le_cs_get_antenna_path()
added function to calculate antenna path
based on the antenna permutation index and
total number of antenna paths

Signed-off-by: Ivan Iushkov <ivan.iushkov@nordicsemi.no>
2025-03-26 11:32:57 +01:00
Michał Stasiak
99198dc550 dts: nordic: nrf54l20: add comparator node
Added missing comparator node to nRF54L20 devicetree.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2025-03-26 11:32:47 +01:00
Tomasz Moń
6e3f8d4967 drivers: udc_dwc2: Set control endpoint CNAK only when necessary
SETUP data is unconditionally ACKed by the controller. Other DATA
packets sent to OUT control endpoint 0 (i.e. OUT Data Stage packets
and OUT Status Stage packet) are ACKed by the device only if the
endpoint was enabled with CNAK bit set.

In Buffer DMA mode controller will lock up in following scenario:
  * OUT EP0 is not enabled, e.g. OUT Status Stage has finished
  * Host starts Control Write transfer, i.e. sends SETUP DATA0 and
    device ACKs (regardless if endpoint is enabled or not)
  * host sends OUT Data Stage (OUT DATA1)
      - software enables endpoint to be able to receive next SETUP data
	while host is transmitting the OUT token. If CNAK bit is set
        alongside the EPENA bit, the device will ACK the OUT Data Stage.
        If CNAK bit is not set, the device will NAK the OUT Data Stage.

When the lockup occurs, from host perspective the OUT Data Stage packet
was successfully transmitted. This can result in host starting IN Status
Stage if there was only one OUT Data Stage packet. This in turn results
in device never getting the DOEPTINT0 SetUp interrupt. Besides just not
getting the SetUp interrupt, any subsequent control transfer won't be
noticed by device at all.

The lockup was first observed while stress testing. The host was issuing
endless sequence of Control Write, Control Read, Control Write, Control
Read, ... commands. When the controller did lock up in Buffer DMA mode,
from host perspective the device was timing out all control transfers.

Avoid the Buffer DMA lockup by setting CNAK bit only when necessary.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2025-03-26 11:32:33 +01:00
Seppo Takalo
05abdf5d0b net: lwm2m: Deprecate LWM2M_ENGINE_MESSAGE_HEADER_SIZE
Kconfig value LWM2M_ENGINE_MESSAGE_HEADER_SIZE added
an extra headroom for CoAP packet sizes so that
if CoAP Block-Wise transfer block-size is configured
to be same as LWM2M_COAP_MAX_MSG_SIZE, the full
payload block would usually fit to the datagram.

This causes too much confusion to be usable.
CoAP headers and options vary on sizes, and there is
no runtime limitations that we should check the
header size against.

Only real limitation is the CoAP packet size, which
must fit into the UDP datagram with typical DTLS headers.

Only limitation for CoAP block-size then is that
it must fit into the CoAP message with all the headers
and options. But as the option sizes, like path, vary,
it must be checked runtime.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-03-26 11:32:23 +01:00
Pieter De Gendt
044a94f06a net: lib: coap: coap_server: Use eventfd instead of socket pair
Convert the socket poll logic to use a more lightweight eventfd file
descriptor instead of a socket pair.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-03-26 08:55:45 +01:00
Martin Thiede
338371e483 boards: nucleo_h755zi_q: fix debugging
This fix uses the stm32h745i-disco openocd configuration instead of the
st_nucleo_h745zi configuration as the latter seems to be broken in
openocd as shipped by zephyr-sdk-0.17.0.

Signed-off-by: Martin Thiede <martin.thiede@accenture.com>
2025-03-26 08:55:37 +01:00
Martin Thiede
5f935da80d boards: nucleo_h755zi_q: add CAN support on M7
Add CAN support by configuring fdcan1 in the device tree for the M7
core. As with other H7xx boards, it will be clocked by pll2 which is
also turned on.

Updated documentation.

Tested on nucleo_h755zi_q board.

Signed-off-by: Martin Thiede <martin.thiede@accenture.com>
2025-03-26 08:55:27 +01:00
Henrik Brix Andersen
b933c4ec65 doc: releases: migration-guide: 4.2: mention NEORV32 board variants
Mention that NEORV32 processor templates are now supported via board
variants and clarify the NEORV32 version compatibility entry.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-03-26 08:55:10 +01:00
Henrik Brix Andersen
348faba41f boards: others: neorv32: update documentation
Update the NEORV32 board documentation to list the supported board targets
and describe how to customize these to match custom NEORV32
implementations.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-03-26 08:55:10 +01:00
Henrik Brix Andersen
957ecf3a42 boards: others: neorv32: add minimalboot board variant
Add a MinimalBoot board variant for the NEORV32 board. The software
configuration of this board matches the NEORV32 "MinimalBoot" processor
template.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-03-26 08:55:10 +01:00
Henrik Brix Andersen
d866ca9018 boards: others: neorv32: add up5kdemo board variant
Refactor the existing NEORV32 board to become a UP5KDemo board variant for
the NEORV32 board. The software configuration of this board matches the
NEORV32 "UP5KDemo" processor template.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-03-26 08:55:10 +01:00
Henrik Brix Andersen
c2b3a2e393 boards: others: neorv32: do not enable CONFIG_GPIO by default
Do not remove CONFIG_GPIO by default for the NEORV32 board.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-03-26 08:55:10 +01:00
James Roy
e38cc894e3 drivers: counter: Fix incorrect error codes
Unimplemented interfaces should return
-ENOSYS instead of -ENOTSUP.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-03-26 08:54:58 +01:00
James Roy
d9f3ee4bb0 doc: releases: Add a counter release entry
Add the counter_reset function in the counter
subsystem to reset the counter value to zero.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-03-26 08:54:58 +01:00
James Roy
bcbf69ed9f drivers: counter: nrf: Add nrfx-timer implementation
Implement the '.reset' interface in the nrfx-timer driver
to allow the upper layers to use the counter_reset
function.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-03-26 08:54:58 +01:00
James Roy
d019aea47b drivers: counter: Add native-posix implementation example
Implement the '.reset' interface in the native-posix driver
to allow the upper layers to use the counter_reset
function.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-03-26 08:54:58 +01:00
James Roy
355d904c67 drivers: counter: Add counter_reset function
Add a counter_reset function to the counter subsystem
to reset the counter value to zero. Introduce
a reset interface at the driver layer to implement
the counter_reset function.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-03-26 08:54:58 +01:00
Jonas Spinner
a65e93a47d device: fix typo in device_deinit
Fix minor typo s/responsability/responsibility.

Signed-off-by: Jonas Spinner <jonas.spinner@burkert.com>
2025-03-26 07:09:00 +01:00
Håvard Reierstad
77b6035fce Bluetooth: Host: Doc: Name enums in gap.h
Names the enums declared in `gap.h` and replaces references to them
with Doxygen references (@ref).

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2025-03-26 07:08:44 +01:00
Jakob Riepler
7512eb0b65 drivers: fix support for U-Blox M10 modules with M8 driver
The U-Blox M10 seems to interleave UBX and NMEA messages in a way that
confuses the M8 driver leading to missing the same message that directly
follows the UBX part every time (leading to no navigation updates).
As the driver does not parse the UBX blocks during normal operation anyways
it can just be disabled.

Signed-off-by: Jakob Riepler <jakob+zephyr@chaosfield.at>
2025-03-26 07:08:27 +01:00