Commit graph zephyr/soc
Author SHA1 Message Date
Fin Maaß
30d7a425ce soc: esp32: riscv: use atomics
use riscv atomic extension if available.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-04-22 08:11:30 -05:00
Yassine El Aissaoui
4272a109bc soc: nxp: Add Radio Max TX power configuration
Adding support of Radio Max TX Power for MCXW family

Signed-off-by: Yassine El Aissaoui <yassine.elaissaoui@nxp.com>
2026-04-22 08:08:53 -05:00
Qiang Zhang
4bb97ebe90 drivers: dma: add NXP GDMA driver
Add driver support for NXP GDMA (General DMA) controller.

Adds GDMA peripheral reset initialization in the NXP RW SoC
initialization code.

Signed-off-by: Qiang Zhang <qiang.zhang_6@nxp.com>
2026-04-22 12:50:50 +02:00
Krzysztof Chruściński
230f3a91aa soc: nordic: Add option to implement user hook for entering idle
Some platforms (nrf53 and nrf54h) are using hook for entering
idle to execute SoC specific code. There can only be one hook
in the application so it was impossible for the user to add own
code that is executed in the hook.

Add CONFIG_NRF_CUSTOM_ON_ENTER_CPU_IDLE_HOOK option. If enabled,
the Nordic hook is not implemented. The user implements own hook.
It is the user's responsibility to include SoC specific part in
that hook.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-04-21 18:40:14 -04:00
William Markezana
ac1cce5869 soc: bflb: bl70xl: add BLE controller integration
Add BLE controller port layer (IRQ, clock, RF callbacks) and linker
scripts for the vendor binary blob.

ble_rwdata.ld: places .pds_code, .tcm_data, .retention and ROM data
with GP-relative addressing into the .data section (RWDATA).

ble_hbn.ld: places .hbn_code (RF functions) and .retention_noinit
into the RETRAM region (HBN RAM at 0x40010000). Provides linker
symbols __LD_CONFIG_EM_SEL and __LD_BLE_CORE_REG_SIZE consumed by
the controller blob.

soc.c: configure GLB_EM_SEL for 8KB (or 16KB for m8s1p) exchange
memory when BLE is enabled, and copy .hbn_code from flash to RETRAM
at boot.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-04-21 17:46:30 +01:00
Sylvio Alves
55d2bc7702 soc: espressif: update flash.rodata segment alignment
Add a LONG(0) at a 16-byte aligned start of .flash.rodata_end so
the merged flash.rodata segment size never lands on a boundary
that trips esptool's --ram-only-header alignment assertion during
elf2image.

Applied to all espressif socs since the issue is not chip-specific.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-04-21 17:44:26 +01:00
Laura Carlesso
47d4f2933f soc: infineon: pse84: Add SRF initialization to SOC
SRF needs to be initialized on the cm33ns soc to be used to
send requests to the SPE. Added configuration file and code
to properly initialize srf requests pool.

Signed-off-by: Laura Carlesso <laura.carlesso@infineon.com>
2026-04-21 10:24:15 +01:00
Krzysztof Chruściński
f28e027f3b soc: nordic: common: vpr: Option to select the default sleep mode
VPR after boot has default sleep mode set to WAIT which is the most
power hungry sleep mode. Typically, user expects to see low current
when system enters system-on-idle state. Set sleep mode that is
more suitable: DEEPSLEEP by default for nRF54H20 PPR which allows to
reach <5 uA idle current and has almost the same wake up time as WAIT,
HIBERNATE for other VPRs on non-NRF54H20. It allows to get <5 uA
currents in system-on-idle.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-04-21 10:23:33 +01:00
Zhaoxiang Jin
9f1c732338 soc: nxp: imxrt: generalize SECOND_CORE_MCUX documentation
Update the help text for CONFIG_SECOND_CORE_MCUX to be more generic
and applicable to all supported multi-core RT series (RT11xx, RT118x,
and RT7xx), rather than being specific to RT11xx and Cortex-M7/M4.

The updated documentation now refers to "primary core" and "secondary
core" instead of specific core types, making it more accurate for all
supported SoC series.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-04-21 10:23:02 +01:00
Krzysztof Chruściński
3145230f10 soc: nordic: common: gppi: Rework sd2ppi_global setup
Rework GPPI configuration for SD^2PPI global domain. There can
be an SoC which does not have dppic135, dppic136, ppib136 and
ppib137 nodes. Add build time conditions to configuration files.

