Commit Graph

119371 Commits

Author SHA1 Message Date
Tim Pambor
c7e97bb5f8 runners: probe-rs: Support debug and debugserver
Add support for west debug and west debugserver to
the probe-rs runner.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2025-07-23 17:28:52 +01:00
Ben Lauret
1fbfb1bd9a doc: Added instruction for blob fetching
Added in the documentation for the DA1469x based kit to fetch the
binary blobs.

Signed-off-by: Ben Lauret <ben.lauret.wm@renesas.com>
2025-07-23 17:28:28 +01:00
Tomáš Juřena
e219417677 boards: st: nucleo_c071rb: enables HSIUSB48 clock for USB
Enables the HSIUSB48 clock (node clk_hsi48 in the SoC DTSI)
on the nucleo_c071rb platform.

Signed-off-by: Tomáš Juřena <jurenatomas@gmail.com>
2025-07-23 17:27:24 +01:00
Tomáš Juřena
0f760ed64c drivers: clock: stm32c0: Add an option to enable CRS for HSI48
Allows enabling the Clock Recovery System (CRS) for HSI48 to achieve
the expected accuracy for USB transfers. Uses USB SOF packet by default.

Signed-off-by: Tomáš Juřena <jurenatomas@gmail.com>
2025-07-23 17:27:24 +01:00
Tomáš Juřena
a7a9570a95 dts: arm: st: c0: Add clk-hsi48 for stm32c071 SOC
Allow to use internal HSI to clock the USB bus if HSE is not available.

Signed-off-by: Tomáš Juřena <jurenatomas@gmail.com>
2025-07-23 17:27:24 +01:00
Tomáš Juřena
4abf3d584d include: zephyr: dt-bindings: clock: Add HSI48 support STM32C071
STM32C071 have USB peripheral which can be clocked from HSI (HSIUSB48).

Signed-off-by: Tomáš Juřena <jurenatomas@gmail.com>
2025-07-23 17:27:24 +01:00
Jakub Michalski
8a7b4721a1 docs: virtio: add section about available drivers and samples
This commit adds sections to the virtio docs with the currently
supported transfer methods, drivers and samples

Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
2025-07-23 12:20:22 -04:00
Jakub Michalski
c9c9f133da fs: virtiofs: add virtiofs sample
This commit adds virtiofs sample that presents use of this filesystem

Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2025-07-23 12:20:22 -04:00
Jakub Michalski
77834f2069 fs: implement zephyr fs api for virtiofs
This commit implements zephyr filesystem operations for virtiofs

Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2025-07-23 12:20:22 -04:00
Jakub Michalski
02b18136e2 fs: add virtiofs operations
This commit adds virtiofs functions implementing fuse operations required
to enable zephyr filesystem support

Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
2025-07-23 12:20:22 -04:00
Jakub Michalski
b28483a3fe fs: add fuse primitives
This commit adds fuse structures, requests and functions to fill them

Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
2025-07-23 12:20:22 -04:00
Tom Burdick
7e9d994aa3 samples: rtio: Simple producer consumer sample
A simple sample showing how an interrupt (or thread) could produce data
a thread (potentially a user mode thread) could then consume.

Some great suggestions added thanks to Luis Ubieda
<luisf@croxel.com> to show multishot in use which avoids extra
syscalls in the tight processing loop of the consumer.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2025-07-23 17:19:04 +01:00
Matthias Hauser
9158d909ff maintainers.yml: add section for Wurth Elektronik sensor drivers and boards
maintainers.yml: add section for Wurth Elektronik sensor drivers and boards

Signed-off-by: Matthias Hauser <Matthias.Hauser@we-online.de>
2025-07-23 17:18:32 +01:00
Anas Nashif
23243e9d04 boards: intel_adsp: overhaul board.cmake
Remove duplication and simplify

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-07-23 17:17:44 +01:00
Vijayakannan Ayyathurai
04336baf90 samples: net: zperf: Enable i226 config with Intel Alderlake
The Zperf sample application was chosen to demonstrate basic network
functionality and high-performance use cases. This application serves
as a reference for users who wish to enable other network sample
applications.

