Commit graph zephyr/soc
Author SHA1 Message Date
Sreeram Tatapudi
60b1c56521 soc: infineon: pse84: add CM33 non-secure SoC support
Add support for SOC_PSE846GPS2DBZC4A_M33_NS

Signed-off-by: Sreeram Tatapudi <sreeram.praveen@infineon.com>
2026-03-24 09:54:11 +01:00
cyliang tw
1cdd2b6b69 soc: nuvoton: numaker: add support for m335x series
Add initial support for nuvoton numaker m335x SoC series
including basic init and device tree source include.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2026-03-24 05:27:23 +01:00
Tim Pambor
06239709b6 soc: stm32: gpioport_mgr: introduce HSLV support
Add support for configuring the High-Speed Low-Voltage (HSLV) mode
in the GPIO port manager based on the DT configuration. This
enhancement allows for improved performance at lower voltages.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-03-23 12:34:36 -05:00
Tony Han
4f5697c184 soc: microchip: sam: common: add routines for handling IRQ by AIC
Add routines for handling interrupt requests by calling the functions
in AIC driver.

Signed-off-by: Tony Han <tony.han@microchip.com>
2026-03-23 12:27:55 -05:00
Łukasz Kędziora
3c3a6f8d5a soc: Add support for Synaptics SR100
This adds the soc files for the Synaptics SR100 SoC.

Signed-off-by: Łukasz Kędziora <lkedziora@antmicro.com>
Signed-off-by: Piotr Zierhoffer <pzierhoffer@antmicro.com>
Signed-off-by: Andreas Weissel <andreas.weissel@synaptics.com>
Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2026-03-23 10:40:33 -04:00
Daniel Leung
0b9c03b880 soc: cdns/swerv: add support for S420
This adds support for Cadence SweRV S420 SoC which is similar
to S400 but with support for 2 threads.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2026-03-23 08:56:34 -04:00
Daniel Leung
9a1e76b193 soc: add support for Cadence SweRV S400
This adds SoC config for Cadence SweRV S400 SoC.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2026-03-23 08:56:34 -04:00
Zhiyuan Tang
10afa8eed9 soc: realtek: update interrupt init for rtl87x2g and rtl8752h
Use `IRQ_CONNECT` to register the ROM-implemented `Peripheral_Handler`
for `Peripheral_IRQn` on rtl87x2g and rtl8752h SoCs.

This bridges the hardware-specific Level 1 interrupt routing from the
ROM into Zephyr's standard IRQ system, making sure that the
sub-interrupts under `Peripheral_IRQn` are properly enabled and functional.

Signed-off-by: Zhiyuan Tang <zhiyuan_tang@realsil.com.cn>
2026-03-23 08:53:23 -04:00
Sylvio Alves
cd2749c039 soc: espressif: fix GDB crash on Espressif targets
GDB crashes with a segfault when loading ELF files built
for Espressif SoCs. Starting with GDB 13 (commit
5abbfa982215), finish_block_internal() calls
SECT_OFF_TEXT(m_objfile) which requires sect_index_text to
be initialized. This index is only set when a section
named exactly ".text" exists in the ELF. Without it, the
index stays at -1 and GDB segfaults (upstream PR 25678).

Espressif linker scripts named the flash-mapped code
output section ".flash.text" instead of ".text", so the
final ELF had no ".text" section. Other Xtensa vendors
(Intel ADSP, Cadence) use ".text" as their output section
name and collect .iram0.text as input into it, avoiding
the problem.

Fix this by renaming the ".flash.text" output section to
".text" across all Espressif SoC linker scripts. The
section name is internal to the linker script; the runtime
loader uses linker-generated symbols (_image_irom_start,
etc.), not section names. This change is transparent to
the boot path, flash image generation, and MMU mapping.

Affected SoCs: ESP32, ESP32-S2, ESP32-S3, ESP32-C2,
ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-03-23 08:48:02 -04:00
Zhiyuan Tang
1e88b1b01f soc: dts: realtek: add bluetooth support for rtl8752h
- Define the HCI node in the SoC series' dtsi.
- Adjust main thread stack sizes and buffer counts required for
  Bluetooth operation.
- Enable meta-irq to configure the bee-bt-controller thread as a
  meta-irq thread.

Signed-off-by: Zhiyuan Tang <zhiyuan_tang@realsil.com.cn>
2026-03-23 10:18:15 +01:00
Hau Ho
93dfb1c8ac soc: renesas: rx: Initial support for RX14T SOC
This commit to initial support for RX14T SOC using Renesas RXv2 core.

