Commit graph

6,494 commits

Author SHA1 Message Date
Erwan Gouriou
84bba8742a dts: arm: stm32n6: Add NPU Cache clock and reset lines
Add the description of NPU Cache (aka cacheaxi) to allow configuring
them in NPU Cache driver.
I intentionally chose this over creating a new dedicated node as
the exclusive user is NPU Cache and this could be done as part of
NPU driver initialization.

Update the NPU driver to take those into account as part of its init
routine.

Signed-off-by: Mickael Guene <mickael.guene@st.com>
Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2025-10-16 12:15:58 -04:00
Emilio Benavente
8e8056324d soc: nxp: mcxw: Enable EDMA
Add DMA nodes for MCXW7X SOC DTS.
This SOC used TRIGMUX instead of DMAMUX.
Enable EDMAv3 for the frdm_mcxw71 and frdm_mcxw72
platforms.

Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
Co-authored-by: Declan Snyder <declan.snyder@nxp.com>
2025-10-16 17:17:12 +03:00
Jun Lin
28434f8003 drivers: uart: npcx: support additional capabilities
This commit adds the following functionality support:
1. More baudrate setting.
2. 7 bit data moded.
3. Tx (CR_SOUT) and Rx (CR_SIN) signal invert.

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2025-10-16 17:15:30 +03:00
Abderrahmane JARMOUNI
3fe6fcf3d4 soc: stm32: Kconfig: fix options leak
Fix various Kconfig options leak

Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
2025-10-16 17:12:27 +03:00
Divin Raj
f00aeb4b7b soc: fvp_aemv8r: Flash mpu region can't be set in case of no flash
Some platforms do not have flash memory. The flash mpu region cannot
be created in case CONFIG_FLASH_SIZE is zero.

Signed-off-by: Yanqin Wei <yanqin.wei@arm.com>
Signed-off-by: Divin Raj <divin.raj@arm.com>
2025-10-16 17:10:35 +03:00
Mathieu Choplain
0a5a607c77 drivers: timer: stm32_lptim: drop clock source configuration via Kconfig
Remove the possibility to configure the LPTIM timer clock source
through Kconfig. The deprecation warning was added 3 years ago in
Zephyr 3.2 by commit bbac316be7; more
than enough time has elapsed for this option to be removed.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-10-16 17:10:11 +03:00
Maochen Wang
1bb4e5dacd boards: nxp: set default value for NXP_FW_DUMP_FLASH_START_ADDR
Set different default value for NXP_FW_DUMP_FLASH_START_ADDR, based on
mimxrt1060_evk board and rw612 soc.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2025-10-15 17:37:11 -04:00
Sebastian Bøe
35b89abd61 soc: nordic: uicr: Add safety flag for permanent device transition
Add --permit-permanently-transitioning-device-to-deployed safety flag
to gen_uicr.py, required when enabling both UICR.LOCK and
UICR.ERASEPROTECT together. This prevents accidental permanent locking
of devices since this combination makes the configuration irreversible.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-15 17:37:02 -04:00
Sebastian Bøe
1438f8ae69 soc: nordic: uicr: Add support for UICR.APPROTECT
Add support for UICR.APPROTECT configuration, which controls debugger
and access-port permissions through the TAMPC peripheral.

This introduces three Kconfig options that allow independent control
over access port protection for different processor domains:

- GEN_UICR_APPROTECT_APPLICATION_PROTECTED: Controls debug access to
  the application domain processor
- GEN_UICR_APPROTECT_RADIOCORE_PROTECTED: Controls debug access to
  the radio core processor
- GEN_UICR_APPROTECT_CORESIGHT_PROTECTED: Controls access to the
  CoreSight debug infrastructure

When enabled, each option sets the corresponding UICR.APPROTECT
register to PROTECTED (0xFFFFFFFF), which disables debug access for
that domain. When disabled, the registers remain at their erased value
(UNPROTECTED), allowing full debug access.

This feature is critical for production devices where debug access must
be restricted to prevent unauthorized access to sensitive code and data.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-15 17:37:02 -04:00
Sebastian Bøe
e20352d80a soc: nordic: uicr: Add support for UICR.ERASEPROTECT
Add support for UICR.ERASEPROTECT configuration, which blocks ERASEALL
operations to prevent bulk erasure of protected memory.