In addition to the essential configurations for the Intel i226 Ethernet
controller, stack-specific configurations were added to ensure stability
under heavy network loads. These configurations include adjustments to
buffer sizes, interrupt handling, and DMA descriptor management.

Signed-off-by: Vijayakannan Ayyathurai <vijayakannan.ayyathurai@intel.com>
2025-07-23 17:17:24 +01:00
Vijayakannan Ayyathurai
0b91c7f23e dts: x86: Add i226 device-tree config for Intel Alderlake
Foxville LM (0x125B) i226 variant and Intel Alder Lake platform was
used for developing and stabilizing the i226 Ethernet device driver.
However, users can reuse the provided device tree models as a reference
when enabling the support for other i226 variants and platforms.

This device-tree model include essential configurations for the i226
Ethernet controller, such as PCIe settings, interrupt mappings, Phy
MDIO, and DMA descriptor configurations.

Signed-off-by: Vijayakannan Ayyathurai <vijayakannan.ayyathurai@intel.com>
2025-07-23 17:17:24 +01:00
Vijayakannan Ayyathurai
8a32bd7cd0 drivers: ethernet: intel: Add i226 Ethernet MAC device driver
The Intel i226 Ethernet Controller is a PCIe Gen 2 one-lane modular
endpoint device that integrates a GbE Media Access Control (MAC) and
Physical Layer (PHY) port. This driver provides support for MAC and
DMA-specific initialization and runtime TX/RX operations.

Key features:
- MSI-X interrupts for TX/RX DMA channels.
- Multiple TX/RX DMA channel support with exclusive bottom-half.
- Implements a circular descriptor ring architechture with
  producer-consumer semantics for high performance pkt processing.
- Full duplex support for 10/100/1000 Mbps.
- Half duplex support for 10/100 Mbps.
- Auto-negotiation for 10/100/1000 Mbps.
- MTU customization for flexible packet sizes.
- MAC address filtering based on:
  - Random MAC generation.
  - Local-mac-address mentioned in device tree.
  - EEPROM pre-programmed mac address.
  - Setting mac address via net shell.
- Support for multiple Ethernet interface instances.

Signed-off-by: Vijayakannan Ayyathurai <vijayakannan.ayyathurai@intel.com>
Signed-off-by: Ling Pei Lee <pei.lee.ling@intel.com>
2025-07-23 17:17:24 +01:00
Vijayakannan Ayyathurai
c62b3d9637 drivers: mdio: Add Intel i226 MDIO driver support
Intel i226 MAC supports MDIO C22 and MDIO C45. Standard PHY registers
are accessible through MDIO C22, whereas PMAPMD and PCS are accssible
through MDIO C45.

Signed-off-by: Vijayakannan Ayyathurai <vijayakannan.ayyathurai@intel.com>
2025-07-23 17:17:24 +01:00
Vijayakannan Ayyathurai
affecd1839 drivers: ethernet: Add platform driver for MMIO mapping reuse
The Ethernet device model consists of multiple subsystem components, such
as MDIO, PHY, MAC and PTP_CLOCK. These components are mapped into a single
PCIe BAR location with same base address.

This platform driver retrieves the MMIO mapping details and provides a
framework to share it with all the child subsystem components. This
approach avoid the duplicate remapping, ensures efficient re-use of
MMIO mappings across related devices.

Example device tree structure for first ethernet instance:

parent0: parent0 {
        compatible = "intel,eth-plat";
        interrupt-parent = <&intc>;
        vendor-id  = <0x8086>;
        device-id  = <0xXXXX>;

        igc0: igc0 {
                compatible = "intel,igc-mac";

                /*
                 * MAC specific properties.
                 */

                status = "okay";
        };

        mdio0: mdio0 {
                compatible = "intel,igc-mdio";
                #address-cells = <1>;
                #size-cells = <0>;

                ethphy0: ethernet-phy@0 {
                        compatible = "ethernet-phy";
                        /*
                         * PHY specific properties.
                         */
                        reg = <0x0>;
                };
        };
};

This framework is modular and re-usable for other PCIe based Ethernet
devices. It can also be extended to support additional platform specific
information shared across child nodes.

