Commit graph

118,807 commits

Author SHA1 Message Date
Lyle Zhu
8d819954e8 Bluetooth: Classic: Refactor query and deletion of bonding information
In current implementation, the bonding information of classic is
queried by calling the function `bt_foreach_bond()`. And the bonding
information of classic is deleted by calling `bt_unpair()`.

There are two issues if the LE and classic are bonded at same time for
dual mode peer device.
Issue 1, for the function `bt_foreach_bond()`, there are two bonding
information will be found. But there is no way to find which bonding
information belongs to LE or classic.
Issue 2, For the function `bt_unpair()`, all bonding information will
be deleted if the passed address is the public address. But there is
no way to delete the bonding information of LE or classic.

Remove the calling of function `bt_foreach_bond_br()` from the
function `bt_foreach_bond()`. And rename it to `bt_br_foreach_bond()`,
and public it as an API to query the bonding information of classic.

Remove the calling of function `bt_keys_link_key_clear_addr()` from
the function `bt_unpair()`. Add an API `bt_br_unpair()` to delete the
bonding information of classic.

Add a `br_bond_deleted` to structure `bt_conn_auth_info_cb` for
classic. The callback will be triggered if the bonding information has
been deleted by the function `bt_br_unpair()`.

Add a `clear` shell command for classic to delete the bonding
information.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-01 22:18:40 +02:00
Vixay Phimmasane
607f68daaa dts: arm: st: add stm32l071X8 & stm32l071Xz dtsi files
add STM32L071 dtsi files for the 64Kb and 192Kb version

Signed-off-by: Vixay Phimmasane <visuphi@gmail.com>
2025-04-01 22:15:23 +02:00
Camille BAUD
4b9aa72ebc boards: wch: update linkW documentation
Removed somewhat duplicated section and replace supported features
table with new automatic table.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-04-01 22:15:13 +02:00
Patrik Sieverding
3eb6016e74 drivers: i2c: add function to check if an I2C_IODEV is ready
The i2c driver is missing the option to check if a I2C_IODEV is ready for
use. The proposed function works the same as the check for a SPI_IODDEV
to keep the use consistent across different bus systems.

Signed-off-by: Patrik Sieverding <sieverdp@uni-bremen.de>
2025-04-01 22:14:59 +02:00
Krzysztof Chruściński
02644b28e3 soc: nordic: nrf54: Indicate presence of DWT
ARM Cortex-M33 cores in nrf54h20 and nrf54l series have DWT.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-04-01 22:14:44 +02:00
Dimitrije Lilic
c0e5e5236f drivers: adc: ad405x: Add diff support and res used form adc spec
Added support for differentail or single ended setup.
Reading resolution form dt - adc spec.

Signed-off-by: Dimitrije Lilic <dimitrije.lilic@orioninc.com>
2025-04-01 22:14:31 +02:00
Lyle Zhu
18beac9c57 Bluetooth: Classic: L2CAP: Support L2CAP_COMMAND_REJECT_RSP
In current implementation, when receiving the L2CAP frame
`L2CAP_COMMAND_REJECT_RSP` if the L2CAP is working as client role, the
L2CAP frame `L2CAP_COMMAND_REJECT_RSP` will be sent by the L2CAP
client incorrectly.

When the command response `L2CAP_COMMAND_REJECT_RSP` is received, find
the channel of the command request according to the received `ident`.
If the channel is found, try to disconnect the channel. If fail to
disconnect the channel, remove and delete the channel.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-01 22:14:15 +02:00
Lyle Zhu
384e31977f Bluetooth: Classic: L2CAP: Discard the response with a invalid ident
In current implementation, the `ident` of the command response is not
checked whether it is same as the `ident` sent by the L2CAP command.

