Commit graph

126,787 commits

Author SHA1 Message Date
Johann Fischer
8b0bdb563f usb: device_next: implement USB DFU class for the new device support
This new implementation is written from scratch and is not tied to the
image manager and MCUboot. It allows the user to define their own
backend and use a simple macro to instantiate an image. On the USB side
this is represented by an interface. The number of possible images is
configurable using the Kconfig option, and is a fairly inexpensive
approach since it only changes the size of the pointer array. The number
of images is only limited by the number of possible interfaces in a
configuration. The class implementation does not support multiple
instances, as there is no real use for it. However, it does provide two
class instances, one for runtime mode and one for DFU mode. The switch
from runtime to DFU mode can only be performed by the user application,
i.e. the application receives a notification when the host wants to
switch to DFU mode, and then the application can disable the runtime
configuration and enable the DFU configuration. This implementation does
not support switching to the DFU mode by bus reset issued by the
host.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-04 11:55:25 +01:00
Johann Fischer
3bfe163811 usb: device_next: implement blocklist for classes
In the usbd_register_all_classes(), we may need to skip some instances
as they may have very specific function like USB DFU "DFU mode" which
should not be available by default.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-04 11:55:25 +01:00
Robert Lubos
a31e3537b5 tests: net: tls_ext: Fix scheduling race
After recent kernel changes there's some thread scheduling race when
running tests, therefore add k_yield() at the end of the test to make
sure the network stack has a chance to run in between tests.
Make sure CONFIG_NET_TCP_TIME_WAIT_DELAY is set to 0 so that TCP
connections are released immediately.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-02-04 11:55:17 +01:00
Robert Lubos
32dd87365d tests: net: http_server: core: Fix scheduling race
After recent kernel changes there's some thread scheduling race when
running tests, therefore add k_yield() at the end of each test to make
sure the server thread has a chance to run and do the cleanup.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-02-04 11:55:17 +01:00
Aksel Skauge Mellbye
e338657642 modules: hal_silabs: Apply PA configuration from device tree
Propagate device tree configuration for the power amplifier to
the HAL configuration header.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-04 09:19:53 +01:00
Aksel Skauge Mellbye
6002ecf929 boards: silabs: Configure PA voltage in device tree
Set the correct power amplifier voltage on Series 2 boards.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-04 09:19:53 +01:00
Aksel Skauge Mellbye
90e55bae43 dts: silabs: Add radio binding for Series 2
Add the radio on Series 2 devices to device tree and move the
BT HCI node inside it.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-04 09:19:53 +01:00
Aksel Skauge Mellbye
e2660e50d6 soc: silabs: Distinguish Gecko SDK from SiSDK HAL
When the SiSDK HAL was introduced, a corresponding Kconfig option
was not. Update Series 2 SoCs to use the new option.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-04 09:19:53 +01:00
Anisetti Avinash Krishna
9353abf162 arch: x86: core: reboot_rst_cnt: Enable support for warm reboot
Enable support for warm reboot for x86 arch as per the Reset Control
Register description.

