Commit graph

136,983 commits

Author SHA1 Message Date
Peter Wang
7199c4081f boards: frdm_mcxaxx6,frdm_mcxa577: enable reset driver
1. enable reset driver for frdm mcxa boards below:
    - frdm_mcxa266
    - frdm_mcxa346
    - frdm_mcxa366
    - frdm_mcxa577

Signed-off-by: Peter Wang <chaoyi.wang@nxp.com>
2025-12-23 05:08:14 +01:00
Kate Wang
68988108ee drivers: mipi_dbi: add support for DBI color coding
Add new configuration item color_coding in the structure
mipi_dbi_config and in mipi-dbi-device binding property.
The color coding is defined by MIPI Alliance Standard for
Display Bus Interface v2.0, which is required by some display
controllers and device.

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2025-12-23 05:07:28 +01:00
Kate Wang
5671a4357b drivers: mipi_dbi: Fix typo for color coding
Fix typo for color coding

Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
2025-12-23 05:07:28 +01:00
Nicolas Moreno
9b6c862121 dt-bindings: mipi_dbi: fixing pulse diagrams
Some diagrams on the file dt-bindings/mipi_dbi/mpi_dbi.h
doesn't deploy the correponsing pulse signal, many of them
the rising flag looks moved some spaces before or after
the rising/falling time. This is fixed by replacing
tasb with spaces

Signed-off-by: Nicolas Moreno <niko722795@gmail.com>
2025-12-23 05:05:52 +01:00
Chen Xingyu
595a8e8c11 doc: migration-guide-4.4: Document M5Stack Fire pinctrl changes
Add a migration entry describing the pinctrl changes on the M5Stack Fire
board.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2025-12-23 05:04:48 +01:00
Chen Xingyu
d7f6275d1c boards: m5stack: fire: Add node label for PORT.A
Add a `zephyr_i2c` node label pointing to `i2c0`, which is the bus used by
Units connected through Grove PORT.A. This follows the convention already
used on the Core2 and CoreS3 boards.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2025-12-23 05:04:48 +01:00
Chen Xingyu
3c295aa883 boards: m5stack: fire: Fix Grove PORT.C UART pinctrl
According to the M5Stack Fire v2.7 documentation, the HY2.0-4P Grove PORT.C
is wired to GPIO16 and GPIO17.

Update the DTS pinctrl configuration to route the PORT.C UART to these pins
so that the Grove connector matches the official hardware documentation.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2025-12-23 05:04:48 +01:00
Yangbo Lu
c3a3c2bd99 drivers: sdhc: imx_usdhc: support scatter gather DMA transfer
Supported scatter gather DMA transfer.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-12-23 05:04:25 +01:00
Yangbo Lu
e212f3e8f4 sd: sd_ops: initialize sdhc_data variables
Initialize sdhc_data variables.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-12-23 05:04:25 +01:00
Yangbo Lu
f45e1d528b drivers: sdhc: introduce scatter gather transfer support
Introduced scatter gather transfer support.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2025-12-23 05:04:25 +01:00
Greter Raffael
fdd6cb4469 drivers: display: ssd1306: Allow rotation at run-time
Implement set_orientation api

Inverting segment_remap and com_invdir at the same time, rotates the
screen by 180 degrees.

Signed-off-by: Greter Raffael <rgreter@baumer.com>
2025-12-23 05:03:01 +01:00
Jordan Yates
d2cd86800c tests: disk: disk_access: test disk_access_erase
Test the disk erase functionality.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
8d51481128 tests: disk: disk_access: align sector and erase sizes
Ensure that `sector-size` and `erase-size` match for the test.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
b11c0f1b60 disk: sdmmc_stm32: implement disk_access_erase
Add support for erasing blocks to the STM32 SDMMC driver.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
f52fa40b04 disk: loopback: implement disk_access_erase
Implement `disk_access_erase`, which requires a sector sized buffer
of 0's to provide to `fs_write`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
16d0daec8a disk: flashdisk: implement disk_access_erase
Implement `disk_access_erase` for flash disks.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
e02b85a378 disk: ramdisk: implement disk_access_erase
Implement `disk_access_erase` by setting all bytes to 0x00, with the
same bounds checking as `disk_access_write`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
36a926f932 disk: sdmmc: implement disk_access_erase
Implement the `disk_access_erase` function by calling out to the lower
layer SD card drivers.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
3050daaecc storage: disk_access: add disk_access_erase
Add the `disk_access_erase` command to complement the read and write
commands.