Keep the `ident` of the command. If the received `ident` of the
command response is not aligned with the `ident` of the command,
discard the response silently. Or, clear the saved `ident`.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-01 22:14:15 +02:00
Troels Nilsson
a3b8954ae9 Bluetooth: Controller: Fix assert when flushing multiple CISes
If more than one CIS in the same CIG was shutdown at the same time
(e.g. due to supervision timeout), the mayfly calling cis_tx_lll_flush
would be busy and the assert would be triggered

cis_tx_lll_flush now operates similar to cis_disabled_cb; Loop through
all CISes for a CIG and flush any marked as LLL_CIS_FLUSH_PENDING

Signed-off-by: Troels Nilsson <trnn@demant.com>
2025-04-01 22:14:03 +02:00
Patrick Harböck
a7432a1e64 samples: sensor: add esp32c6 board to die_temp_polling
Add board overlay to test internal temperature sensor with esp32c6.

Signed-off-by: Patrick Harböck <patrick.harboeck@tngtech.com>
2025-04-01 22:13:50 +02:00
Patrick Harböck
a67eefd43e drivers: sensor: esp32c6 internal temperature sensor
Support for esp32c6 internal temperature sensor on Zephyr.

Signed-off-by: Patrick Harböck <patrick.harboeck@tngtech.com>
2025-04-01 22:13:50 +02:00
Patrick Harböck
5861cf71bf manifest: esp32: update hal_espressif
Update to support latest features.

Signed-off-by: Patrick Harböck <patrick.harboeck@tngtech.com>
2025-04-01 22:13:50 +02:00
Andrzej Puzdrowski
eab304f0db mcumgr/img_mgmt: Allow erase pending image by default
Allows erasing secondary slot which is marked for test or confirmed.
This is safe as bootloader doesn't make any action on boot-setup yet.

Erase of such pending image might considered like the case when it
was never downloaded as well.

This allow user to not stuck with pending irremovable image.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2025-04-01 22:13:20 +02:00
Nicolas Pitre
11021cdd4f kernel: sys_heap: decouple realloc from aligned_realloc
When sys_heap_realloc() is expressed in terms of sys_heap_aligned_realloc()
it invokes a longer aligned allocation code path with an extra runtime
overhead even though no alignment is necessary.

Let's reference and invoke the aligned allocation code path only when an
actual aligned allocation is requested. This opens the possibility for
the linker to garbage-collect the aligning code otherwise.

Improve realloc documentation while at it.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-04-01 22:13:04 +02:00
Nicolas Pitre
457fa60bfc kernel: mempool: decouple simple alloc from aligned_alloc
When k_malloc() is expressed in terms of k_aligned_alloc() it invokes a
longer aligned allocation code path with an extra runtime overhead even
though no alignment is necessary.

Let's reference and invoke the aligned allocation code path only when an
actual aligned allocation is requested. This opens the possibility for
the linker to garbage-collect the aligning code otherwise.

Also bypass k_heap_malloc() and friends given they're invoked with
K_NO_WAIT. Go directly to sys_heap_*() instead to cut some more unneeded
overhead.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-04-01 22:13:04 +02:00
Nicolas Pitre
7c9f464b70 kernel: kheap: workaround for Percepio's TraceRecorder kludge
In .../modules/debug/percepio/TraceRecorder/kernelports/Zephyr/include/\
tracing_tracerecorder.h there is a concealed non-parameterized direct
reference to a local variable that is no longer in scope. Provide a dummy
stub for compilation to succeed until that module's layering violation is
fixed, after which this could be reverted.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-04-01 22:13:04 +02:00
Nicolas Pitre
9da06456f2 kernel: kheap: decouple simple alloc from aligned_alloc
When k_heap_alloc() is expressed in terms of k_heap_aligned_alloc()
it invokes a longer aligned allocation code path with an extra runtime
overhead even though no alignment is necessary.

Let's reference and invoke the aligned allocation code path only when an
actual aligned allocation is requested. This opens the possibility for
the linker to garbage-collect the aligning code otherwise.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-04-01 22:13:04 +02:00
Nicolas Pitre
31244724a2 kernel: k_aligned_alloc: simplify assertion
Let's avoid division and modulus operations as they're costly... and even
more so when they're unnecessary as in this case the main constraint is
about the alignment being a power of 2 which is a very small subset of
sizeof(void *) multiples.