Signed-off-by: Anisetti Avinash Krishna <anisetti.avinash.krishna@intel.com>
2025-02-04 09:19:24 +01:00
Peter Mitsis
11083fc049 kernel: Initialize kheap spinlock
Initializes the kheap spinlock when the kheap is initialized.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-02-04 09:19:09 +01:00
Fabio Baltieri
3a66b3853e drivers,test: use the new DT_FOREACH_PROP_ELEM_SEP
Use the new DT_FOREACH_PROP_ELEM_SEP macro instead of
DEVICE_DT_GET(DT_PHANDLE_BY_IDX(...)).

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-02-04 09:18:55 +01:00
Fabio Baltieri
e060e4cdd2 device: add a DEVICE_DT_GET_BY_IDX macro
Add a DEVICE_DT_GET_BY_IDX macro to get a struct device reference for a
phandles node. This can be used directly as an argument of macros such
as DT_INST_FOREACH_PROP_ELEM_SEP.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-02-04 09:18:55 +01:00
Chaitanya Tata
e161ad675a modules: hostap: Disable advanced feature for nRF boards
nRF boards have a ROM crunch esp. with combined with Matter/networking
features, as the advanced features are not essential for typical Wi-Fi
operation, disable them by default. Individual samples can choose to
enable it.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-02-04 09:18:22 +01:00
Maureen Helm
16d0675dfd MAINTAINERS: Add yasinustunerg as collaborator in ADI areas
yasinustunerg is an ADI employee and has contributed several PRs in ADI
areas, add him as a collaborator.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2025-02-04 09:18:03 +01:00
Mayank Narang
6c85423086 drivers: sensor: kconfig: Explicitly add default trigger mode as none
Explicitly add default trigger mode as none in the kconfig trigger
template for better readability.

Signed-off-by: Mayank Narang <narang.may77@gmail.com>
2025-02-04 09:17:48 +01:00
Declan Snyder
30b9463539 spi_nxp_lpspi: Use default RTIO submit
For the CPU-based drivers, delete the old MCUX based RTIO driver and use
the default RTIO submit implementation instead.

Rationale:
- 300 LOC -> 1 LOC to maintain.
- MCUX SDK based driver cannot control the chip select for the transfer
  properly, but the new spi_nxp_lpspi.c driver can. So this fixes the
  bug with the PCS when using RTIO.

Also enable the default RTIO implementation for DMA based driver.
In the future a DMA based RTIO driver with custom implementation can be
designed, but for CPU based transfer, which is already not optimal
performance, code maintenance is more important. Only requirement is
asynchronous submit, which is accomplished by p4wq in rtio workq.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-02-04 09:17:22 +01:00
Emilio Benavente
1bb6e58976 tests: drivers: Add MCXW72 Overlays
Add MCXW72 Overlay for PWM, ADC, SPI testing

Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>

enabled support
2025-02-04 09:17:04 +01:00
Emilio Benavente
98189393eb boards: nxp: Add MCXW72-EVK
Add initial board for MCXW72-EVK

Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
2025-02-04 09:17:04 +01:00
Emilio Benavente
97200b04ad soc: nxp: mcx: Add MCXW72
Add MCXW72 SOC, SOC Kconfigs, and
Platform Init code

Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
2025-02-04 09:17:04 +01:00
Emilio Benavente
2092f82ac3 dts: arm: nxp: Added MCXW72 and BLE Support
Added SOC DTS for MCXW72
Adding BLE required info to MCXW72 dtsi

Signed-off-by: Yassine El Aissaoui <yassine.elaissaoui@nxp.com>
Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
2025-02-04 09:17:04 +01:00
Hieu Nguyen
26548fc4a5 samples: drivers: counter: Add supprt for RZ/G3S-SMARC
Add support for RZ/G3S-SMARC to Counter driver sample

Signed-off-by: Hieu Nguyen <hieu.nguyen.ym@bp.renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-02-04 09:16:34 +01:00
Hieu Nguyen
2e76631bae tests: drivers: counter: Add support for RZ/G3S-SMARC
Add test support for Counter driver of RZ/G3S-SMARC

Signed-off-by: Hieu Nguyen <hieu.nguyen.ym@bp.renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-02-04 09:16:34 +01:00
Hieu Nguyen
e5ce9d0cd9 boards: renesas: rzg3s_smarc: Add Counter support
Add Counter support for board RZ/G3S-SMARC

Signed-off-by: Hieu Nguyen <hieu.nguyen.ym@bp.renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-02-04 09:16:34 +01:00
Hieu Nguyen
d0e9b89ba3 dts: renesas: Add Counter support for RZ/G3S
Add Counter nodes to Rensas RZ/G3S devicetree