Signed-off-by: Hau Ho <hau.ho.xc@bp.renesas.com>
2026-03-23 10:16:41 +01:00
Rick Tsao
6cbcb74175 soc: egis: et171: add Andes StackSafe support
Add Andes StackSafe support for Egis ET171.

Signed-off-by: Rick Tsao <rick592@andestech.com>
2026-03-21 07:51:15 -05:00
Rick Tsao
56d8837c81 soc: telink: tlsr951x: add Andes StackSafe support
Add Andes StackSafe support for TLSR951x series.

Signed-off-by: Rick Tsao <rick592@andestech.com>
2026-03-21 07:51:15 -05:00
Rick Tsao
109ae98c1c arch: riscv: custom: add Andes StackSafe support for custom stack guard
Implement the custom stack guard using the Andes StackSafe hardware
stack protection. It triggers an exception on stack overflow when the
stack pointer exceeds the configured limit.

Signed-off-by: Rick Tsao <rick592@andestech.com>
2026-03-21 07:51:15 -05:00
Joel Holdsworth
a6ebd549ba soc: qemu: Added qemu_or1k simulated SoC
Qemu includes support for the OpenRISC 1000 CPU architecture. This patch
adds a Zephyr SoC definition which enables usage of this feature.

The SoC definition closely mirrors the Qemu MIPS Malta SoC definition.

Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
2026-03-21 07:50:57 -05:00
Peter Ujfalusi
616a0a6ab1 intel_adsp: ace4: adsp_power.h: Declare intel_adsp_clock_soft_off_exit()
Compiling for NVL/NVL-S reports:
warning: implicit declaration of function 'intel_adsp_clock_soft_off_exit'

Because the ace4 version of adsp_power.h is missing the declaration of
intel_adsp_clock_soft_off_exit().

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2026-03-20 12:36:39 -05:00
Mathieu Choplain
71aa3be37b soc: st: stm32: compute CONFIG_NUM_IRQS automatically
Use new Kconfig preprocessor helper to compute CONFIG_NUM_IRQS during build
instead of hardcoding it based on product Reference Manual

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-03-20 12:34:28 -05:00
Etienne Carriere
1bbc9edff1 soc: st: stm32n6x: check address range for non-secure execution
Make the build to fail when CONFIG_TRUSTED_NONSECURE is enabled and
the DT files do not provide the non-secure memory address ranges.
The test only checks pinctrl node which should be enough to ensure
other the right peripherals address range is applied.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-20 12:34:14 -05:00
Etienne Carriere
dfe71f0d16 soc: st: stm32n6x: some SoC subseries do not embed any NPU
Condition NPU configuration to NPU_PRESENT directive from the STM32 HAL
to prevent build errors when targeting a STM32N6xx series that do not
implement the NPU.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-20 12:34:14 -05:00
Etienne Carriere
b923009826 soc: st: stm32n6xx: relax TRUSTED_EXECUTION_SECURE config symbol value
Do not enforce enabling of CONFIG_TRUSTED_EXECUTION_SECURE for
stm32n6x SoC series. This prepare support for non-secure Zephyr
application on related platforms.

This change requires that all board defconfig files running application
in secure state need to explicitly enable TRUSTED_EXECUTION_SECURE
since it is indirectly expected by STM32 HAL for embedding resources
related to security features as SAU support and RIF firmware configuration
functions.

Update migration guide accordingly.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-20 12:34:14 -05:00
Etienne Carriere
1d38a4ac04 dts: arm: st: n6: allow use of non-secure IOMEM address ranges
Change stm32n6xx SoCs DTSI files to ease how a board can use the
secure or non-secure IOMEM and internal SRAMs address ranges depending
on whether the Zephyr application runs in secure or non-secure
world. This relies on use of the ranges DT property.

By default, the existing stm32n6xx SoC DTSI files define the secure
address mapping as prior this change, hence no functional changes.

Boards/platforms embedding a stm32n657X0 compliant SoC and expecting
to run in non-secure world can apply use the standard SoC DTSI file
and apply last stm32n657X0_ns.dtsi overlay file to select the non-secure
mapping address ranges.

For this purpose, use ranges DT properties and a node level for
peripherals and SRAMs:
- Insert axisram12@24000000 node level for the AXI SRAM1 and SRAM2 nodes
  with a ranges property to define the address range of these
  internal RAMS.
