Commit graph

136,983 commits

Author SHA1 Message Date
Make Shi
2791b7cb16 bluetooth: avrcp: Move SDP registration to callback registration
Move AVRCP SDP record registration and  AVCTP server register from
bt_avrcp_init() to callback registration functions to align with
other Bluetooth Classic profiles.

Signed-off-by: Make Shi <make.shi@nxp.com>
2026-03-11 17:55:04 +00:00
Manimaran A
173e54e54c drivers: eeprom: microchip: mec: common eeprom driver
Updated EEPROM dts for PCR and GIRQ property.
Updated pinctrl to access internal EEPROM for MEC5 part.

Signed-off-by: Manimaran A <manimaran.a@microchip.com>
2026-03-11 17:54:41 +00:00
Abderrahmane JARMOUNI
17abd5c447 dts: qemu: cortex-a9: add i/dcache line size
Add L1 I/DCache line size to CPU node

Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
2026-03-11 17:54:26 +00:00
Abderrahmane JARMOUNI
22f08c94ae dts: qemu: virt-a53: add i/dcache line size
Add L1 I/DCache line size to CPU node

Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
2026-03-11 17:54:26 +00:00
Appana Durga Kedareswara rao
63bd0128b1 tests: arch: arm: arm_interrupt: Restore barriers for Cortex-M
Commit 65c641dffe ("tests: arch: arm: Add Cortex-R5 support to
arm_interrupt test") accidentally moved the barrier.h include inside
the CONFIG_ARMV7_R guard and wrapped all DSB+ISB barrier calls in

Without barriers after NVIC_SetPendingIRQ(), the Cortex-M pipeline
can execute past the pending write before the interrupt fires, causing
the spurious IRQ assertion to fail on real hardware (nRF52, nRF54,
nRF9160).

Restore barrier.h as an unconditional include and remove the
CONFIG_ARMV7_R guards around all three barrier call sites so they
apply to all ARM architectures as originally intended.

Fixes: #104940
(https://github.com/zephyrproject-rtos/zephyr/issues/104940)

Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
2026-03-11 17:53:42 +00:00
Krzysztof Chruściński
c5de9a2c76 manifest: Update hal_nordic with GPIOTE Kconfig cleanup
Align samples in hal_nordic to the cleanup in nrfx GPIOTE Kconfig
options. Instance specific Kconfigs have been removed and they
should not be used.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-03-11 17:53:23 +00:00
Krzysztof Chruściński
f41343c4c0 samples: boards: nordic: nrfx: Fix use of GPIOTE instance
After introducing nrfx4.0 GPIOTE driver instances shall not be created
in each module that is using the driver but reference shall be used.
Reference is retrieved using gpiote_nrfx.h API.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-03-11 17:53:23 +00:00
Krzysztof Chruściński
16efc6c909 modules: hal_nordic: nrfx: Cleanup GPIOTE Kconfigs
Remove instance specific Kconfigs (CONFIG_NRFX_GPIOTEx) as they are no
longer used. Cleanup in all places.

Add prompt to CONFIG_NRFX_GPIOTE to allow enabling the driver.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-03-11 17:53:23 +00:00
Krzysztof Chruściński
fea078ff42 drivers: gpio: nrf: Do not use nrfx_gpiote when no interrupts
If CONFIG_GPIO_NRFX_INTERRUPT is disabled then nrfx_gpiote driver API
shall no be accessed at all (driver can be disabled).

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-03-11 17:53:23 +00:00
Piotr Kosycarz
5289fe5b72 tests: drivers: flash: common: lm20 require fixture
For drivers.flash.common.test_storage_partition
lm20 require fixture which selects board with ext flash enabled.

Signed-off-by: Piotr Kosycarz <piotr.kosycarz@nordicsemi.no>
2026-03-11 17:52:29 +00:00
Fin Maaß
7cf5c9845e docs: migration-guide: mention CONFIG_NET_CHECKSUM_OFFLOAD
mention new option CONFIG_NET_CHECKSUM_OFFLOAD and
CONFIG_NET_CHECKSUM_OFFLOAD_SUPPORTED and their
effects to the ethernet drivers.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-03-11 17:52:13 +00:00
Fin Maaß
52c254af76 net: add Kconfig option for checksum offloading
Adds a Kconfig option to detect if checksum offloading
is supported by any driver and one to activate it.

Main benefit is that `net_if_need_calc_rx_checksum()` and
`net_if_need_calc_tx_checksum()` are now inline and therefore the
compiler can optimize more, when checksum offloading is not supported.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-03-11 17:52:13 +00:00
Chaitanya Tata
5f7dee813d boards: nordic: nrf7120dk: Use a single IPC channel
The new IPC design between APP and Wi-Fi doesn't use ACKs, so, we only
need a single IPC channel for (cmd, event) pairs, the ACKs are replaced
with a direct-memory write based rings.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2026-03-11 17:51:53 +00:00
Stephanos Ioannidis
c279bedaa4 scripts: gen_image_info: Skip PT_GNU_STACK segment
When `-z nostackexec` or `-z stackexec` option is specified, GNU ld adds a
segment of type `PT_GNU_STACK` with zero VMA/LMA and size to the output ELF
file.

Since the sole purpose of `PT_GNU_STACK` segment is to mark whether the
stack should be executable and it has no loadable details, this commit
updates the gen_image_info script to omit it from the image information
header file.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2026-03-11 17:51:42 +00:00
Stephanos Ioannidis
310127c400 cmake: linker: ld: Always specify -znoexecstack for bare metal
Binutils 2.39 and above print out a warning when `.note.GNU-stack` section
is missing from an object file.

  ld.bfd: warning: _thumb1_case_uqi.o: missing .note.GNU-stack section
  implies executable stack
  ld.bfd: NOTE: This behaviour is deprecated and will be removed in a
  future version of the linker

This commit adds `-znoexecstack` when linking bare metal executables to
mark that stack is not executable when `.note.GNU-stack` section is
missing, effectively suppressing the above warning.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2026-03-11 17:51:42 +00:00
Michał Stasiak
a237ba3afd boards: nrf54lm20dk: doc: add board image
Added image of nRF54LM20 DK.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2026-03-11 17:51:30 +00:00
Jisheng Zhang
10a23b39a2 arch: arm: cortex_a_r: Add CPU load
Add calls to sys_trace_idle_exit before leaving idle state
to track CPU load.

Extend CPU_LOAD to CPU_AARCH32_CORTEX_R and CPU_AARCH32_CORTEX_A, thus
we can support CPU_LOAD for all CPU_CORTEX.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
2026-03-11 17:51:09 +00:00
Jisheng Zhang
1e332daae2 arch: arm: cortex_a_r: Convert cpu_idle from ASM to C
ASM is notoriously harder to maintain than C and requires core specific
adaptation which impairs even more the readability of the code.

As for performance concern, there's no difference of generated code
between ASM and C version.

ASM version:

<arch_cpu_idle>:
f57ff04f 	dsb	sy
e320f003 	wfi
f1080080 	cpsie	i
f57ff06f 	isb	sy
e12fff1e 	bx	lr

<arch_cpu_atomic_idle>:
f10c0080 	cpsid	i
f57ff04f 	dsb	sy
e320f002 	wfe
e3500000 	cmp	r0, #0
1a000000 	bne	102ca8 <_irq_disabled>
f1080080 	cpsie	i

<_irq_disabled>:
e12fff1e 	bx	lr

C version:

<arch_cpu_idle>:
f57ff04f 	dsb	sy
e320f003 	wfi
f1080080 	cpsie	i
f57ff06f 	isb	sy
e12fff1e 	bx	lr

<arch_cpu_atomic_idle>:
f10c0080 	cpsid	i
f57ff04f 	dsb	sy
e320f002 	wfe
e3500000 	cmp	r0, #0
112fff1e 	bxne	lr
f1080080 	cpsie	i
e12fff1e 	bx	lr

As can be seen, the C version use 'bxne lx' to return directly for irq
disabled case, cost one less instruction than asm version. So from this
PoV, C version not only improves the readability and maintainability
but also generates better code.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
2026-03-11 17:51:09 +00:00
Jisheng Zhang
4936bd008a arch: arm64: Convert cpu_idle from ASM to C
ASM is notoriously harder to maintain than C and requires core specific
adaptation which impairs even more the readability of the code.

There's a bug in current arch_cpu_atomic_idle asm version:
	tst	x0, #(DAIF_IRQ_BIT) //here Z := (DAIF_IRQ_BIT == 0)
	beq	_irq_disabled //jump to _irq_disabled when Z is set
	msr	daifclr, #(DAIFCLR_IRQ_BIT)
_irq_disabled:
	ret

As can be seen, the asm code jumps to _irq_disabled when Z is set, but
per aarch64 architecture reference, DAIF_IRQ == 0 means the IRQ is
unmasked, I.E enabled. So the asm logic here is wrong. I fixed this bug
in C version. This shows the benefit of ASM -> C

As for performance concern, except the bug fix above, there's no
difference of generated code between ASM and C version.
ASM version:
<arch_cpu_idle>:
d5033f9f 	dsb	sy
d503207f 	wfi
d50342ff 	msr	daifclr, #0x2
d65f03c0 	ret

arch_cpu_atomic_idle>:
d50342df 	msr	daifset, #0x2
d5033fdf 	isb
d503205f 	wfe
f279001f 	tst	x0, #0x80
54000040 	b.eq	1001d10 <_irq_disabled>  // b.none
d50342ff 	msr	daifclr, #0x2

_irq_disabled>:
d65f03c0 	ret

C version:
<arch_cpu_idle>:
d5033f9f 	dsb	sy
d503207f 	wfi
d50342ff 	msr	daifclr, #0x2
d65f03c0 	ret

<arch_cpu_atomic_idle>:
d50342df 	msr	daifset, #0x2
d5033fdf 	isb
d503205f 	wfe
37380040 	tbnz	w0, #7, 1001d0c <arch_cpu_atomic_idle+0x14>
d50342ff 	msr	daifclr, #0x2
d65f03c0 	ret

And as can be seen, C version use the tbnz instruction to test bit and
branch. Unlike TST, TBNZ does not affect the Z, N, C, or V flags in the
processor state. So except the bug fix, C version looks a bit better
than asm version.

Other architectures such as x86, riscv, rx, xtensa, mips and even arm
cortex_m also use c version for cpu_idle, it's safe for ASM -> C.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
2026-03-11 17:51:09 +00:00
Martin Jäger
327105f95c tests: dsp: basicmath: build f16 tests only if supported in hardware
The tests use f16 arithmetic operations, so it should only be built
if CONFIG_CMSIS_DSP_FLOAT16 is enabled. The previously used more
generic CONFIG_FP16 only ensures f16 storage support.

Signed-off-by: Martin Jäger <martin.jaeger@a-labs.io>
2026-03-11 17:50:15 +00:00
Martin Jäger
0db6478f97 cmsis-dsp: restrict f16 support to targets with f16 arithmetic
CMSIS-DSP f16 sources use _Float16 arithmetic, which requires MVE float
on Cortex-M processors. So far, CONFIG_CMSIS_DSP_FLOAT16 only depended
on CONFIG_FP16, which controls the storage format and is enabled on
all ARM targets. This caused build failures on Cortex-M55 without MVE
when -mfpu=fpv5-sp-d16 is used.

Making CONFIG_CMSIS_DSP_FLOAT16 depend on the newly introduced
CONFIG_FP16_ARITHMETIC ensures that the hardware instructions for
arithmetic operations used by the DSP library are present.

Signed-off-by: Martin Jäger <martin.jaeger@a-labs.io>
2026-03-11 17:50:15 +00:00
Martin Jäger
659069617b arch: arm: core: Kconfig: introduce CONFIG_FP16_ARITHMETIC
This allows to distinguish between f16 storage format support
(CONFIG_FP16) and actual f16 arithmetic capability.

CONFIG_FP16_ARITHMETIC requires either MVE float (ARMV8_1_M_MVEF) or a
Cortex-A core (CPU_CORTEX_A).

Signed-off-by: Martin Jäger <martin.jaeger@a-labs.io>
2026-03-11 17:50:15 +00:00
Jordan Yates
0bf99fa4e4 net: ip: net_core: remove conn_mgr_if_used on RX
Remove the unconditional `conn_mgr_if_used` call on data reception.
Receiving data ends up being a poor metric for "interface in use" in
many situations. This is especially the case when connected to networks
with broadcast packets that are not necessarily relevant for us, such as
ARP discovery requests.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-11 17:50:02 +00:00
Dhanoo Surasarang
4cb9c76687 samples: sysbuild: hello_world: Fix REMOTE_BOARD for nRF7120
SOC_NRF7120_CPUAPP does not exist; the correct Kconfig symbol
for the nRF7120 engineering A application core is
SOC_NRF7120_ENGA_CPUAPP.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-03-11 17:49:34 +00:00
Dhanoo Surasarang
3445ec3b86 dts: riscv: nordic: nrf7120: Fix cpuflpr_mram address/size cells
Add ranges, #address-cells and #size-cells to cpuflpr_mram to
match the cpuapp_mram pattern. Without these the fixed-partitions
child node causes dtc warnings about mismatched address-cells and
default addr/size reliance.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-03-11 17:49:34 +00:00
Dhanoo Surasarang
64ee41d924 boards: nordic: nrf7120dk: Fix FLPR console UART
The nRF7120 FLPR core uses uart30, not uart00. Fix the
chosen console/shell-uart nodes and the uart status accordingly.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-03-11 17:49:34 +00:00
Dhanoo Surasarang
36e26fca3a scripts: runners: nrf: Use ERASE_NONE for nrf71 family
Apply the same ERASE_NONE default as nRF54L.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-03-11 17:49:34 +00:00
Dhanoo Surasarang
0d85d5c82c snippets: nordic: flpr: Fix nRF7120 UART reservation
The nRF7120 FLPR snippet should reserve uart30, not uart00,
to match the UART used by the FLPR core.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-03-11 17:49:34 +00:00
Dhanoo Surasarang
44cb782257 boards: nordic: nrf7120dk: Add flash runner run_once config
Add run_once groupings for --erase, --recover and --reset so that
when flashing a multi-image sysbuild, --erase and --recover are
only run on the first flash and --reset only on the last.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-03-11 17:49:34 +00:00
Bernhard Reiter
d082f98e6a drivers: sensor: tmag5170: fix sensor_value scaling in conversions
Use micro-units when converting readings to struct sensor_value.

The previous implementation used 100000-based scaling for fractional
values, while sensor_value expects 10^-6 units. As a result, converted
magnetic field values were reported as 10x the expected gauss value
instead of gauss, and the incorrect scaling caused apparent jumps in
the reported sensor readings.

Fix the conversions by using 1000000-based scaling and
sensor_value_from_micro().

Signed-off-by: Bernhard Reiter <bernhard.reiter@swarovskioptik.com>
2026-03-11 17:49:19 +00:00
Aleksandr Khromykh
5b7c8c777d bluetooth: mesh: fix rpr null dereference
Commit adds checking that the PB-ADV bearer has been
closed before opening the PB-Remote link for NPPI
interface. NPPI interface callbacks are NULL if
PB-ADV server bearer is still open.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2026-03-11 17:49:04 +00:00
Sylvio Alves
7fb8d277c8 tests: boards: espressif: use ztest harness for memory_layout
The memory_layout test uses the ztest framework with zassert macros,
so the harness should be ztest instead of console with custom regex
patterns.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-03-11 17:48:40 +00:00
Jason Yu
18f4dfa9f5 tests: counter: basic_api: relax counter_stop assertions
counter_stop() is not required to succeed on all hardware.
Free-running counters (e.g. OS Timer) correctly return -ENOTSUP.

Update the three call sites in the unit test to accept -ENOTSUP
as a valid outcome.

Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
2026-03-11 11:43:21 +01:00
Nhut Nguyen
f88842ebef tests: drivers: mbox: Fix fail cases for RZ/G3S, V2L
Add Kconfig symbols that were introduced to improve the testsuite,
allowing tests to pass on RZ/G3S, V2L.

Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2026-03-11 11:42:44 +01:00
Zhaoxiang Jin
63331dc3e0 MAINTAINERS: Apply to become power management collaborator
I have a strong interest in this field, and my daily work
involves MCU power management. I am already quite familiar
with Zephyr's PM subsystem and have made several contributions
to it. I am applying to become a collaborator for this domain
to assist the maintainer with domain maintenance work, and to
contribute insights from my experience with MCU power
architectures/features to help improve and optimize Zephyr's PM.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-03-11 11:42:18 +01:00
Zhaoxiang Jin
db125026d7 doc: pm: Clarify pm_device_driver_init error handling
Document that pm_device_driver_init returns 0 on success
and propagates errors from the PM action callback.
Clarify that when the callback fails during initialization
(e.g., on PM_DEVICE_ACTION_RESUME), the device is not marked
ACTIVE and remains in its previous state (typically SUSPENDED
or OFF for devices supporting PM).

Update documentation to reflect that the device is moved
to the "expected initial state" rather than specifically
to "ACTIVE" state, as the actual state depends on the
success of the initialization sequence.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-03-11 11:42:06 +01:00
Pieter De Gendt
5eebc58806 logging: backend: net: Use struct net_sockaddr_storage
Replace struct net_sockaddr with struct net_sockaddr_storage.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-03-11 11:41:40 +01:00
Lyle Zhu
92ee8bae34 tests: bluetooth: tester: fix registered_services bitmap size
The registered_services bitmap was incorrectly sized using
BTP_SERVICE_ID_MAX, which is the last valid service ID (starting
from 0). This caused the bitmap to be one element too small.

Fix by defining BTP_SERVICE_ID_COUNT as (BTP_SERVICE_ID_MAX + 1)
and using it for the ATOMIC_DEFINE size to properly accommodate
all service IDs from 0 to BTP_SERVICE_ID_MAX inclusive.

Add comment explaining the service ID indexing and count calculation.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-03-11 11:40:40 +01:00
Fin Maaß
cb29348da1 random: xoshiro128: remove unneeded SYS_INIT
Inside the init function, it was only checked if the
entropy device is ready and if it is not ready a error code
is returned. This is useless as the return codes of SYS_INIT()
functions are not used or saved, in difference to device inits.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-03-11 11:40:15 +01:00
Biwen Li
32a289c6f5 boards: nxp: imx943_evk: disable CONFIG_I2S_HAS_PLL_SETTING
- Disable option CONFIG_I2S_HAS_PLL_SETTING.
- Set CONFIG_I2C_TCA954X_CHANNEL_INIT_PRIO as 51 for
  system to initialize i2c devices properly.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2026-03-11 11:39:26 +01:00
Biwen Li
b5f0b5f27c boards: nxp: imx943_evk: m33: yaml: add i2s
Add i2s for samples/drivers/i2s/output.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2026-03-11 11:39:26 +01:00
Biwen Li
f6169200d2 dts: arm: nxp: imx94x: add i2s, edma1 nodes
Add i2s, edma1 nodes and
reorder flexio3 and flexio4

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2026-03-11 11:39:26 +01:00
Biwen Li
8d0e1849a2 boards: nxp: imx943_evk: m33: use common dtsi
Use common dtsi imx943_evk_mimx94398_cm.dtsi

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2026-03-11 11:39:26 +01:00
Biwen Li
25a0d20e4b boards: imx943_evk: add lpi2c3,lpi2c6, i2s1 node
- Add i2c devices in i2c bus.
- Add i2s node to enable audio samples.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2026-03-11 11:39:26 +01:00
Biwen Li
c33af18e56 boards: nxp: imx943_evk: pinctrl: add sai1_default node
Add sai1_default and lpi2c3_default node

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2026-03-11 11:39:26 +01:00
Vincent Surkijn
311a841620 drivers: pwm: add support for enabling DMA requests
Extend the PWM API with optional API functions for enabling DMA requests

Possible solution for #88670

Signed-off-by: Vincent Surkijn <vincent.surkijn@siemens.com>
2026-03-11 11:38:01 +01:00
Mahesh Mahadevan
8b9ade18ac MAINTAINERS: Update the Maintainers for the NXP sections
1. Remove DerekSnell from Collaborators list
2. Make axelnxp the Maintainer for NXP Wireless section
3. Make zejiang0jason the co-maintainer for NXP Drivers
4. Make iuliana-prodan the co-maintainer for NXP MCU Platforms
5. Make ZhaoxiangJin the primary maintainer for hal_nxp

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2026-03-10 18:01:04 -07:00
Jordan Yates
4a2374c7a1 net: lib: sntp: SNTP_UNCERTAINTY consistent time sources
When comparing time sources for `CONFIG_SNTP_UNCERTAINTY` to validate
the server responses, `dest_ts_us` and `orig_ts_us` need to be
constructed from the same time sources and have the same offsets applied
in order for math operations to be valid.

Fixes #105101

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-03-10 18:00:49 -07:00
Chaitanya Tata
ac5b549411 doc: wifi: Add Wi-Fi feature to crypto mapping
Handy in figuring on the crypto feature deprecation/removal and also to
see which are legacy and PSA.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2026-03-10 18:00:06 -07:00
Tim Pambor
a067aaa446 drivers: ethernet: dwmac_stm32h7x: align MAC address config with HAL driver
Update the dwmac_stm32h7x ethernet driver to use the same default
MAC address as the STM32 HAL driver.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-10 17:59:18 -07:00