Additionally, remove references to APBxx (bus) names which
could be confusing as they are not references anywhere else.
Use DPPIxxx identification instead.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-04-21 10:20:29 +01:00
Krzysztof Chruściński
2c4b1d1f61 soc: nordic: gppi: Move to feature specific structure
Move files which are specific to nrf54h20 global domain from nrf54h
folder to common. Rename those files to use sd2ppi name instead of
nrf54h. SD2PPI (or SD^2PPI) is an abbrevation for Secure Distributed
(multi-Domain) DPPI - PPI system where DPPI resources requires
Ironside service.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-04-21 10:20:29 +01:00
Elmo Lan
32b4873fd6 soc : realtek: ec: rts5912: add config for BRAM power
Add SOC_RTS5912_ULPM_POWEROFF_BRAM for user to decide
if the BRAM need keep power or not during ULPM.

SOC_RTS5912_ULPM_POWEROFF_BRAM default as n, means NOT to poweroff.

Signed-off-by: Elmo Lan <elmo_lan@realtek.com>
2026-04-21 10:19:38 +01:00
Jisheng Zhang
f121d24230 soc: syna: sr100: enable DSP and MVE instruction set
SR100 supports M-Profile DSP, Vector Extension (MVE) integer and
floating-point instruction set. This enables compute applications
such as DSP and machine learning.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
2026-04-20 17:51:53 -05:00
Sylvio Alves
31377905f2 soc: esp32s3: add IRAM placement for mspi_timing_by_mspi_delay
Place mspi_timing_by_mspi_delay text and rodata in IRAM/DRAM.
This file contains PSRAM and flash timing tuning functions
that must not run from flash during MSPI clock reconfiguration.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-04-20 18:11:24 +02:00
Dhanoo Surasarang
a03d8d0944 soc: nordic: nrf71: Enable VPR launcher sysbuild Kconfig for cpuflpr
Add missing Kconfig.sysbuild to enable VPR launcher image when
building for the FLPR core.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-04-20 18:04:28 +02:00
Jakub Zymelka
91830dd575 soc: nordic: remove haltium and lumos platform abstractions
1. Remove the NRF_PLATFORM_HALTIUM and NRF_PLATFORM_LUMOS Kconfig
symbols and eliminate all "haltium"/"lumos" naming from the zephyr
directory.
2. The shared haltium_power.c/h and haltium_pm_s2ram.c/h files from
soc/nordic/common/ are duplicated into the per-SoC-series directories
(nrf54h/ and nrf92/) as soc_power.c/h and soc_pm_s2ram.c/h. The
corresponding build rules are moved from common/CMakeLists.txt to the
per-series CMakeLists.txt files.
3. Kconfig guards that relied on the platform symbols are replaced with
individual hardware feature checks derived from nrfx/MDK:
- select NRFX_POWER if !NRF_PLATFORM_HALTIUM -> if HAS_HW_NRF_POWER
- CLOCK_CONTROL default ... !NRF_PLATFORM_HALTIUM -> HAS_HW_NRF_CLOCK
- depends on NRF_PLATFORM_LUMOS -> SOC_SERIES_NRF54L||SOC_SERIES_NRF71
4. C preprocessor guards using CONFIG_NRF_PLATFORM_HALTIUM are replaced
with explicit SoC series checks (CONFIG_SOC_SERIES_NRF54H ||
CONFIG_SOC_SERIES_NRF92).
5. The sysbuild option NRF_HALTIUM_GENERATE_UICR is renamed to
NRF_GENERATE_UICR.

Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2026-04-20 11:44:28 +02:00
Ren Chen
a43c19fc54 soc: ite: it51xxx: add kconfig for signature flag and mirror range addr
Add kconfig options for the signature flag and mirror comparison range
address, allowing projects to customize these settings.

Additionally, this change introduces custom signature extension section.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-04-20 08:28:02 +02:00
Lauren Murphy
24b75db466 llext: add CONFIG_LLEXT_CUSTOM_HEAP_PLACEMENT
Enclose default LLEXT heap section placements with
!CONFIG_LLEXT_CUSTOM_HEAP_PLACEMENT. Users who want to
write a custom linker script can include files like
snippets-noinit.ld, common-noinit.ld or the SOC linker
scripts without including the default LLEXT heap
section placements.

Signed-off-by: Lauren Murphy <lauren.murphy@intel.com>
2026-04-18 12:37:46 -04:00
Amneesh Singh
eb5af58b29 soc: ti: k3: am6x: update NUM_IRQ for A53
SoC series such as AM62x and AM62Lx use the GIC500 module. This module
supports up to 16 SGIs, 16 PPIs and 960 SPIs. This comes to a total of 992
interrupts. Hence, update the NUM_IRQ to match this number.