- Add a ranges property in ramcfg@* nodes to define the address ranges
  for the AXI SRAMs they each define.
- Insert peripherals@40000000 node level with a ranges property for the
  peripherals in soc node and its subnode to define the address ranges
  applied.

Update stm32n6x ram_check.ld linker script to consider address ranges
instead of the reg property raw value.

Update the HAL reference that bring pinctrl DTSI files that must be
consistent with the SoC DTSI files regarding pinctrl node path change.

Sync on a MCUboot repo change to consider ranges in stm32n6 memory DT
node properties.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-20 12:34:14 -05:00
Pete Johanson
ff866ea3ed soc: max32: Add RV32 core reboot support
Implement custom reboot support for the MAX32 RV32 core using the reset
register.

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2026-03-20 12:34:01 -05:00
Mathieu Choplain
3e9e139565 drivers: pinctrl: stm32: move iosync configuration to common code
Perform iosync configuration in the common stm32_gpioport_configure_pin()
function instead of doing it from the pinctrl driver. This simplifies the
pinctrl driver and also opens the door to iosync configuration using the
GPIO API (via vendor-specific extensions) in the future.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-03-20 09:57:51 -05:00
Erwan Gouriou
fec56d3076 soc: stm32: common: Add xspi manager
Implement a device driver for XSPI manager.
This allows to define the xspi controllers configuration that should
be applied towards the xspi IO ports:
- Muxed
- Swapped
- ...

Since its configuration has impact on final application location and
implies the deactivation of xspi clocks, it should be run only at fsbl
stage and not later.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2026-03-20 20:46:57 +09:00
Julien Racki
88d8624c4f soc: st: Add the STM32WBA2x MCUs
Add the new stm32wba20/3/5x MCUs from the WBA family

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2026-03-20 20:44:45 +09:00
Julien Racki
5afaa51220 soc: st: stm32: stm32wbax: Add a check for PWR_STOP3_SUPPORT
Check if PWR_STOP3_SUPPORT is defined because if it is
SRAM1 does not support page-granular retention (pages 2–7).

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2026-03-20 20:44:45 +09:00
Zhaoxiang Jin
9d6208a4fc drivers: timer: switch to use generic APIs
1. Keep drivers/timer/cortex_m_systick.h as a compatibility
shim for legacy Cortex-M-specific names.

2. Switch to use the generic low-power companion timer API
for the Cortex-M SysTick driver.

3. Mark the global CORTEX_M_SYSTICK_LPM_* kconfig options
as 'DEPRECATED' and replace them with SYSTEM_TIMER_LPM_*

4. Rename 'zephyr,cortex-m-idle-timer' to
'zephyr,system-timer-companion'

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-03-20 07:12:56 +01:00
Marek Matej
404a36ed58 soc: espressif: fix llext_heap missing
Some test failed because of orphaned section caused by missing
sections. This fixes the issue by including common-noinit.ld.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2026-03-20 07:10:42 +01:00
Michal Smola
f9884ed503 soc: nxp mcxl25x: add initial support for NXP MCXL25x series
NXP MCXL25x SoCs are not supported. Add initial support.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2026-03-20 13:32:47 +09:00
Andy Lin
0d77bc3516 soc: raspberrypi: rp2350: m33: Add MPU entry for ROM region
Add the MPU entry representing ROM region.

This configuration is incompatible with
`CONFIG_NULL_POINTER_EXCEPTION_DETECTION_MPU`. The first 32 bytes
of ROM contains some read-only data used by certain ROM functions.
Enabling this can break some ROM functions.

Refer to: https://github.com/raspberrypi/pico-bootrom-rp2350

Signed-off-by: Andy Lin <andylinpersonal@gmail.com>
2026-03-19 17:10:26 -05:00
Andy Lin
fb14a83976 soc: raspberrypi: rp2040: Add MPU entry for ROM region
Add the MPU entry representing ROM region.

This configuration is incompatible with
`CONFIG_NULL_POINTER_EXCEPTION_DETECTION_MPU`. The first 256 bytes
of ROM contains some read-only data used by certain ROM functions.
Enabling this can break some ROM functions.

Refer to: https://github.com/raspberrypi/pico-bootrom-rp2040