Then move the assertion to common code for wider coverage.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-04-01 22:13:04 +02:00
Nicolas Pitre
ea7a969204 tests: benchmarks: sys_kernel: add k_malloc() test
Useful to evaluate malloc performance changes.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-04-01 22:13:04 +02:00
Manimaran A
810f549ed4 drivers: eSPI: microchip: Port80 Multibyte
Updated ISR to send multibyte p80 data

Signed-off-by: Manimaran A <manimaran.a@microchip.com>
2025-04-01 22:12:28 +02:00
Dipak Shetty
033679b5d3 samples: sensor: light: add everlight light sensor
Sample extended to support the everlight light sensor on the
frdm_mcxw71 board.

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2025-04-01 22:12:13 +02:00
Dipak Shetty
66966f7211 samples: sensor: light: refactor into generic light polling sample
Moved the grove light sensor into a generic light sensor sample.
Replaced board specific node name for light sensor with an alias.
Refactored project name to reflect generic light sensor.

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2025-04-01 22:12:13 +02:00
Dipak Shetty
eb0050f7c9 drivers: sensor: add everlight light sensor
Adds driver for Everlight ALS-PT19 Ambient Light Sensor.

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2025-04-01 22:12:13 +02:00
Dipak Shetty
8f789f81c3 dts: bindings: sensor: add everlight ambient light sensor binding
Added new binding for Everlight ALS-PT19 Ambient Light Sensor.

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2025-04-01 22:12:13 +02:00
Konrad Sikora
c099a01760 drivers: sensor: liteon: Move to vendor subdirectory
Organizes liteon sensor drivers by vendor to make consistent
with other drivers.

Signed-off-by: Konrad Sikora <kontakt@konradsikora.pl>
2025-04-01 22:12:01 +02:00
Konrad Sikora
8ad2cac1b5 drivers: sensor: Add support for LTR329 sensor
Add support for Liteon LTR329 Digital Ambient Light Sensor

Signed-off-by: Konrad Sikora <kontakt@konradsikora.pl>
2025-04-01 22:12:01 +02:00
Konrad Sikora
85e9cef24e drivers: sensor: Change vendor prefix from 'ltr' to 'liteon'
The vendor prefix has been changed from 'ltr' to 'liteon'.
This change is made to better reflect the actual name of
the vendor, which is LiteOn. The previous prefix 'ltr'
was referring to the LiteOn Optical Sensor family, which
could lead to misunderstandings.

Signed-off-by: Konrad Sikora <kontakt@konradsikora.pl>
2025-04-01 22:12:01 +02:00
Nikodem Kastelik
c3646a34fd soc: nordic: add option for forcing RAM power on reboot
RAM power configuration is preserved through soft reset,
meaning that there is a risk of accessing powered off RAM blocks
when booting in different application (i.e. bootloader).
Add option to force all RAM blocks to be powered on
before triggering soft reset to prevent this from happening.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2025-04-01 16:28:08 +02:00
Johan Hedberg
39c2605930 Bluetooth: Fix deadlock with settings and bt_hci_cmd_send_sync()
We can't do synchronous HCI command sending in any settings commit()
callback, since we don't know what context the callback is being called
from. One particular deadlock can happen if settings_load() is called from
the preemptible main thread:

main()
 |--> settings_load() (aquire settings_lock mutex)
       |-->commit callback A that defers to system wq
       |-->commit callback B that calls bt_hci_cmd_send_sync()

system wq from the previous deferral from within settings_load():
 |--> work item
       |--> settings_save_one()
             |--> attempt to aquire settings_lock mutex