Signed-off-by: Hieu Nguyen <hieu.nguyen.ym@bp.renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-02-04 09:16:34 +01:00
Hieu Nguyen
bf6c665d73 drivers: counter: Initial support for RZ/G3S
Add Counter driver support for Renesas RZ/G3S

Signed-off-by: Hieu Nguyen <hieu.nguyen.ym@bp.renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-02-04 09:16:34 +01:00
Erwan Gouriou
b5c5ba8c83 boards: stm32n6: Remove xtool support mention
Remove xtool support


Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
39f315129b boards: st: nucleo_n657x0_q: Fix full_name.
Fix yaml full_name to match ST official reference.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
55e310de0b tests: uart_async_api: Disable DCACHE on stm32n6 targets
Until MPU support is enabled, disable DCACHE support for
this series of test.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
3d04068393 soc: stm32n6: Generate a warning when signing tool is not available
Generate a proper Cmake warning when signing tool isn't available.
This also allows not to fail in Github CI.


Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
17c73039ce boards: stm32n6: Document sb variant and testing using twister
Update stm32n6 based boards documentation to reflect addition
of new sb variant and how it could be used for twister tests automation.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
d37a365fe4 boards: nucleo_n657x0_q: Introduce variant for serial boot
Introduce a variant to allow loading and running firmware using
BootROM serial boot configuration.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
de426f2f90 boards: stm32n6570_dk: Introduce variant for serial boot
Introduce a variant to allow loading and running firmware using
BootROM serial boot configuration.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
06a4f1aabd boards: stm32n6: Fix flash configuration for twister
On STM32N6 based series, there is no flash available and tests
are performed using load and run in RAM.
From twister point of view, we should consider a flash is available
with the same size as RAM.
(We may tune these values later as the RAM will actually be shared
between code and variables).

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
3c097d8662 soc: stm32n6: Add Boot serial option
This option should be used to load and run binary using "serial boot"
configuration for boot ROM.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
4ea07702b2 boards: st: Add script to perform power off/power
When flashing STM32N6 in USB-DFU mode, as required when running test
automation using twister, it is first required to power-off/power-on the
board to set board ready for USB-DFU (thanks to specific BootROM
configuration).
Provide a script that performs this operation using STM32CubeProgrammer.
This scipt could be provided in twister map.yaml file on 'pre_script'
property of board entry.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
b859423051 scripts: twister: Board id not needed for stm32cubeprog in BOOT-SERIAL
Flashing in BOOT-SERIAL mode with stm32cubeprogrammer doesn't support
using serial number.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Erwan Gouriou
a37a9c323a scripts: stm32cubeprogrammer: Add 2 new options for start and download
Implement possibility to specify options for --start and --download
arguments.
These options are implemented as lists to better fit STM32CubeProgrammer
programming model.

This options are required to enable the programming of STM32N6 in USB-DFU
mode, which requires "-d my.bin 0x1 -s noack" arguments list.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-02-03 19:56:49 +01:00
Titouan Christophe
6f3929ecce audio: codec_shell: add missing headphone left/right channel
Add the audio codec channels headphone left/right that were missing

Signed-off-by: Titouan Christophe <moiandme@gmail.com>
2025-02-03 19:53:30 +01:00
Marcin Niestroj
a984187c96 mgmt: mcumgr: rework create_socket() to use single sockaddr storage
Allocate only one 'struct sockaddr_storage', instead of two separate
'struct sockaddr_in' and 'struct sockaddr_in6'. This saves some space in
case both IPv4 and IPv6 are used. Additionally it reduced preprocessor
ifdef statements, resulting in more readable code.