This introduces a Kconfig option GEN_UICR_ERASEPROTECT that enables
blocking of ERASEALL operations on NVR0, preserving UICR settings even
if an attacker attempts a full-chip erase.

This is a critical security feature for production devices. When enabled
together with UICR.LOCK, it becomes impossible to modify the UICR in
any way, establishing a permanent device protection scheme. Due to this
irreversibility, it should only be enabled during the final stages of
production.

When enabled, the gen_uicr.py script sets UICR.ERASEPROTECT to
0xFFFFFFFF, which prevents the ERASEALL command from affecting the
NVR0 page.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-15 17:37:02 -04:00
Sebastian Bøe
1ffdf09c25 soc: nordic: uicr: Add support for UICR.LOCK
Add support for UICR.LOCK configuration, which locks the entire UICR
configuration in NVR0 to prevent unauthorized modifications.

This introduces a Kconfig option GEN_UICR_LOCK that enables locking
of the UICR. Once locked, the UICR can only be modified by performing
an ERASEALL operation.

This is a critical security feature for production devices, typically
enabled alongside UICR.APPROTECT, UICR.PROTECTEDMEM, and
UICR.ERASEPROTECT to establish a complete device protection scheme.

When enabled, the gen_uicr.py script sets UICR.LOCK to 0xFFFFFFFF,
which configures the NVR0 page as read-only and enforces integrity
checks on the UICR content.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-15 17:37:02 -04:00
Sebastian Bøe
c3f6b8cb34 soc: nordic: uicr: Add support for UICR.SECONDARY.PROTECTEDMEM
Add support for UICR.SECONDARY.PROTECTEDMEM configuration, which enables
configuration of the protected memory region for secondary firmware.

This introduces Kconfig options for configuring:
- GEN_UICR_SECONDARY_PROTECTEDMEM - Enable/disable protected memory
  for secondary firmware
- GEN_UICR_SECONDARY_PROTECTEDMEM_SIZE_BYTES - Size of the protected
  memory region in bytes

The implementation validates that the configured size is divisible by
4096 bytes (4 KiB) as required by the hardware, and converts it to
4 KiB units when writing to UICR.SECONDARY.PROTECTEDMEM.SIZE4KB.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-15 17:37:02 -04:00
Sebastian Bøe
9dc2b614d6 soc: nordic: uicr: Add support for UICR.SECONDARY.TRIGGER
Add support for UICR.SECONDARY.TRIGGER configuration, which enables
automatic booting of secondary firmware based on specific reset reasons.

This introduces Kconfig options for configuring:
- UICR.SECONDARY.TRIGGER.ENABLE - Enable/disable automatic triggers
- UICR.SECONDARY.TRIGGER.RESETREAS - Bitmask of reset reasons that
  trigger secondary firmware boot

Individual Kconfig options are provided for each reset reason:
- APPLICATIONWDT0/1 - Application core watchdog timeouts
- APPLICATIONLOCKUP - Application core CPU lockup
- RADIOCOREWDT0/1 - Radio core watchdog timeouts
- RADIOCORELOCKUP - Radio core CPU lockup

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-15 17:37:02 -04:00
Sebastian Bøe
af32ebd198 soc: nordic: uicr: Add support for UICR.WDTSTART
Add support for UICR.WDTSTART.

UICR.WDTSTART configures the automatic start of a local watchdog timer
before the application core is booted. This provides early system
protection ensuring that the system can recover from early boot
failures.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-15 17:37:02 -04:00
Travis Lam
0042c1d299 soc: nordic: instantiate NRF_PLATFORM_LUMOS kconfig
Instantiate NRF_PLATFORM_LUMOS for all nrf lumos product,
Add NRF_SKIP_CLOCK_CONFIG kconfig to be a general kconfig
in nordic soc Kconfig, so that it can be used by other
lumos product.

Signed-off-by: Travis Lam <travis.lam@nordicsemi.no>
2025-10-15 11:43:33 -04:00
Etienne Carriere
f85932ab33 soc: st: stm32wba: TF-M does not support BL2 for WBA65x
Enable TFM_BL2_NOT_SUPPORTED configuration for STM32WBA65x SoC since
TF-M does not implement the BL2 boot stage for this SoC series.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-10-15 15:38:33 +03:00
Sebastian Bøe
362f6535ab soc: nordic: uicr: Change how secondary images are detected
Detect secondary images by checking a Kconfig value instead of a
marker file.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-10-14 18:55:08 +02:00
David Boullie
8249ca582a soc: silabs: s2: Move RAIL interrupts installer
Move the RAIL interrupts installer from the Bluetooth HCI driver
to the SoC layer so that it can be used by other subsystems
as well.