In the above scenario, the bt_hci_cmd_send_sync() call from the main thread
depends on the system workqueue being processed (since that's what does HCI
command processing by default), while at the same time holding the settings
subsystem's mutex. At the same time, a system wq item tries to store
something into settings, however it deadlocks waiting for the settings
mutex.

The actual scenario that we have in the Bluetooth subsystem is where
"commit callback A" is commit_settings() in host/settings.c, and "commit
callback B" is keys_commit() in host/keys.c.

The solution to the deadlock is to take advantage of deferred bt_id_add()
handling which already exists, i.e. set a flag and deferre the actual
adding to the system workqueue.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-04-01 16:28:00 +02:00
Yassine El Aissaoui
58ea18ed75 bluetooth: hci_nxp: disallow standby usage while sending HCI MSG
Sending an HCI message requires to wake up the controller
core if it's asleep. Platform controllers may send responses using
non wakeable interrupts and those can be lost during standby usage.
Blocking standby usage until the HCI message is sent.

Signed-off-by: Yassine El Aissaoui <yassine.elaissaoui@nxp.com>
2025-04-01 16:27:50 +02:00
Robert Lubos
7fbdc6d734 net: lib: mqtt: Add extra MQTT 5.0 ifdefs to prevent compile errors
Add some extra ifdefs around MQTT 5.0 specific structures to prevent
compiler errors due to undefined symbols in certain configurations.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-04-01 16:27:41 +02:00
Jonathan Nilsen
8e1f27a9fd modules: hal_nordic: bump regtool to 9.0.0
Added support for VPR GPIOs and a more concise output print.

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-04-01 16:27:04 +02:00
Ryan Chu
9ba60d3eb7 bluetooth: host: Apply callback changes of CS complete events
The CS complete callbacks provide both status and params.
In the case of errors, NULL pointer is passed to the params of callbacks.

Signed-off-by: Ryan Chu <ryan.chu@nordicsemi.no>
2025-04-01 16:26:58 +02:00
Ryan Chu
c9240cc99f bluetooth: host: Report status of Channel Sounding complete events
If the HCI status of a complete event is not BT_HCI_ERR_SUCCESS,
the remaining parameters could be invalid.

In this case, the params is passed as NULL pointer to the callbacks.
- LE CS Read Remote Supported Capabilities Complete event
- LE CS Read Remote FAE Table Complete event
- LE CS Config Complete event
- LE CS Security Enable Complete event
- LE CS Procedure Enable Complete event

This change avoids forwarding the invalid fileds to the applications.

Signed-off-by: Ryan Chu <ryan.chu@nordicsemi.no>
2025-04-01 16:26:58 +02:00
Krzysztof Chruściński
aaeb015ec4 logging: frontends: stmesp: Fix sending string location
String location information should only be sent for core which
do not append strings to the log message (PPR, FLPR). Without
this, cpurad was also sending that information and that was
redundant.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-04-01 16:26:50 +02:00
Krzysztof Chruściński
c8d7d577a6 logging: frontend_stmesp: Fix string addresses from remote core
When decoding logs from a remote core with memory that APP can
access, wrong address of an array with string addresses was used.
Log message contains index of a string and APP strings array was
used instead of remote core. Extend STMESP logging so that address
of string array of a remote core is send during startup to the APP
and APP is using this array to decode strings from remote cores.
Bug applies only to PPR and FLPR as APP has no access to RAD memory.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-04-01 16:26:50 +02:00
Ryan McClelland
19c2c33be6 tests: drivers: spi: add build all for cadence spi
As there is no currently known board that has the cadence spi,
add a test to just build it under the qemu cortex m3.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-04-01 16:26:38 +02:00
Ryan McClelland
8c5c74cc97 drivers: spi: add cadence spi driver
This provides a driver for the cadence spi.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-04-01 16:26:38 +02:00
Benjamin Cabé
9abfc8301a doc: nxp: adopt zephyr:board-supported-hw directive
Replace manually authored hardware features table with the new Zephyr
board supported hardware directive which automatically generates an
up-to-date table based on the boards' Devicetree.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-04-01 16:26:30 +02:00
Anas Nashif
f61c94bb1b ci: codecov: remove bsim step from workflow
This is not needed for this specific workflow. We do not do anything
with bsim here.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-04-01 16:26:22 +02:00
Anas Nashif
4d2ddf06c1 ci: codecov: install pinned python environment
Need gcovr for coverage generation.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-04-01 16:26:22 +02:00
Anas Nashif
1823c394c3 actions: update requirements-actions.in
pin gcovr to 6.0