Signed-off-by: Amneesh Singh <amneesh@ti.com>
2026-04-17 15:49:03 -05:00
Sebastian Bøe
28dfa4343c soc: nordic: Add snapshot region support in UICR
Add snapshot region support in UICR.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Made-with: Cursor
2026-04-17 10:41:07 +02:00
Richard Mc Sweeney
9e8b3cf7ea drivers: Refactor pse84 autanalog-adc to use MFD
- Added autanalog MFD support in PSE84 DTS files
- Refactored autanalog ADC in PSE84 to use a common
MFD for handling the global AC configuration
- Constructed AC to use phandle in the overlay
for a better the user experience.
- Added support for a basic and advanced mode
with custom AC

Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Richard Mc Sweeney <Richard.McSweeney@infineon.com>
2026-04-17 10:36:07 +02:00
Fin Maaß
1f1854981c soc: litex: split litex_vexriscv in family and soc
split litex_vexriscv in family and soc.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-04-17 10:34:07 +02:00
Mateusz Michalek
fbdfd9673b modules: hal_nordic: nrfx: TAMPC CMake
adds CONFIG_SOC_NRF54LX_SKIP_TAMPC_SETUP
compile time binding

Signed-off-by: Mateusz Michalek <mateusz.michalek@nordicsemi.no>
2026-04-16 10:13:12 +02:00
Paolo Bazzanella
5fe0292cfe soc: renesas: ra: Add support for r7fa6m3af2cbg
Added support for r7fa6m3af2cbg (RA6M3, 1MB RAM BGA176)

Signed-off-by: Paolo Bazzanella <pbbazzanella@gmail.com>
2026-04-16 10:12:52 +02:00
Carlo Caione
36f3bebfb7 drivers: serial: mbox: convert NXP drivers to device MMIO API
Convert three NXP drivers from raw DT_REG_ADDR() register access
to the Zephyr device MMIO API (DEVICE_MMIO_ROM / DEVICE_MMIO_RAM /
DEVICE_MMIO_MAP):

With the MMIO API, the drivers create their own mapping at init time via
DEVICE_MMIO_MAP() thus the corresponding mmu_regions entries are removed
from the five NXP SoC files that carried them.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-04-15 17:15:37 -04:00
Marcio Ribeiro
d97bbc3f85 soc: esp32: allow relocate specific .bss segments to spiram
This commit introduces the CONFIG_ESP_SPIRAM_BSS_RELOC_LIBS_AND_OBJS
parameter that when filled in with a list of library and/or object file
names and having the parameter CONFIG_ESP_SPIRAM enabled will allow that
.bss segments of such files be placed in .ext_ram.data section

Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2026-04-15 05:52:01 -04:00
Carlo Caione
1952e3320c boards: soc: remove redundant CONFIG_KERNEL_DIRECT_MAP
Now that CPU_CORTEX_A selects KERNEL_DIRECT_MAP when MMU is enabled,
there is no need for individual ARM64 board defconfigs or SoC Kconfig
files to enable it explicitly.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-04-15 05:40:30 -04:00
Anand Kumar
b3a7db3e3f soc: st: stm32: add support for STM32F777 SoC
The STM32F777 is a variant of the STM32F767 that adds a hardware
crypto accelerator (CRYP). Add SoC support by including the
stm32f767.dtsi and extending with the CRYP peripheral node.

Fixes: #105976
Signed-off-by: Anand Kumar <anandvtu16158@gmail.com>
2026-04-15 05:40:16 -04:00
Jonathan Nilsen
cea520433d soc: nordic: uicr: add PERIPHCONF validation
Add targets to the UICR generator image that validates and/or prints
the register configurations in the generated PERIPHCONF blob:

* periphconf_validate (only check for errors)
* periphconf_dump (print entire blob, also prints errors)
* periphconf_dump_raw (same as periphconf_dump but with hex values)

Equivalent targets exist for SECONDARY PERIPHCONF:

* secondary_periphconf_validate
* secondary_periphconf_dump
* secondary_periphconf_dump_raw

The new validation replaces the old conflict detection
("PERIPHCONF has conflicting registers") and adds more checks.
PERIPHCONF registers are now also by default printed out in a human
readable format instead of by raw hex address and value.

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2026-04-15 05:39:11 -04:00
Zayne Stites
2655bdf6ea soc: infineon: updated edge/pse84 boot to enable SAU on cm33
The cm33 defaults to a secure state and we don't enable the MPC,
PPC, SAU, etc which all stay in their default states.  To support
the HWINFO driver, we need the SAU enabled so the cm33_s can access
the device UID which is stored in non-secure memory.