Signed-off-by: Vijayakannan Ayyathurai <vijayakannan.ayyathurai@intel.com>
2025-07-23 17:17:24 +01:00
Fabio Baltieri
ad998d6f36 Revert "driver: serial: uart_ns16550: Add pm support for uart_ns16550 driver"
This reverts commit fd88386a9f, it breaks
uart support on ITE platforms when PM is enabled but PM_RUNTIME is not,
possibly others as well.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-07-23 17:16:40 +01:00
Biwen Li
47b07e5a09 tests: drivers: pwm: add overlay file for imx943_evk m33
Add overlay file for imx943_evk m33 to use flexio as pwm

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2025-07-23 09:40:15 +02:00
Carles Cufi
d2bf480d53 boards: nordic: nrf54lm20dk: Conditionally enable hw stack protection
This is a follow-up of commit 9a9ae6ffdb,
specifically for the nRF54LM20 DK, which was not included in the
previous commit.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2025-07-23 09:36:50 +02:00
Tim Lin
648919f6df drivers/i2c: it51xxx: Refactor ISR to reduce clock stretch in PIO mode
Move handling of write-to-clear status and stop detect to the
beginning of the ISR for PIO mode to reduce unnecessary clock
stretching and improve responsiveness during transfers.

This patch also separates status clearing for shared FIFO mode,
ensuring it is done at the appropriate point after data handling
completes, maintaining correct transfer behavior.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-07-23 09:36:37 +02:00
Thomas Stranger
b8bfa36250 dts: arm: st: stm32h5: fix flash erase timing
According to the datasheet the flash erase timing is
typically 2ms, and max 10ms.

H503: DS14053 Rev 4: section 5.3.10, table 45, t_erase_max=10ms
H562/H563: DS14258 Rev 6: section 5.3.11, table 51, t_erase_max=10ms

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2025-07-23 09:34:46 +02:00
Chris Friedt
05305e2647 lib: libc: common: time: do not set errno in time()
The ISO C function time() is not specified to set the global
errno variable, so remove that in case there are side-effects.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-07-23 09:34:36 +02:00
Georgij Černyšiov
54e16c4ad2 drivers: mipi_dbi: stm32: get fmc frequency correctly
Use clock api to get correct FMC clock frequency.

Signed-off-by: Georgij Černyšiov <geo.cgv@gmail.com>
2025-07-23 09:34:08 +02:00
Nick Ward
38c3225af6 drivers: sensor: bmi323: use sensor_value_from_micro()
Use sensor_value_from_micro() helper.

Signed-off-by: Nick Ward <nix.ward@gmail.com>
2025-07-23 09:33:59 +02:00
Jilay Pandya
1c48baf74e doc: migration_guide: 4.3 add entry for renaming zephyr,gpio-stepper
- migration guide entry for renaming zephyr,gpio-stepper to
zephyr,h-bridge-stepper
- rename zephyr,gpio-stepper to zephyr,h-bridge-stepper in stepper.rst

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-07-23 09:33:15 +02:00
Bas van Loon
d56f5f7b0e soc: mimxrt11xx: Allow to override SYS PLL2/3 output divider(s).
To reduce the SEMC clock to a usable speed we had to divide down
the output clock of System PLL2 PFD1. To do this I had to override
the hardcoded defaults. This commit adds the flexibility to
override them in your board files.

Signed-off-by: Bas van Loon <bas@arch-embedded.com>
2025-07-23 09:32:53 +02:00
Bas van Loon
70b96f43fb soc: mimxrt11xx: Work around USDHC errata.
Errata ERR050396 causes data corruption if writes happen to TCM memory
so work around it by not marking AXI transaction cacheable. Workaround
taken from NXP SDK example.

Signed-off-by: Bas van Loon <bas@arch-embedded.com>
2025-07-23 09:32:43 +02:00
Guennadi Liakhovetski
c99605126c llext: only invalidate instruction cache where needed
When preparing LLEXT ELF sections only invalidate instruction cache
of executable sections. Also skip the step on platforms, managing
cache at the application level.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2025-07-23 09:32:34 +02:00
Thomas Altenbach
b7967f7ef4 samples: drivers: spi_flash: Use valid addresses/sizes for dual-flash
When a board contains two identical flash memories configured in
parallel dual-flash mode, the actual sector size is twice the sector
size of a single flash memory. So, assuming 4-KiB sectors for each flash
memory, any erase operation must be 8-KiB aligned.