Signed-off-by: Andy Lin <andylinpersonal@gmail.com>
2026-03-19 17:10:26 -05:00
Dmitrii Sharshakov
f2dd01fd84 soc: raspberrypi: rp2350: add west sign for secure boot
Wrap the picotool sign command (requires recent picotool) to build
signed ELF files (which can be later converted to UF2 as well).

The resulting files boot, yet this has not been tested with actual
Secure Boot yet.

Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
2026-03-19 17:06:17 -05:00
Sylvio Alves
fd148b5d13 soc: espressif: add esp32c5 soc support
Add SoC-level support for the ESP32-C5, Espressif's first dual-band
Wi-Fi 6 SoC with a RISC-V core clocked up to 240 MHz and 384 KB SRAM.

The ESP32-C5 uses a CLIC interrupt controller (not PLIC like ESP32-C6).
CLIC requires special handling for mret to restore mintstatus.mil from
mcause.mpil: bit 31 (interrupt flag) must be set in mcause before mret,
otherwise mil is not restored and interrupts at the same level are
permanently blocked. This is handled via RISCV_SOC_CONTEXT_SAVE with
mcause and mintthresh save/restore in soc_irq.S, following the same
pattern used by GD32VF103 (Nuclei ECLIC) and Nordic VPR.

The systimer on ESP32-C5 always runs at 16 MHz regardless of the XTAL
frequency (40 or 48 MHz), which requires a SoC-specific override for
SYS_CLOCK_HW_CYCLES_PER_SEC.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-03-19 14:53:05 -05:00
Tahsin Mutlugun
8515e7222a dts: arm: adi: max32657: Add timer subnodes for Wake-up Timer
Add timer subnodes under the MAX32657 Wake‑up Timer device nodes to
enable system timer configuration in devicetree.

Also set default SYS_CLOCK_TICKS_PER_SECOND to 8192 if Wake-up Timer is
selected as system timer.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2026-03-19 14:47:59 -05:00
William Markezana
d58277f4b7 soc: bflb: bl70x: add BLE controller integration
Add platform shims, FreeRTOS compatibility layer, and linker scripts
to support the BL702 on-chip BLE controller binary blob under Zephyr.

The BLE blob expects a FreeRTOS environment and vendor HAL functions.
This commit provides:

- FreeRTOS API shim (xTaskCreate, xQueueGenericSend, pvPortMalloc,
  etc.) mapping to Zephyr kernel primitives (k_thread, k_msgq,
  k_malloc)
- Platform shims for bl_irq_*, bl_timer_*, BL702_Delay_*, GLB_*,
  and UART stub functions the blob references
- RF calibration callbacks required by libbl702_rf.a
- Linker scripts placing BLE/FreeRTOS ROM writable data regions and
  __global_pointer$ for GP-relative addressing from ROM code
- ROM function address table (PROVIDE symbols) as fallback for
  un-shimmed FreeRTOS functions
- HAL module CMakeLists selecting controller library variant and
  linking BLE/RF blobs
- Exchange memory configuration (8KB) when BLE is enabled
- RISCV_NO_MTVAL_ON_FP_TRAP selection for FPU trap handling

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-03-19 14:47:46 -05:00
Tahsin Mutlugun
2036391eb2 soc: adi: max32: Manage idle mode timer during suspend-to-RAM
If runtime power management is enabled for idle mode timer, it must be
explicitly resumed after waking up from suspend-to-RAM modes. Call
pm_device_runtime_put() before suspending to decrement the usage counter
so that pm_device_runtime_resume() can successfully resume the device
after wake up.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2026-03-19 17:03:30 +01:00
Sean Kyer
e21c94f2e9 soc: adi: max32: Add backup power mode
Add support for backup/S2RAM power mode.

Co-authored-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
Signed-off-by: Sean Kyer <Sean.Kyer@analog.com>
2026-03-19 17:03:30 +01:00
Aksel Skauge Mellbye
17845e8ba7 dts: arm: silabs: Add xg28 SoCs
Add support for remaining EFR32ZG28, FG28 and PG28 SoCs

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2026-03-19 17:02:21 +01:00
Bjarki Arge Andreasen
d377e4ac62 soc: nordic: nrf71: Update MPC to allow unpriv access for all cores.
The MPC is currently set up to allow R,W,X,Priv access to all RAM
and MRAM for all cores. This is not sufficient if CONFIG_USERSPACE
is enabled, in which case the application core will be accessing
memory unprivileged, using the MPU to manage memory access.