Signed-off-by: Zayne Stites <Zayne.Stites@infineon.com>
2026-04-14 22:35:00 -04:00
Manimaran A
940c14d16c drivers: input: kscan: mec: enable kscan for mec174x/5x/165xb
Used Zephyr inline register access functions (sys_read/write)
instead of CMSIS register structure.

Used soc helper api to access/configure girq registers.

Signed-off-by: Manimaran A <manimaran.a@microchip.com>
2026-04-14 22:34:33 -04:00
Holt Sun
9208ab9744 soc: nxp: imxrt118x: configure ARM PLL from devicetree
Add an RT118x ARM PLL binding wrapper that reuses the shared
loop-div/post-div schema and derive CLOCK_InitArmPll() directly
from devicetree.

RT118x keeps the new loop-div/post-div properties only and removes
the hard-coded loop and post divider values from the SoC init path
while retaining the HAL loop divider range check.

Signed-off-by: Holt Sun <holt.sun@nxp.com>
2026-04-14 22:33:54 -04:00
Holt Sun
3bd866ba2c soc: nxp: imxrt11xx: refactor ARM PLL binding
Replace the fixed-factor-clock compatible with an RT11xx ARM PLL
binding that shares the loop-div/post-div schema through a common
include.

The RT11xx wrapper keeps the deprecated clock-mult/clock-div
properties and the SoC code falls back per property so existing
definitions keep working while new overlays can switch to
loop-div/post-div.

Signed-off-by: Holt Sun <holt.sun@nxp.com>
2026-04-14 22:33:54 -04:00
Anas Nashif
4d5f470290 soc: arch: select SCHED_IPI_SUPPORTED if SMP
Fix kconfig warning when building anything SMP.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-04-14 22:31:16 -04:00
Merin George
0b32bb0f66 soc: infineon: cat1b: cyw20829: fix PM callback flash access issue
Replace WAIT_FOR macro with a simple do-while loop in is_memory_ready()
used by the SMIF PM callback.

WAIT_FOR uses kernel timing functions which reside in flash.
During CY_SYSPM_AFTER_DS_WFI_TRANSITION callback
execution, the flash (SMIF) is being re-enabled and the external memory
may not be ready yet. Calling flash-resident kernel functions at this
point causes a hardfault.

The do-while loop uses only:
- Cy_SMIF_Memslot_IsBusy() - relocated to RAM
- Cy_SysLib_DelayUs() - located in RAM

This avoids any flash access during the early wake-up phase when flash
is not yet accessible.

Signed-off-by: Merin George <merin.george@infineon.com>
2026-04-14 22:30:07 -04:00
Dhanoo Surasarang
9d68b8a8ae soc: nordic: Add UICR generation tooling for nRF71
Add supporting scripts and build-system integration for UICR
generation.

Signed-off-by: Dhanoo Surasarang <dhanoo.surasarang@nordicsemi.no>
2026-04-14 22:23:00 -04:00
Daniel Leung
b72e6dcdba soc: intel_adsp/ace: add custom memory range check code
This is a direct copy from arch/xtensa/core/mem_manage.c.
It is moved here as the checks are really SoC specific and
should not be in the architecture code at all.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2026-04-14 22:22:23 -04:00
Tony Han
d285e02b53 soc: microchip: sam: update MMU for sama7d6 AES
When AES is activated in the DT, configure it's register region with
strong ordered, read and write access.

Signed-off-by: Tony Han <tony.han@microchip.com>
2026-04-14 22:21:15 -04:00
Anand Kumar
dadf30044c drivers: serial: stm32: add UART IRQ sharing support
Add shared interrupt support for STM32 UART on SoC families where
multiple USART/LPUART peripherals share a single IRQ line (F0, G0,
L0, U0, C0).

Add a compile-time BUILD_ASSERT in the STM32 UART driver that detects
when two or more enabled UART instances share an IRQ and
CONFIG_SHARED_INTERRUPTS is not set.

Add configdefault SHARED_INTERRUPTS and SHARED_IRQ_MAX_NUM_CLIENTS
to the SoC Kconfig for STM32F0x, STM32L0x, STM32U0x, and STM32C0x.

Update DTS comments in the F0 family that previously stated shared
UART IRQs are unsupported.

The SHARED_IRQ_MAX_NUM_CLIENTS combinations in the F0x Kconfig were
generated with:

  from itertools import combinations
  usarts = ['usart3','usart4','usart5','usart6','usart7','usart8']
  for n in range(6, 2, -1):
      for combo in combinations(usarts, n):
          conds = ' && '.join(
              f'$(dt_nodelabel_enabled,{u})'
              for u in combo)
          print(f'\tdefault {n} if {conds}')