This commit updates the start offset and sector size in the spi_flash
sample to be properly aligned when a dual-flash configuration is used.

At the moment, this is only supported for STM32-based boards and QSPI
flash memories.

Signed-off-by: Thomas Altenbach <altenbach.thomas@gmail.com>
2025-07-23 09:32:22 +02:00
Thomas Altenbach
513073b598 drivers: flash: stm32_qspi: Fix erase size for dual-flash
When dual-flash mode is enabled, any erase operation is executed on both
flash memories in parallel. This means from the flash driver's point of
view, the size of a given sector/block is twice the size of a
sector/block on a single flash memory.

For example, assuming 4-KiB sectors for each flash memory, if the flash
driver is asked to erase at address 0x0000, the erase size must be a
multiple of 8 KiB since each sector erase operation will cause a 4-KiB
sector to erased in each flash memory.

Before this commit, the doubled erase size was only considered in
'setup_pages_layout'. Now, the actual sizes of the erase operations are
properly set in the flash driver's data and are used everywhere in the
driver.

Signed-off-by: Thomas Altenbach <altenbach.thomas@gmail.com>
2025-07-23 09:32:22 +02:00
Thomas Altenbach
8c638f29fd drivers: flash: stm32_qspi: Fix page size for dual-flash
When dual-flash mode is enabled, even bytes are written to the first
flash memory and odd bytes to the second flash memory. This means, from
the flash driver's point of view, the size of a flash page is twice the
size of a single flash memory's page.

So if each flash memory has 256-byte pages, 512 bytes should be used as
page size by the flash driver. Using 256 bytes was working fine but is
suboptimal.

Signed-off-by: Thomas Altenbach <altenbach.thomas@gmail.com>
2025-07-23 09:32:22 +02:00
Thomas Altenbach
c4afaaacf6 drivers: flash: stm32_qspi: Fix status register access for dual-flash
When dual-flash mode is enabled, two identical flash memories are
connected to the QUADSPI peripheral, each having its own set of
registers. This means that when reading or writing a flash register,
this has to be made for both flash memories.

For example, when reading a status register (1 byte), the QUADSPI
peripheral must be configured to read two bytes of data, which
correspond respectively to the value of the register in the first and
second flash memory. Same thing when writing.

Before this commit, when dual-flash mode was enabled, only the register
of the first flash memory was considered, which means the second flash
memory could be incorrectly configured and that any write/erase
operation could be considered as completed too early, if the operation
takes more time to complete for the second flash memory.

Signed-off-by: Thomas Altenbach <altenbach.thomas@gmail.com>
2025-07-23 09:32:22 +02:00
Thomas Altenbach
f9f6b24166 drivers: flash: stm32_qspi: Factorize all status register reads
The 'qspi_read_status_register' routine implements the reading of a
flash memory's status register. This routine is used anytime reading a
status register is needed, except in 'qspi_wait_until_ready'. This
commit moves the read routine to be able to use it in
'qspi_wait_until_ready'. The 'qspi_write_status_register' is also moved
to keep it close to the read routine.

Signed-off-by: Thomas Altenbach <altenbach.thomas@gmail.com>
2025-07-23 09:32:22 +02:00
Thomas Altenbach
20beb3eb74 drivers: flash: stm32_qspi: Simplify #ifdef for dual-flash
In multiple places, "#if DT_PROP(DT_NODELABEL(quadspi), dual_flash) &&
defined(QUADSPI_CR_DFM)" was used to guard sections specific to
the dual-flash feature. This is quite long and "#ifdef
STM32_QSPI_DOUBLE_FLASH" is now used instead.

Note the presence of QUADSPI_CR_DFM is no more checked. This is not
considered as an issue since when QUADSPI_CR_DFM is not available, the
QSPI hardware doesn't support dual-flash mode so this mode must not be
enabled in the devicetree. With that change, enabling dual-flash mode
when not available causes a compile-time error.