This also solves '-Warray-bounds=' GCC warning (reproducible with
'native_sim' and GCC version 14.2.1 on Arch Linux):

  In function ‘create_socket’,
      inlined from ‘smp_udp_receive_thread’ at \
          subsys/mgmt/mcumgr/transport/src/smp_udp.c:242:7:
  subsys/mgmt/mcumgr/transport/src/smp_udp.c:205:37: warning: \
      array subscript ‘struct sockaddr[0]’ is partly outside array \
      bounds of ‘struct sockaddr_in[1]’ [-Warray-bounds=]
    205 |         tmp_sock = zsock_socket(addr->sa_family, SOCK_DGRAM, \
        |                                 ~~~~^~~~~~~~~~~
                                                        IPPROTO_UDP);
  subsys/mgmt/mcumgr/transport/src/smp_udp.c: In function \
      ‘smp_udp_receive_thread’:
  subsys/mgmt/mcumgr/transport/src/smp_udp.c:170:28: note: \
      object ‘addr4’ of size 8
    170 |         struct sockaddr_in addr4;
        |                            ^~~~~

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2025-02-03 19:53:13 +01:00
Chris Friedt
7bd0e84d20 west: commands: blobs: fail on checksum error
If a blob checksum does not match what is recorded in the
associated module.yml file, `west blobs fetch` should
(eventually) fail.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-02-03 19:52:58 +01:00
Fabio Baltieri
563f1f9e07 ci: do_not_merge: add the manifest specific dnm label to the list
Add "DNM (manifest)" to the "do not merge" labels. This is meant to be a
DNM controlled by the manifest action specific, so that the normal one
can be used by humans and the two are not going to fight with each
other.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-02-03 19:52:16 +01:00
Marek Matej
1772dc84b7 boards: espressif: Fix used partition type
Use the amp partition layout instead of default one.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2025-02-03 19:52:02 +01:00
Aksel Skauge Mellbye
bb381005b8 samples: drivers: adc: adc_dt: Add overlay for xg24_rb4187c
Add support for xg24_rb4187c to the ADC sample app. Configure two
channels, one measuring the AVDD supply against the 1.21V bandgap
reference, and one measuring pin PB1 (wired to button 0) against
the AVDD (VDDX) reference.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-03 19:51:46 +01:00
Aksel Skauge Mellbye
140e2c229b tests: drivers: adc: Enable ADC tests on Silabs dev kits
Add overlays for xg24_dk2601b and xg27_dk2602a for the accuracy test.
Update the api test to use named macros for readability.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-03 19:51:46 +01:00
Aksel Skauge Mellbye
2fa5b00971 dt-bindings: adc: Add bindings for Silabs Series 2
Add macros for use in devicetree to configure IADC on Silabs
Series 2 devices.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-03 19:51:46 +01:00
Aksel Skauge Mellbye
2322cc92c5 drivers: adc: iadc_gecko: Use clock control
Use clock control driver instead of hard-coding HAL function calls
to configure clocks.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-03 19:51:46 +01:00
Aksel Skauge Mellbye
117d7d1582 drivers: adc: iadc_gecko: Use pinctrl for bus allocation
Make use of ABUS support in the pinctrl driver to allocate
analog buses, rather than hard-coding bus 0 in the ADC driver.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-02-03 19:51:46 +01:00
Peter Mitsis
c63b42d478 kernel: Fix k_wakeup() exit paths
z_reschedule() already has a check to determine if it is called from
the context of an ISR--no need to duplicate it in k_wakeup().
Furthermore, if the target thread is not sleeping, there is no need
to reschedule and we can do a fast return.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-02-03 19:51:20 +01:00
Peter Mitsis
48939cb44b kernel: msgq: Allow for fast returns
1. Fixes a performance issue in k_msgq_put() to allow for a fast return
path when handling a poll event does nothing.

2. Allows for a fast return path in k_msgq_purge() when no threads were
awakened.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-02-03 19:51:20 +01:00
Peter Mitsis
790d9dad59 kernel: Allow for fast return on k_sem_reset()
Do a fast return when resetting a semaphore if no threads were awakened.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-02-03 19:51:20 +01:00