Fixes zephyrproject-rtos#39565

Signed-off-by: Anand Kumar <anandvtu16158@gmail.com>
2026-04-14 22:21:03 -04:00
Pete Johanson
611f7c211f soc: adi: Clean up MAX32 RV32 core setup to use DT checks
Check for secondary RV32 support by way of devicetree checks, not enabling
explicitly for each SoC in Kconfig.

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2026-04-14 22:15:45 -04:00
Pete Johanson
bec2bb751d soc: arm: Add MAX32665/6 CPU1 support
Add support for the MAX32665/6 CPU1 core, launched from CPU0.

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2026-04-14 22:15:45 -04:00
Thomas Fischer
c6c94cd56e soc: added support for mimxrt1041xjm5b
Added kconfig for soc mimxrt1041 an in detail for mimxrt1041xjm5b.

Signed-off-by: Thomas Fischer <thomas.fischer@jumo.net>
2026-04-14 22:14:53 -04:00
Ayush Singh
cec6f00dd9 soc: ti: mspm0: mspm0l: Enable MPU for MSPM0L1117
All soc in mspm0l111x series have MPU.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2026-04-14 22:08:30 -04:00
Marcio Ribeiro
c4a53181ba modules: openthread: add external memory support for heap and message pool
Add Kconfig options to allocate OpenThread dynamic memory and message
pool buffer from external memory on ESP platforms:
- OPENTHREAD_EXTERNAL_HEAP_SHARED_MULTI_HEAPOPENTHREAD_HEAP_EXTERNAL:
  routes otPlatCAlloc/otPlatFree through shared multi-heap to allocate
  from external memory.
- OPENTHREAD_MESSAGE_POOL_CUSTOM_SECTION: places the message pool
  buffer in a custom .ot_msg_pool linker section.
- Add .ot_msg_pool section to external RAM in the linker
  script for  ESP32, ESP32-C5, ESP32-S3, ESP32-S3

This allows offloading large OpenThread buffers to PSRAM, freeing
internal SRAM for other uses.

Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2026-04-14 22:06:48 -04:00
Ruoshan Shi
4cb4833c7b soc: imx93: enable imx93 video pll
Added video_pll instance to soc dtsi.

Signed-off-by: Ruoshan Shi <ruoshan.shi@nxp.com>
2026-04-14 22:06:04 -04:00
Krzysztof Chruściński
4efacbe1a1 modules: hal_nordic: nrfs: Fix init priority
In 7579ccc68e (modules: hal_nordic: nrfs: Fix initialization priority)
used wrong priority as it assumed that NRFS is using IPC service init
priority. Priorities are fixed now and static assert is added to ensure
that NRFS init priority is higher than IPC service.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-04-11 10:21:32 -04:00
Nicolas Pitre
1c9955a060 pm: shell: hold sys_clock_lock() around timer driver calls
sys_clock_set_timeout() and sys_clock_elapsed() are now documented
as requiring the system clock lock to be held by the caller. Wrap
the calls in subsys/pm/pm.c, soc/nxp/rw/power.c and the kernel
shell thread list command with sys_clock_lock()/sys_clock_unlock().

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2026-04-07 11:40:49 -05:00
Martin Hoff
923d70987f soc: siwx91x: fix standby pm state
runtime_idle, also called standby in SiWx91x HAL power manager
did not need to check if it can go to sleep, reconfigure wireless
control after standby, or generate a synchronization event with
the NWP (network coprocessor) when the SoC exits runtime_idle.

This fixes a bug where the shell application is not responsive
with PM enabled. Since the system stays in runtime_idle due to
UART activity for the shell, interrupt information from the NWP
can be lost due to reconfiguration when exiting standby.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2026-04-07 11:37:47 -05:00
Tom Burdick
8f4512a480 soc: psoc edge: Add select for HAS_SEGGER_RTT
Adds the needed select symbol to allow for segger RTT support.

Signed-off-by: Tom Burdick <thomas.burdick@infineon.com>
2026-04-07 08:43:00 -05:00
Hui Bai
a16132d1cd soc: nxp: rw: Fix ethernet init fail issue
Previously, the purpose of disabling AVPLL and TDDR is to save power
consumption in low power. But all examples of RW612 use clock_init()
and disable AVPLL and TDDR without condition check is not proper.
Move disable AVPLL and TDDR to condition when they are not in use.

The ethernet uses TDDR clock and enet is enabled by default for RW612.
Add CONFIG_ETH_DRIVER along with enet and CONFIG_NET_L2_ETHERNET in
clock_init(). If any of the condition is not match, the TDDR clock
will be disabled.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2026-04-07 08:37:30 -05:00