Signed-off-by: David Boullie <David.Boullie@silabs.com>
2025-10-14 18:51:57 +02:00
Aymen LAOUINI
4312c881f3 soc: ironside: Add UUID to boot report
- The UUID is the device unique identifier read from the
OTP and made available in boot report to avoid the repetitive
slow reads from OTP.

Signed-off-by: Aymen LAOUINI <aymen.laouini@nordicsemi.no>
2025-10-14 18:51:37 +02:00
Afonso Oliveira
e7c6a28a1f soc: snps: nsim: arc_v: rhx: add RHX SoC configuration
Add RISC-V RHX SoC series configuration for ARC-V RHX cores.
Enables RV32IMAC ISA with bitmanip extensions (ZBA, ZBB, ZBC, ZBS).
Configures PMP with 16 slots and 8-byte granularity.
Sets RISCV_SOC_INTERRUPT_INIT enabled for interrupt initialization.
Configures 32 IRQs.
Adds MetaWare CCAC toolchain support with RHX-specific compiler flags.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-10-14 18:51:25 +02:00
Afonso Oliveira
6927160adf soc: snps: nsim: arc_v: rmx: add PMP_GRANULARITY configuration
Add explicit PMP_GRANULARITY default value of 8 to RMX SoC configuration.
This makes the PMP configuration more explicit and easier to understand.

No functional change as RISCV_PMP was already enabled and PMP_GRANULARITY
already defaulted to this value.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-10-14 18:51:25 +02:00
Afonso Oliveira
bf5412ebb5 soc: snps: nsim: arc_v: rmx: drop hardcoded MWDT flags
- Remove SoC-level ccac core/ISA flags (-av5rmx, -Z*)
- Depend on arcmwdt toolchain to derive flags from Kconfig
- Keep SOC linker script selection unchanged

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-10-14 18:51:25 +02:00
Afonso Oliveira
d0de9456f2 soc: snps: nsim: arc_v: rmx: revert to shorter SOC configuration names
Uses shorter names for the RMX SOC configuration.

Changes:
- SOC_SERIES_NSIM_ARC_V_RMX -> SOC_SERIES_RMX
- SOC_NSIM_ARC_V_RMX100 -> SOC_RMX100

Also updates board Kconfig to use the shorter names.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-10-14 18:51:25 +02:00
Afonso Oliveira
aa5e13f227 dts: cpu: add device tree bindings for Synopsys ARC-V RMX RISC-V CPU
Add device tree binding file for the Synopsys ARC-V RMX RISC-V
CPU core. This binding enables proper device tree property parsing by
the Enhanced Device Tree (EDT) system, allowing Kconfig device tree
macros to access CPU properties like clock-frequency.

The binding includes the standard RISC-V CPU properties by extending
riscv,cpus.yaml, which provides access to properties defined in cpu.yaml
such as clock-frequency.

Also removes hardcoded SYS_CLOCK_HW_CYCLES_PER_SEC from board level
and adds DT-derived value to RMX SoC level.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2025-10-14 18:51:25 +02:00
Quy Tran
153c9e6030 soc: renesas: rx: Add ofsm header file for RX26T
Add ofsm header file for option setting on RX26T MCU

Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2025-10-14 07:44:34 -04:00
Quy Tran
df638db93a arch: rx: Enable HAS_MAPPED_INTERRUPTS config on RX26T
RX26T MCU support mapped interrupt features, add dependency config to
enable zephyr library source from hal

Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2025-10-14 07:44:34 -04:00
Phi Tran
58dac199c2 drivers: dtc: support dtc driver on RSK_RX130_512KB.
Initial commit to support DTC driver on Renesas RX130.
* drivers: DTC: implementation for DTC driver on RX130.
* dts: rx: update dts node in SoC layer to support DTC on RX130.