Signed-off-by: Thomas Altenbach <altenbach.thomas@gmail.com>
2025-07-23 09:32:22 +02:00
Mike Szczys
5f1e9a3523 drivers: uart_mcumgr: log warning when smp drops data
Add warning logs when data is dropped on the serial transport by the smp
system due to buffer overrun.

Signed-off-by: Mike Szczys <mike@golioth.io>
2025-07-23 09:32:06 +02:00
Robert Lubos
520ce6a522 manifest: Pull net-tools HTTP server scripts fixes
Pull latest fixes for HTTP(s) server scripts.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-07-23 09:31:49 +02:00
Robert Lubos
eacd745627 samples: net: http_client: Avoid parallel IPv4/IPv6 sessions
Apparently the simple python HTTPS server the sample is interfacing,
cannot handle parallel TLS sessions (just one at a time), hence
establishing both IPv4/6 connections before sending request doesn't work
well, half of the requests are dropped. Therefore, modify the sample a
little to run only one TLS (or TCP if no TLS is used) connection at a
time.

Additionally, add a log in case HTTP client request fails, as it could
easily be overlooked if something went wrong.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-07-23 09:31:49 +02:00
Robert Lubos
82be9354ee samples: net: http_client: Update TLS configuration
Python HTTPS server counterpart for the sample now seems to enforce
ECDHE key exchange, so enable it in the sample.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-07-23 09:31:49 +02:00
Benjamin Cabé
99138170b3 scripts: requirements: remove lxml dependency
No more users of lxml in the tree so drop the 3rd party dependency (it
might still be pulled in by other projects, ex. gcovr).

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-07-23 09:31:28 +02:00
Benjamin Cabé
65f2833638 scripts: tests: twister_blackbox: drop lxml dependency
No need to rely on lxml for such a simple XML parsing task.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-07-23 09:31:28 +02:00
Benjamin Cabé
db47c899e3 scripts: ci: check_compliance: no need for lxml anymore
Remove an old workaround requiring lxml to be present as junitparser was
not working with xml.etree.ElementTree until version 3.0.0.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-07-23 09:31:28 +02:00
Benjamin Cabé
82c955ab7c scripts: net: Remove dependency to lxml in enumerate_http_status.py
Using the third party lxml library for the very simple parsing task this
script performs in unnecessary, so switch to Python's built-in
HTMLParser.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-07-23 09:31:28 +02:00
Robert Hancock
45eedaa614 drivers: ethernet: phy: vsc8541: allow disabling autonegotiation
Add support for disabling autonegotiation to the cfg_link callback, as
with the phy_mii driver.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-07-23 09:31:17 +02:00
Robert Hancock
aab1f68d08 drivers: ethernet: phy: vsc8541: Add timeout on SW reset
The driver previously could enter an infinite loop if the PHY software
reset failed to complete, which could happen due to hardware reset
issues or MDIO bus problems. Add a timeout of 1000 iterations so we
report an error in this scenario rather than causing a lockup.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-07-23 09:31:17 +02:00
Robert Hancock
aa85d76777 doc: migration guide: ethernet: Mention vsc8541 reset changes
Mention a change to the reset-gpios handling in the vsc8541 PHY driver.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-07-23 09:31:17 +02:00
Robert Hancock
211e9ea6bd drivers: ethernet: vsc8541: Fixed inverted reset GPIO
For GPIOs driving active-low signals, such as the VSC8541's reset pin,
they are supposed to be declared as active low in the device tree, and
set to 1 to assert and 0 to clear. Change the driver as such so that it
does not leave the PHY stuck in reset when so configured.

Also changed all in-tree board DTS files for this PHY to properly
declare the reset GPIO as active low.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-07-23 09:31:17 +02:00
Robert Hancock
07f45204cb drivers: ethernet: phy: vsc8541: Use 16-bit values for MDIO access
The internal register read/write functions used uint32_t for the values
even though the registers are only 16 bits wide, resulting in a bunch of
casting. Change the internal functions to use uint16_t and wrap them for
the external read/write API which uses uint32_t.

Signed-off-by: Robert Hancock <robert.hancock@calian.com>
2025-07-23 09:31:17 +02:00