As a backwards compatible new feature, this increments the API version
from `1.0.0` to `1.1.0`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Jordan Yates
2f47985a9e sd: sd_ops: add block_erase implementation
Add a function for erasing a chunk of blocks.

The SD Card Association Pt1 Simplified Physical Layer Specification
recommends to erase many blocks simultaneously in order to enhance data
throughput (4.3.5.1).

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-12-23 05:02:05 +01:00
Derek Snell
348ae31ccc doc: nxp: add link to Board Support Status
Adds to common footer for all board doc pages.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-12-22 22:40:21 +01:00
Camille BAUD
ae9f04b556 drivers: i2c: bflb: Fix I2C again
Take nuclear option to handling compiler failing at compiling

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-12-22 22:33:56 +01:00
Benjamin Cabé
81ac3f9a7f include: Bluetooth: Host: add doxygen docs for GAP timer macros
This adds proper doxygen documentation for the GAP timers macros.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-12-22 22:33:39 +01:00
Peter Mitsis
3a8c9797ca kernel: Re-instate metaIRQ z_is_thread_ready() check
Re-instate a z_is_thread_ready() check on the preempted metaIRQ
thread before selecting it as the preferred next thread to
schedule. This code exists because of a corner case where it is
possible for the thread that was recorded as being pre-empted
by a meta-IRQ thread can be marked as not 'ready to run' when
the meta-IRQ thread(s) complete.

Such a scenario may occur if an interrupt ...
  1. suspends the interrupted thread, then
  2. readies a meta-IRQ thread, then
  3. exits
The resulting reschedule can result in the suspended interrupted
thread being recorded as being interrupted by a meta-IRQ thread.
There may be other scenarios too.

Fixes #101296

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2025-12-22 22:33:18 +01:00
Grzegorz Swiderski
83d3092d30 samples: fs: zms: Update to showcase 64 bit ID support
ZMS IDs are not necessarily 32 bit anymore, so the sample ought to
reflect that.

When the sample is built with CONFIG_ZMS_ID_64BIT=y, the KEY_VALUE_ID
will use a 64 bit value, chosen so that it would conflict with CNT_ID
only if 64 bit IDs were not handled properly.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-12-22 22:32:53 +01:00
Grzegorz Swiderski
298798a4b8 tests: fs: zms: Refine test_zms_id_64bit
By request, add another loop to fill an extra sector with small data
entries only (4 bytes per entry in the 64 bit ID case).

This should cover ZMS' special case handling of different data sizes.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-12-22 22:32:53 +01:00
Grzegorz Swiderski
0ebf13c3b7 tests: fs: zms: Add tests for free space calculation functions
Previously, there was no proper test coverage of `zms_calc_free_space()`
or `zms_active_sector_free_space()`, so they had some undiscovered bugs.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-12-22 22:32:53 +01:00
Grzegorz Swiderski
a39b2779ee fs: zms: Reformulate zms_calc_free_space
The initial implementation had a couple of flaws, including:

  * Generally overcounting the free space by ATE_SIZE bytes per sector.

  * Counting multiple ATEs of the same ID if placed in the same sector.
    The correct behavior is to only count the most recent entry.

  * When a sector was mostly or completely filled with small data sizes,
    there was a correction term applied in the wrong location.

  * The same correction term would be mistakenly applied when a sector
    was filled with only delete ATEs, which resulted in undercounting
    the free space in that sector.

This is addressed by rewriting the API according to a simple principle:
the total free space in a filesystem should equal the sum of free space
in every GC'd sector (minus 1 sector reserved for GC itself).

This should work because during garbage collection, ATEs are not moved
between sectors arbitrarily. Only one sector gets GC'd at a time and
every entry in sector N gets either removed or copied to sector N-1.
This means that any two valid entries that occupy a single sector would
still occupy a (different) single sector before and after the operation.

