Commit graph

136,983 commits

Author SHA1 Message Date
Lyle Zhu
3d8dfd7af7 Bluetooth: Classic: HFP_AG: Compatible old version HF
In current implementation, the HF with old version cannot be
supported properly.
Such as, if the AG is version 0.96, the AT command `AT+BRSF` will not
be sent. It causes the AG cannot know the features of HF.

Compatible old version with the following changes,

Discover the HF SDP record to get the profile version and HF features.
If the SDP discovery is failed, break the RFCOMM DLC connection.

If the AG version is v0.96, update the HF features according to the
discovered HF features.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:59:10 -05:00
Lyle Zhu
477b3ddd0c Bluetooth: Classic: HFP_HF: Compatible old version AG
In current implementation, the AG with old version cannot be
supported properly.
Such as, if the AG is version 0.96, the AT command `AT+BRSF` should
not be sent.
And if the AG is no newer than version 1.5, the `Codec Negotiation`
should be unsupported.

Compatible old version with the following changes,

Discover the AG SDP record to get the profile version and AG
features. If the SDP discovery is failed, break the RFCOMM DLC
connection.

If the AG version is v0.96, do not send AT command `AT+BRSF`.

Create SCO connection directly if the codec negotiation feature is
unsupported on both side in the function `bt_hfp_hf_audio_connect()`.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:59:10 -05:00
Lyle Zhu
3f201d5c5f Bluetooth: Classic: shell: Add cover art shell commands
Add cover art shell commands for AVRCP controller and target.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:58:06 -05:00
Lyle Zhu
8e144a89f3 Bluetooth: Classic: AVRCP: Enable cover art feature
Add Kconfig `BT_AVRCP_TG_COVER_ART` to enable the target cover art
feature.

Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_IMAGE_PROPERTIES` to enable
the controller cover art get image properties feature.

Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_IMAGE` to enable the
controller cover art get image feature.

Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_LINKED_THUMBNAIL` to enable
the controller cover art get linked thumbnail feature.

Add functions `bt_avrcp_cover_art_ct_cb_register()` and
`bt_avrcp_cover_art_tg_cb_register()` to register the callback.

Add function `bt_avrcp_cover_art_ct_l2cap_connect()` to create the
L2CAP connection for OBEX transport.

Add functions `bt_avrcp_cover_art_ct_l2cap_disconnect()` and
`bt_avrcp_cover_art_tg_l2cap_disconnect()` to disconnect the L2CAP
connection.

Add functions to send OBEX request/response, including connect,
disconnect, abort, get_image_properties, get_image, and
get_linked_thumbnail.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:58:06 -05:00
Peter van der Perk
3945b21b1f imx95: Enable I3C Cortex-M7 SOC
Adds I3C DTS definitions for imx95 cortex-m7 to use mcux-i3c drdiver

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-11-17 10:57:37 -05:00
Frode van der Meeren
03bfafe05e tests: bluetooth: tester: Fix CSIS/SR/SP/BV-07-C
This particular test-case requires bttester to respond with an OOB
procedure SIRK only error. To enable this response, the BTP command to
set SIRK mode has been extended with a new selection.

Signed-off-by: Frode van der Meeren <frode.vandermeeren@nordicsemi.no>
2025-11-17 10:57:28 -05:00
Benjamin Cabé
3598b6f40c modules: openthread: fix doxygen for openthread_set_nat64_receive_cb
Fix include guards and better document the kconfig dependency

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-11-17 10:56:56 -05:00
Benjamin Klaric
7987614b54 boards: st: stm32h7s78_dk: remove redundant CONFIG_SYS_HEAP_AUTO config
As stated, removed the unnecessary CONFIG_SYS_HEAP_AUTO=y from
both defconigs, since it is enabled per default for this board.

Signed-off-by: Benjamin Klaric <benjamin.klaric01@gmail.com>
2025-11-17 09:26:10 -05:00
Emil Gydesen
2423a41e6a tests: Bluetooth: Audio: Add RX check for each stream
Changed the generic global flag_audio_received flag to
exist for each stream. This will help verify that each
stream, if configured for RX, receives the expected
data.

One test started failing due to this, so that was disabled
until a fix is in place in the controller.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-11-17 09:25:12 -05:00
Firas Sammoura
f877417f0d tests: riscv: Implement unit tests for PMP memattr configuration and state
This commit implements a new unit test suite to validate the
integration of Device Tree memory attributes (`zephyr,memory-attr`)
with the RISC-V Physical Memory Protection (PMP) hardware.

The test suite includes:
1. **`test_pmp_devicetree_memattr_config`**: Verifies that the PMP
   Control and Status Registers (CSRs) are programmed correctly based
   on the memory regions defined with `zephyr,memory-attr` in the
   Device Tree. It iterates through the active PMP entries and
   asserts a match against the expected DT-defined regions.
2. **`test_riscv_mprv_mpp_config`**: Checks the initial state of the
   Machine Privilege Register Virtualization (MPRV) bit and Machine
   Previous Privilege (MPP) field in the `mstatus` CSR to ensure PMP
   is configured for correct privilege level switching during boot.
3. **`test_dt_pmp_perm_conversion`**: Validates the
   `DT_MEM_RISCV_TO_PMP_PERM` macro to ensure the conversion from
   Device Tree memory attribute flags to RISC-V PMP permission bits
   (R/W/X) is correct.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2025-11-17 09:25:01 -05:00
Firas Sammoura
80d34bbe0a riscv: pmp: Extract region address calculation to helper function
The logic to decode PMP addressing modes (**TOR**, **NA4**, **NAPOT**) into
physical start and end addresses was previously embedded in
`print_pmp_entries()`.

Extract this calculation into a new static helper function,
`pmp_decode_region()`, to significantly improve the readability and
modularity of the PMP debug printing code.

The new helper function is fully self-contained and exposes a defined API
for the PMP address decoding logic. This enables **direct reuse** in
**unit tests** (e.g., using **Ztest**) to verify the core address
calculation accuracy for all PMP modes and boundary conditions, independent
of the main PMP initialization or logging path.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2025-11-17 09:25:01 -05:00
Firas Sammoura
c011fddf95 riscv: pmp: Support custom entries from Device Tree for memory attributes
The Physical Memory Protection (PMP) initialization is updated to support
custom entries defined in the Device Tree (DT) using the `zephyr,memattr`
property, contingent on `CONFIG_MEM_ATTR` being enabled. A new function,
`set_pmp_mem_attr()`, iterates over DT-defined regions and programs PMP
entries in `z_riscv_pmp_init()`, allowing for early, flexible, and
hardware-specific R/W/X protection for critical memory areas. DT-based
entries are also installed in `z_riscv_pmp_kernelmode_prepare()` for
thread-specific configuration. The logic for the temporary PMP "catch-all"
entry is adjusted to account for new DT entries. Furthermore, the PMP
domain resync logic now masks user partition permissions against DT-defined
region permissions, preventing privilege escalation. `CONFIG_RISCV_PMP` is
updated to select `PMP_KERNEL_MODE_DYNAMIC` if `MEM_ATTR`. Finally, the
`pmp_cfg` array in `z_riscv_pmp_init()` is initialized to zero to prevent
writing uninitialized stack data to unused PMP entries.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2025-11-17 09:25:01 -05:00
Firas Sammoura
9fd456e4ab riscv: pmp: Fix pmp_addr index for per-CPU IRQ stack guards in SMP
When CONFIG_SMP is enabled, per-CPU IRQ stack guards are added. To prevent
unintended TOR (Top of Range) entry sharing, the PMP address entry
preceding each guard region in `pmp_addr` is marked with -1L.

The previously used index to access `pmp_addr` could become stale, as
additional PMP entries may be allocated after its initial calculation
but before the SMP loop for IRQ guards.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2025-11-17 09:25:01 -05:00
Firas Sammoura
c875c586b7 riscv: pmp: Separate global state for M-mode and U-mode regions
Split global PMP state variables (index and last address) into
mode-specific counterparts to correctly track the end of global PMP
ranges for both M-mode (kernel) and U-mode (userspace).

This ensures correct per-thread PMP initialization when configuring
mode-specific dynamic PMP entries.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2025-11-17 09:25:01 -05:00
Firas Sammoura
f6cec1c30f riscv: Add CONFIG_PMP_KERNEL_MODE_DYNAMIC
Introduce `CONFIG_PMP_KERNEL_MODE_DYNAMIC` to enable dynamic
configuration and activation of Machine mode PMP entries. This allows
PMP settings to be managed efficiently during transitions between
kernel and thread contexts.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2025-11-17 09:25:01 -05:00
Firas Sammoura
3b27d95f61 riscv: pmp: Rename PMP stackguard functions to kernelmode
Rename the `z_riscv_pmp_stackguard_*` functions to
`z_riscv_pmp_kernelmode_*`. This change better reflects that
these functions are used for general kernel mode PMP configuration,
not strictly limited to stack guard purposes.

Call sites in fatal.c, isr.S, and switch.S have been updated accordingly.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2025-11-17 09:25:01 -05:00
Peter van der Perk
20d8e9171e dts: arm: imx95: specify ITCM zephyr,memory-region
When using `zephyr,itcm` on a imx95 based board the linkage may fail due
to the absence of a defined ITCM region. This issue can be resolved by
specifying the ITCM region using `zephyr,memory-region`.

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-11-17 09:23:53 -05:00
Jerzy Kasenberg
173cb15283 soc: smartbond: Change SYS_CLOCK_TICKS_PER_SEC
Zephyr default configuration for SYS_CLOCK_TICKS_PER_SEC
is 10000.
For smartbond this value was changed to frequency of lp_clk.
For XTAL32K SYS_CLOCK_TICKS_PER_SEC would increase to 32768
that would equal SYS_CLOCK_HW_CYCLES_PER_SEC.

One would expect SYS_CLOCK_TICKS_PER_SEC to be less then
HW clock cycles.

This restores default value for SYS_CLOCK_TICKS_PER_SEC
and changes it to 5000 only when rcx is used (that runs at
around 15kHz) and keeping it at 10000 would result in
big rounding errors.

Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg.xr@bp.renesas.com>
2025-11-17 09:23:30 -05:00
Afonso Oliveira
b9a15bf5c8 arch/riscv: Enable NMI delivery for SMRNMI hardware
Add option to enable NMI delivery on boot for SMRNMI hardware.

Changes:
- Add CONFIG_RISCV_SMRNMI_ENABLE_NMI_DELIVERY Kconfig option
- Define SMRNMI CSRs in arch/riscv/include/csr.h
- Set NMIE bit during boot to enable NMI delivery

SMRNMI hardware generates but doesn't deliver NMIs when NMIE=0 (default).
This causes twister test failures and prevents handling of critical
hardware events like watchdog NMIs and ECC errors.

Setting NMIE=1 enables NMI delivery, but note that this implementation
only sets the enable bit - it does not provide full SMRNMI support
(no mnret instruction handling, no RNMI handlers). Users must implement
proper RNMI handlers in SoC-specific code to avoid undefined behavior.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-11-17 09:23:11 -05:00
Jordan Yates
9366e4a48e modules: tfm: disable SECURE_UART when TFM_LOG_LEVEL_SILENCE
Explicitly disable the SECURE_UART TFM define when
`CONFIG_TFM_LOG_LEVEL_SILENCE=y`. The secure UART is only enabled by
default on nRF platforms to match the current TF-M defaults.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-17 09:22:58 -05:00
Matjaz Kajba
30bd32969b doc: replace getting started guide image
Replace blinky animation in getting started guide with nicer image.

Signed-off-by: Matjaz Kajba <matjaz@irnas.eu>
2025-11-17 09:22:28 -05:00
Jordan Yates
b4a8035433 llext: option to preserve EDK folder
Add an option to preserve the EDK folder, instead of deleting it after
creating the archive. This can simplify test scripting which can now
avoid immediately uncompressing the archive when compiling an
extension.

If this option is enabled, default to the much faster `.tar.Z` archive
format, since the compression ratio of the archive is not important.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-11-17 09:21:56 -05:00
Seppo Takalo
aee2604d37 drivers: modem: Implement support for DTR signal
DTR signal on UART extends the power saving by allowing host
to indicate the remote end that the UART is not in active state.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-11-17 09:21:45 -05:00
Fin Maaß
ffa0bbbc87 boards: litex: dts: improve formating of reg values
improve formating of reg values.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-11-17 09:21:15 -05:00
Yongxu Wang
e991623727 soc: nxp: imx943: support cpu mix poweroff with s2ram flow
Add S2RAM (Suspend-to-RAM) support for i.MX943 M7_0/M7_1 cores.
When entering suspend mode, the CPU mix is powered off to save
power consumption while preserving RAM data.

Implementation follows S2RAM suspend/resume workflow:
- Save CPU context (NVIC and SCB registers)
- Configure resume vector for S2RAM detection
- Suspend to RAM preserving stack and heap context
- Enter CPU suspend mode with mix poweroff
- Resume via reset_handler -> S2RAM detection -> context restore

Core registers are lost during poweroff but RAM data is preserved.

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2025-11-17 09:20:51 -05:00
Yongxu Wang
b0627959d3 dts: arm: nxp: imx943: update power state to support S2RAM
Update power state configuration for i.MX943 M7_0 and M7_1 cores
to use suspend-to-ram instead of standby to properly support
the newly implemented S2RAM (Suspend-to-RAM) functionality.

Changes:
- M7_0: standby -> suspend-to-ram
- M7_1: standby -> suspend-to-ram

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2025-11-17 09:20:51 -05:00
Alberto Escolar Piedras
8d7752861d boards native_sim: Remove zephyr,native-posix-cpu binding
This binding was deprecated in a8b44fd1d1
for the 4.2 release
Let's remove it now.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-11-17 09:20:34 -05:00
Alberto Escolar Piedras
9ce1bb356e drivers console: Remove deprecated native_posix_console.h
This header was deprecated in d881e794ba
for the 4.2 release
in favour of posix_arch_console.h
Let's remove it now.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-11-17 09:20:34 -05:00
Alberto Escolar Piedras
8e19196b1e boards/native/native_sim: Remove deprecated cmdline_common.h
This header was deprecated in ea79fdb4dd
for v4.2.
Let's remove it now.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-11-17 09:20:34 -05:00
Alberto Escolar Piedras
29a11ee1a4 boards/native/native_sim: Remove deprecated timer_model.h
This header was deprecated in 43b43f5408
for v4.2.
Let's remove it now.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-11-17 09:20:34 -05:00
Alberto Escolar Piedras
04a24a5a4d boards/native/native_sim: Remove deprecated native_posix_compat.h
This header was deprecated in 543f2da251
for v4.2.
Let's remove it now.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-11-17 09:20:34 -05:00
Alberto Escolar Piedras
8020428e2a drivers timer: native_sim_timer: Remove deprecated kconfig option
This driver was renamed in
078fef4ab5c5f8ff993a774778588a50794b886a
And with it the old kconfig option was deprecated for 4.2.
Let's remove this option now

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-11-17 09:20:34 -05:00
Pieter De Gendt
85b578c087 drivers: syscon: Add shell commands
Add shell commands to use the SYSCON driver API with SYSCON devices.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2025-11-17 09:19:46 -05:00
Peter van der Perk
dd693ab2ab soc: nxp: imx9: add HAS_DWT to i.MX95 M7
The Cortex-M7 in IMX95 has the DWT feature but wasn't specified
in Kconfig

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-11-17 09:19:17 -05:00
Arthur Gay
68e1e50089 cmake: mcuboot: Flash encrypted image when loading to RAM
When both `SB_CONFIG_MCUBOOT_MODE_RAM_LOAD` and `SB_CONFIG_BOOT_ENCRYPTION`
are enabled, MCUBoot loads an encrypted image from flash, decrypts it,
and then executes it from RAM.

Previously, the unencrypted image was being flashed. This caused a boot
failure because MCUBoot would attempt to decrypt an unencrypted image.

This commit ensures the encrypted image is flashed when this
configuration is active, allowing the system to boot correctly.

Signed-off-by: Arthur Gay <arthur.gay@marshmallow.kids>
2025-11-17 09:18:54 -05:00
Chaitanya Tata
de09399fa2 drivers: nrf_wifi: Fix nRF71 build
nRF71 uses a different data structure.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-11-17 09:18:38 -05:00
Chaitanya Tata
6476790987 drivers: wifi: nrf_wifi: Implement stats type
Pass the stats type to the new API.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-11-17 09:18:38 -05:00
Chaitanya Tata
a7e6d6f686 manifest: nrf_wifi: Pull modified API
The API now takes type as input.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-11-17 09:18:38 -05:00
Lyle Zhu
3cc5c1be45 Bluetooth: Classic: HFP_AG: Get default indicator value
In current implementation, the default indicator value cannot be set
when building the SLC. And it causes the incorrect indicator value is
notified by AG.

Add a callback `get_indicator_value` to get the default indicator
value from the application.

Add shell command `indicator_value` to set the default indicator
value. The set indicator value will be passed to HFP AG when callback
`get_indicator_value` is notified.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 09:16:45 -05:00
Jerzy Kasenberg
843ba7149a tests: arch: arm_irq_vector_table: Update to run on smartbond
Update the custom vector table to have timer2_isr that
is used for kernel system timer.

While test passes test immediate crashes afterwards due to
missing handler for non-SysTick interrupt.

Now custom interrupt table has additional interrupt handler
to prevent crash.
timer2_isr is no longer static that should not result in
any conflict.

Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg.xr@bp.renesas.com>
2025-11-17 09:16:14 -05:00
Joel Schaller
f22899e80c net: http_server: No Error ENETDOWN
Set Log Level to Info when the HTTP socket reports ENETDOWN,
instead of logging an error each time the network is down.

Signed-off-by: Joel Schaller <joel.schaller16@gmail.com>
2025-11-17 09:15:54 -05:00
Pete Johanson
9a55353216 drivers: serial: Apply TX AE interrupt workaround on MAX32655
The workaround for missing the almost-empty interrupt when TX of very small
payloads needs to also be applied for the UART on MAX32655, so default on
that workaround symbol on that target.

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2025-11-17 09:15:36 -05:00
Cristian Bulacu
fd7c368f69 samples: net: openthread: border_router: Update project config
Updated border router sample configuration to adapt newly added NAT64
functionality

Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
2025-11-17 09:15:16 -05:00
Cristian Bulacu
0a3de5b07d net: l2: openthread: Add NAT64 code for border router app
This commit enables NAT64 functionality for border router application.

Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
2025-11-17 09:15:16 -05:00
Cristian Bulacu
6e1fd56513 openthread: platform: Add NAT64 support at platform level
This commit adds platform code for NAT64 functionality

Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
2025-11-17 09:15:16 -05:00
Cristian Bulacu
86d5e38699 modules: openthread: Add new receive callback for NAT64 messages
In this commit, a new callback for NAT64 messages is added.
This is done to avoid passing the received message to rx queue of
external network interface.
As cidr is set from host's IPV4 address, this packet would have been
dropped when parsed, as source address was the same with the host
address and packet was not marked as loopback.

Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
2025-11-17 09:15:16 -05:00
Cristian Bulacu
3fc116cad3 openthread: platform: radio_spinel: Add NAT64 support
This commit enables IPV4 messages exchange between interfaces by adding
NAT64 support at platform level.

Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
2025-11-17 09:15:16 -05:00
Robert Lubos
60c763527a MAINTAINERS: Cleanup inactive collaborators in OpenThread area
Remove collaborators in OpenThread area that haven't been active for
months. Also unify the collaborator list in "Networking: OpenThread" and
"West project: openthread" areas.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-11-17 09:14:14 -05:00
cyliang tw
5973b553ed drivers: hwinfo: generalize the numaker config
Modify the numaker configuration to make it more general
instead of depending on specific SoC.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2025-11-17 09:28:26 +02:00
Hongbo Wang
9aaa9c4440 boards: frdm_imx93: enable enet support
Enable ENET port on FRDM_IMX93 board.

Signed-off-by: Hongbo Wang <hongbo.wang@nxp.com>
Signed-off-by: Chekhov Ma <chekhov.ma@nxp.com>
Signed-off-by: Jiafei Pan <jiafei.pan@nxp.com>
2025-11-17 09:28:15 +02:00