Signed-off-by: Phi Tran <phi.tran.jg@bp.renesas.com>
2025-10-14 12:53:49 +03:00
Phi Tran
e3aeb4bfd9 soc: renesas: rx: Add section data for dtc_vector_table region on RX130
Add support section data for dtc_vector_table to RAM region
on RSK-RX130.

Signed-off-by: Phi Tran <phi.tran.jg@bp.renesas.com>
2025-10-14 12:53:49 +03:00
Allen Zhang
bd7c0cba39 soc: mcxw2xx: Add clock enablement for watchdog
Add clock enablement for watchdog

Signed-off-by: Allen Zhang <chunfeng.zhang@nxp.com>
2025-10-13 18:14:11 -04:00
Jimmy Zheng
7edb310d02 arch: riscv: custom: add T-Head Xuantie CSR support
Move Xuantie supprot from arch/riscv/core/xuantie to the custom common
layer arch/riscv/custom/thead, with the following changes:

1. Rename Kconfig name
   CACHE_XTHEADCMO -> RISCV_CUSTOM_CSR_THEAD_CMO
2. Split the original arch/riscv/core/xuantie/Kconfig to
   a. arch/riscv/custom/thead/Kconfig: for T-Head extension
   b. arch/riscv/custom/thead/Kconfig.core: for T-Head CPU series
      (e.g. Xuantie E907)
3. Move cache line size defaults to SoC devicetree

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-10-13 11:26:28 -04:00
Jimmy Zheng
7732e66723 arch: riscv: custom: add OpenISA RI5CY and Zero-RISCY CSR support
Update OpenISA RI5CY and Zero-RISCY CSR handling to use RISC-V custom
CSR common code. Move these stuff to 'arch/riscv/custom/openisa':

1. Rename 'soc_ri5cy.h' to 'ri5cy_csr.h' for CSR definitions.
2. Rename 'soc_zero_riscy.h' to 'zero_riscy_csr.h' for CSR definitions.
3. Move CSR context to common macro '__custom_csr_save/restore_context'.
4. Move compiler option '-march=rv32imcxpulpv2' to common code.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-10-13 11:26:28 -04:00
Jimmy Zheng
a6a11cc57d arch: riscv: custom: add OpenHW Group CVA6 CSR support
CVA6 supports custom CSR. Move 'cva6.h' to 'arch/riscv/custom/cva6_csr.h',
allowing other SoCs using the CVA6 core to reuse the same CSR definitions.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-10-13 11:26:28 -04:00
Jimmy Zheng
8b27ffbecc arch: riscv: : custom: add Nuclei CSR support
GD32VF103 uses Nuclei-specific CSR. Move 'nuclei_csr.h' to
'arch/riscv/custom' to allow reuse across SoCs with the same Nuclei core.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-10-13 11:26:28 -04:00
Jimmy Zheng
1b310b1542 soc: egis: et171: add support for Andes custom CSRs
Egis ET171 implements Andes custom CSRs. Enable the following features:

1. Low level initialization of Andes CSRs
2. HWDSP and PowerBrake extensions with context save/restore
3. EXEC.IT extension

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-10-13 11:26:28 -04:00
Jimmy Zheng
7ee9fd978c soc: telink: tlsr951x: use RISC-V custom CSR common code
TLSR951x also supports Andes extended CSR. Reworks the following CSR
handling to use the RISC-V custom CSR common code:

1. Use common macros for HWDSP CSR context save/restore.
2. Use common macros for PFT CSR context save/restore.
3. Use common low-level CSR initialization via __reset hook.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-10-13 11:26:28 -04:00
Jimmy Zheng
679ce42f15 arch: riscv: custom: add Andes CSR support
Rework Andes-specific CSR to use RISC-V custom CSR common code.
Move these stuff to 'arch/riscv/custom/andes':