This property lets us simplify the total free space calculation by
considering one sector at a time and reapplying the calculation which
was just introduced for `zms_active_sector_free_space()`.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-12-22 22:32:53 +01:00
Grzegorz Swiderski
491a86ca53 fs: zms: Reformulate zms_active_sector_free_space
The initial implementation had a flaw in it: when an active sector was
almost full, the naïve calculation could easily underflow and return a
negative value, which would be misinterpreted as an errno.

Rewrite this API to satisfy the following, reasonable expectations:

  * Always return a non-negative value, provided ZMS is initialized.

  * Always return 0 if no more data can be written into the sector
    without triggering garbage collection.

  * Never return a value less than the actual number of bytes that can
    still be written into the sector.

This requires awareness of a few special cases in ZMS. These are now
captured in a helper function, which will be reused later.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-12-22 22:32:53 +01:00
Ayush Singh
63ff14e3d8 net: dns: resolve: Combine AR and AN handling
Use the same function to parse all records. The main difference is that
answer record handling matches the answer with the initial query, i.e.
AAAA query will have AAAA answer record. Additional records do not have
any matching with the original query.

Also just warns if an additional record parsing fails. But answer record
parsing is an error.

Tested on BeagleConnect Freedom

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-12-22 20:42:08 +01:00
Ayush Singh
31bc3b016b net: dns: resolve: Add additional record support for PTR query
As described in Section 12 of RFC 6763 [0], DNS-SD responses can contain
SRV, TXT and A/AAAA under additional records. This is done even in the
zephyr DNS service advertisement. So these additional records should be
passed to the user for handling.

Most of the code for additional records is taken from normal dns answer
unpacking. However, I have split the handling into a separate function
since I have only added additional records handling for DNS-SD. The same
code should be usable for answer record as well if required. The main
thing missing from additional record code is that we do not need to
match the query type to the response type.

Tested on BeagleConnect Freedom.

[0]: https://datatracker.ietf.org/doc/html/rfc6763.html#section-12

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-12-22 20:42:08 +01:00
Mathieu Choplain
2c004260b8 drivers: entropy: stm32: fix build breakage on STM32WB06/07
These SoCs don't have LL_PKA_IsEnabled() due to the PKA IP being different.
Since PKA can operate without RNG clock on entire STM32WB0 series, skip
the check on the entire series which avoids the call to non-existent
function on STM32WB06/07 and fixes build.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-22 20:41:35 +01:00
Lukasz Majewski
5fdffd8e1e boards: doc: Update information regarding memory sizes for stm32g474re MCU
According to STM's website:
https://www.st.com/en/microcontrollers-microprocessors/stm32g474re.html

the stm32g474re has larger FLASH and SRAM sizes than stated in the
Zephyr's documentation.

Signed-off-by: Lukasz Majewski <lukma@nabladev.com>
2025-12-22 20:41:22 +01:00
Benjamin Cabé
2954eff7f1 include: display: ssd16xx:: add doxygen docs for ssd16xx extended API
Adds doxygen documentation for the extended API of the Solomon SSD16XX
EPD display controller driver.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-12-22 20:40:57 +01:00
Benjamin Cabé
29c7d7a3f0 include: display: add doxygen group for Display API extensions
Similar to how it's done for other driver classes, create a new doxygen
group to put all device-specific Display API extensions under.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-12-22 20:40:57 +01:00
Benjamin Cabé
348ec106d3 include: display: mipi_display: add missing doxygen comments
Ensure that all enumerators have proper doxygen comments.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-12-22 20:40:36 +01:00
Mathieu Choplain
1aebea1490 soc: st: stm32: handle debug power mode in common code for WBA series
Perform call to LL_DBGMCU_{Dis,En}ableDBGStandbyMode() for STM32WBA series
in the common code, as done with other series. While at it, also add
missing call to LL_DBGMCU_{Dis,En}ableDBGStopMode().

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-12-22 20:39:53 +01:00
Seppo Takalo
c57042e3ca net: lib: shell: dns: Don't hard code the timeout to 2s
The hard coded 2s timeout might be too small for LTE and Nb-IoT
networks.

Instead use already existing CONFIG_NET_SOCKETS_DNS_TIMEOUT

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-22 20:39:21 +01:00
Seppo Takalo
07eec81f93 modem: cmux: Change default timeouts to match 3GPP TS 27.010
3GPP TS 27.010 defines default timeouts as follows:
* Acknowledgment Timer (T1), min 10ms, max 2.5s default 100ms
* Response Timer for multiplexer control channel (T2),
  min 20ms, max 2.5s, default 300ms