Update MPC configuration to allow R,W,X,Unpriv access to all RAM and
MRAM for all cores. The R,W,X MPC configuration has to be applied
regardless of CONFIG_USERSPACE, so no need to conditionally include
the MPU configuration based in CONFIG_USERSPACE.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
               Travis Lam <travis.lam@nordicsemi.no>
2026-03-19 17:01:50 +01:00
Soumya Tripathy
f4293ce486 soc: ti: k3: am6x: enable TI K3 UART config for A53 cores
Enable UART_NS16550_TI_K3 driver by default for AM6X A53 cores.
This ensures the TI K3 specific UART variant is used on A53 cores,
matching the configuration already enabled for M4 and R5 cores.

Signed-off-by: Soumya Tripathy <s-tripathy@ti.com>
2026-03-19 17:01:26 +01:00
Filip Stojanovic
3a5188803a soc: st: stm32u3: Add STM32U3C5 SoC entry
Add STM32U3C5 SoC entry to STM32U3 series.

Signed-off-by: Filip Stojanovic <filipembedded@gmail.com>
2026-03-19 17:00:13 +01:00
Khai Cao
fc876a03e4 soc: renesas: ra: Add Kconfig.sysbuild for second-core launcher
Add Kconfig.sysbuild for ra8t2 second-core launcher

Signed-off-by: Khai Cao <khai.cao.xk@renesas.com>
2026-03-19 16:59:26 +01:00
Vincent Tardy
5c1bc9351f soc: stm32wba: threads stack size and priority configuration via KConfig
definition of KConfigs STM32WBA_LL_THREAD_STACK_SIZE,
STM32WBA_BLE_CTLR_THREAD_STACK_SIZE, STM32WBA_LL_THREAD_PRIO,
and STM32WBA_BLE_CTLR_THREAD_PRIO to confige the
threads dedicated to BLE Controller and Link Layer
process.

Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
2026-03-19 16:58:28 +01:00
Vincent Tardy
2a71bd41ff soc: stm32: ble and link layer threads initialization change
Ble host and link layer threads initialization is no more done
during the system initialization.
Add stm32wba_ble_ctlr_thread_init() and
stm32wba_ll_ctlr_thread_init() functions calls
during ble and ieee802.15.4 driver initialization

Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
2026-03-19 16:58:28 +01:00
Etienne Carriere
14f90d95dd soc: st: stm32l1x: fix missing header files in poweroff driver
Add missing header file in stm32l1x poweroff.c drivers to get
stm32_enter_poweroff() and LL_DBGMCU_DisableDBGStandbyMode() declared.

Remove inclusion of stm32_ll_cortex.h that is not needed.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-19 11:55:37 +00:00
Etienne Carriere
8f3c7f8188 soc: st: stm32f1x: fix missing header file in poweroff driver
Add missing header file in stm32f1x poweroff.c drivers to get
LL_DBGMCU_DisableDBGStandbyMode() declared.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-19 11:55:37 +00:00
Etienne Carriere
02be62710a soc: st: stm32wbax: fix missing header file in poweroff driver
Add missing header file in stm32wbax poweroff.c drivers to get
LL_DBGMCU_DisableDBGStandbyMode() declared.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2026-03-19 11:55:37 +00:00
Jamie McCrae
d4f728a78f soc: nordic: common: tfm: kconfig: Add nRF53/nRF91 trustzone config
Adds default values for these SoC series

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-03-19 11:50:22 +00:00
Adam Kondraciuk
df2f7cb16c dts: nordic: nrf54l: Add FLPR core support for nrf54L targets
Added FLPR support for nRF54L05 and nRF54L10 targets.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
2026-03-19 11:43:29 +00:00
Jacob Wienecke
73034e9e52 soc: nxp: imxrt118x: fix boot container image entry fields
The image array entry in the boot container had incorrect values for
offset, size, and load_addr fields, preventing use with NXP Secure
Provisioning Tool (SPT).

The offset was calculated as -1 * CONFIG_IMAGE_CONTAINER_OFFSET
(0xFFFFF000) instead of CONFIG_CONTAINER_USER_IMAGE_OFFSET (0xA000).
The size and load_addr fields did not account for the header region.

These fields now correctly reflect the flash layout with container
at 0x1000 and application code at 0xB000.

Signed-off-by: Jacob Wienecke <jacob.wienecke@nxp.com>
2026-03-19 11:40:35 +00:00