See #87899

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-04-01 16:26:22 +02:00
Sudan Landge
d4d09225ca arch: arm: fix ci failure
This is to fix ci failure caused by commit d5d4d57

In the above commit, it's wrongly assumed that ROM_ADDR and RAM_ADDR
are same **only** when CONFIG_XIP is not defined.
Since aarch64 was taken as reference in the review,
we missed to see that CONFIG_FLASH_SIZE is also part of the condition
to define ROM_ADDR as RAM_ADDR.
CONFIG_XIP is not defined for qemu_cortex_a9/xc7z007s however,
CONFIG_FLASH_SIZE is not 0 so the assumption fails
and the required reset to RAM_ADDR is not applied leading to the test
failure.

Signed-off-by: Sudan Landge <sudan.landge@arm.com>
2025-04-01 16:26:12 +02:00
Cla Mattia Galliard
f3a3ad308c thread_analyzer: Allow to override the auto-analysis thread priority
By default the thread priority is still the lowest application thread
priority. Allow the priority to be increase by specifying both, the
`override` option as well as the desired `priority`. This pattern was taken
from the shell thread.

Signed-off-by: Cla Mattia Galliard <cla-mattia.galliard@zuehlke.com>
2025-04-01 11:59:39 +02:00
Armando Visconti
48f7fcd2f0 samples/sensor: stream_fifo: initialize gbias
Add an example of how to initialize gbias. The real application should
restore latest valid values taken from non-volatile memory.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-04-01 11:59:31 +02:00
Armando Visconti
cc9b93d50c sensor: lsm6dsv16x: sensor GBIAS initialization
Use SENSOR_ATTR_OFFSET attribute to initialize the Sensor Fusion GBIAS.
This is useful when the device is not sill (e.g. hold in hand) and so
the gyroscope calibration does not run.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-04-01 11:59:31 +02:00
Armando Visconti
9a8ecf0c0c sensor: lsm6dsv16x: fix place where gyro_freq get set
Move gyro_freq setting inside lsm6dsv16x_gyro_set_odr_raw() routine,
so that it is properly saved in all cases (i.e. from DT configuration
and from runtime ATTR set case).

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-04-01 11:59:31 +02:00
Håkon Amundsen
1fac1b917f boards: nordic: add 'iron' board variant
This is needed for next generation Secure Domain firmware.

Signed-off-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no>
2025-04-01 11:54:30 +02:00
Tom Hughes
785e36520f tests: subsys: usb: bos: Remove dummy_descriptor struct
When building with clang, it warns:

tests/subsys/usb/bos/src/test_bos.c:24:22: error: variable
'dummy_descriptor' is not needed and will not be emitted
[-Werror,-Wunneeded-internal-declaration]
static const uint8_t dummy_descriptor[] = {
                     ^

Only the size of dummy_descriptor is used, not the contents. Replace the
struct with a constant for the size.

Signed-off-by: Tom Hughes <tomhughes@chromium.org>
2025-04-01 11:54:20 +02:00
Jack Chistyakov
dd6adc7cad net: virtual: Clear multicast bit when generating link address
The least significant bit of the first octet of a MAC address is a
unicast/multicast bit. The bit should be cleared when generating a
random link address for a virtual interface. Any frames from such
interface/address will be dropped by the network as invalid if
the multicast bit is set.

Signed-off-by: Jack Chistyakov <jack.chistyakov@outlook.com>
2025-04-01 11:53:02 +02:00