1. Rename 'soc_v5.h' to 'andes_csr.h' for CSR definitions.
2. Replace '_start' with '__reset' hook for low-level CSR initialization.
3. Move CSR context to common macro '__custom_csr_save/restore_context'.
4. Move 'EXECIT' CSR support to common code.
5. Move PMA CSR driver to common code.
6. Use RISC-V common linker.ld instead of SoC-specific linker.ld.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-10-13 11:26:28 -04:00
Quy Tran
255096e02c soc: renesas: rx: enable option function select register 0
Enables OSF0 register select for IWDT driver setting on start mode

Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2025-10-13 09:33:35 -04:00
Quy Tran
2b25575d9c soc: renesas: rx: Update OFS value in vects.c using Kconfig
OFS values setting for RXv1/RXv2 will be defined in SOC
Kconfig and set in vects.c file

Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2025-10-13 09:33:35 -04:00
Tim Lin
fb7406488f soc: it51xxx/linker: Make h2ram_pool behind the CONFIG_ESPI_IT8XXX2 option
Apply the same CONFIG_ESPI_IT8XXX2 guard to the .h2ram_pool section
in the IT51XXX linker script, since the eSPI driver is compatible with
IT8XXX2. This keeps linker behavior consistent and avoids unused
memory allocation on non-eSPI platforms.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-10-13 08:56:54 +02:00
Tim Lin
74c57ce769 soc: it8xxx2/linker: Make h2ram_pool behind the CONFIG_ESPI_IT8XXX2 option
The .h2ram_pool linker section was previously always included, even on
platforms that do not enable eSPI. This caused unnecessary memory
reservation in the RAMABLE_REGION for non-eSPI configurations.

Add a CONFIG_ESPI_IT8XXX2 guard around the .h2ram_pool section definition
so that it is only included when eSPI support is enabled.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-10-13 08:56:54 +02:00
Yongxu Wang
60d8b2fe37 soc: nxp: imx943: Fix potential out-of-bounds access in pm_mcore loop
Limit the loop to the smaller of nvic_iser_nb and
GPC_CPU_CTRL_CMC_IRQ_WAKEUP_MASK_COUNT to ensure safe access.

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2025-10-13 08:55:32 +02:00
Richard Wheatley
dc18e381dc soc: ambiq: apollo4x: add Add pinctrl to apollo4x
add pinctrl select by default for apollo4x

Signed-off-by: Richard Wheatley <richard.wheatley@ambiq.com>
2025-10-13 08:46:04 +02:00
Aksel Skauge Mellbye
f18b433636 dts: arm: silabs: Add xgm24 modules
Add devicetree and soc entries for xgm24 modules.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-10-10 20:51:03 -04:00
McAtee Maxwell
03a6bb2282 soc: add support for ifx edge socs
- add basic soc files to support ifx pse84 soc
- add files needed for setting up the m55

Signed-off-by: McAtee Maxwell <maxwell.mcatee@infineon.com>
2025-10-10 12:59:33 -04:00
Miguel Gazquez
84c889e479 soc: ti: cc23x0: drop deprecated CONFIG_BUILD_NO_GAP_FILL option
The CONFIG_BUILD_NO_GAP_FILL option became obsolete after commit
2e8868c16e and has since been deprecated.

Remove the unused Kconfig select from the CC23x0 SoC configuration.

Signed-off-by: Miguel Gazquez <miguel.gazquez@bootlin.com>
2025-10-10 12:58:30 -04:00
Tomasz Chyrowicz
14af1654d1 soc: Move to the app-specific partitions
Use cpuapp_slot_partition instead of slot0_partition, so it is possible
to add MCUboot header through --pad-header option.
In such cases, the FLASH_LOAD_OFFSET does not point to the begining of
the slot, but to the beginning of the executable area, thus the check
for the active slot should use ranges instead of exact values.

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
2025-10-10 12:57:45 -04:00
Kevin Gillespie
85c06345bf soc: adi: max32: Standby lock on boot.
Add standby lock to prevent debug lockout on boot
when using power management.

Signed-off-by: Kevin Gillespie <Kevin.Gillespie@analog.com>
2025-10-10 12:55:15 -04:00
Kevin Gillespie
d24ab25d6d soc: adi: max32: Remove standby restore delay.
Remove delay when coming out of standby mode.

Signed-off-by: Kevin Gillespie <Kevin.Gillespie@analog.com>
2025-10-10 12:55:15 -04:00
Kevin Gillespie
5d11e40729 soc: adi: sleep in idle mode.
Use sleep mode instead of Low Power Mode (LPM). LPM is
similar to deep sleep, not intended to be used for general
idle.

Signed-off-by: Kevin Gillespie <Kevin.Gillespie@analog.com>
2025-10-10 12:55:15 -04:00
Declan Snyder
317ae1caea Revert "soc: RT700 add custom MPU regions for non-cache memory"
This reverts commit 4a6a969bbe.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-10-09 20:35:07 -04:00