* Add Kconfig for both T1 and T2 timers

The Response Timer for wake-up procedure(T3) is already a Kconfig
and its default match the specification.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-22 20:39:01 +01:00
Qingsong Gou
7774970ccc drivers: i2c: sf32lb: add i2c interrupt-driven support for sf32lb
Add i2c interrupt-driven support for sf32lb platform

Signed-off-by: Qingsong Gou <gouqs@hotmail.com>
2025-12-22 20:38:27 +01:00
Seppo Takalo
f833ff533d modem: cmux: Add retry counter for SABM, CLD and DISC control messages
Add retry counter for opening and closing CMUX as well as
opening and closing the DLCI channel.

Use same retry counter for both DLCI control messages as well as CMUX
control messages as there is very minimal room for race condition.
DLCI messages are only send when CMUX control channel is open.

Where relevant, use disconnect(cmux) for all closing calls.
So we have one entry point for cleaning.

Similarly refactor modem_cmux_on_dlci_frame_dm() to dlci_close() as
this is the single function to close and clean up a channel.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-22 20:38:15 +01:00
Seppo Takalo
64459fbb50 modem: cmux: Drop invalid response frames
Drop invalid response frames when in connected state.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2025-12-22 20:38:15 +01:00
Jamie McCrae
014ccd3c40 boards: nordic: Add default Kconfig for (Q)SPI NOR page size
Changes the default page size to 4096 (4KiB) for SPI/QSPI NOR flash
devices if MCUboot is enabled to allow for swap updates to work by
default

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-12-22 20:37:38 +01:00
Tahsin Mutlugun
58cf208b8f drivers: timer: cortex_m_systick: Restore SysTick config after reset
Restore the clock source and exception bits in the CTRL register after
waking from low-power modes that reset SysTick. Also reconfigure the
interrupt priority.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2025-12-22 20:37:27 +01:00
Grzegorz Chwierut
29e8a95004 tests: Aligned with changes in pytest-twister-harness plugin
Aligned with changes in pytest plugin, where added support
of multiple connections from one device.

Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
2025-12-22 20:36:34 +01:00
Grzegorz Chwierut
fca50869b8 samples: icmsg: Updated to verify output from both cores
Changed 'harness: console' to 'harness: pytest' to verify output
from both application and network cores using the new multiple
UART connection support. The pytest test reads from connection_index=0
(application core) and connection_index=1 (network/remote core) to
validate IPC communication on both sides.

Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
2025-12-22 20:36:34 +01:00
Grzegorz Chwierut
2d80ffafb4 samples: sysbuild: hello_world: Simplify dual UART test with new API
Replace manual serial port handling with the new multiple UART
connection support from pytest-twister-harness. The test now uses
connection_index=1 to read from the second core UART instead of
managing a separate serial connection fixture.

Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
2025-12-22 20:36:34 +01:00
Grzegorz Chwierut
10533cedbe doc: twister: Add multi-core testing support documentation
Document the new multiple UART connection support in pytest-twister-harness
plugin. Hardware devices can now access multiple connections using the
connection_index parameter (0=main UART, 1=second core UART).
Also update readlines_until() examples to use explicit regex= parameter
for improved API clarity.

Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
2025-12-22 20:36:34 +01:00
Grzegorz Chwierut
4b6ad9db3c tests: twister: Update unit tests to support miltiple ports
Updated unit tests from pytest-twister-harness
with wupport of multiple connextions.

Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
2025-12-22 20:36:34 +01:00
Grzegorz Chwierut
1b7810f0cb scripts: twister: Support multiple ports in pytest-twister-harness
Add support for multiple connections (e.g. UART) from one device,
enabling communication with second core UARTs. Feature implemented
by extracting connection logic from DeviceAdapter to new
DeviceConnection class with specialized implementations:
- SerialConnection for hardware UART ports
- ProcessConnection for native simulation
- FifoConnection for QEMU communication
Each connection maintains separate log files (handler.log,
handler_1.log, etc.) and can be accessed via connection_index
parameter in device methods like readline() and write().
This enables testing multi-core applications where different
cores communicate through separate UART interfaces.

Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
2025-12-22 20:36:34 +01:00