Commit graph zephyr/soc
Author SHA1 Message Date
Kai Vehmanen
3f6ef5043c soc: intel_adsp: ace30: allow userspace to execute cold functions
Add access to functions in cold section for XTENSA_MMU_MAP_SHARED
(used for user-space threads). This allows to call functions marked
with "__cold" from user threads.

Suggested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2025-11-19 15:17:04 +01:00
Martin Hoff
94ed533c31 soc: silabs: siwg917: add dependency when PM device is enabled
This patch fixes a compilation error when CONFIG_PM_DEVICE is enabled
without CONFIG_PM_DEVICE_RUNTIME and CONFIG_POWER_DOMAIN.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-11-19 09:13:57 -05:00
Nicolas Pitre
051623c808 boards: arm: fvp: Add Cortex-A320 board variant support
Add Cortex-A320 support to the unified FVP board structure with ARMv9.2-A
specific configuration parameters.

New board target:
- fvp_base_revc_2xaem/a320

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-11-18 17:49:40 -05:00
Nicolas Pitre
2aef4fbe5b arch: arm64: Add ARMv9-A architecture and Cortex-A510 CPU support
Add ARMv9-A architecture support with Cortex-A510 CPU as the default
processor for generic ARMv9-A targets.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-11-18 17:49:40 -05:00
Nicolas Pitre
934e61bb61 soc: arm: fvp_aem: Create unified SOC series structure
Reorganize fvp_aemv8a SOC into unified fvp_aem series with a v8a
architecture variants to enable cleaner board target naming. This also
sets the stage for upcoming ARMv9-A support.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-11-18 17:49:40 -05:00
John Batch
6ee9976698 soc: infineon: Adding legacy hal definition to soc kconfig
Adds USE_INFINEON_LEGACY_HAL kconfig option to the PSOC6, CYW920829, and
xmc7200 series SOCs.  These devices have not transitioned to newer HAL
based drivers yet.

Signed-off-by: John Batch <john.batch@infineon.com>
2025-11-18 17:49:09 -05:00
Lin Yu-Cheng
c6b8128ac7 drivers: spi: add spi driver for rts5912
Add spi driver for Realtek rts5912

Signed-off-by: Lin Yu-Cheng <lin_yu_cheng@realtek.com>
2025-11-18 17:44:43 -05:00
Zhaoxiang Jin
1c6f877c71 soc: mcxn: enable p-state driver for nxp mcxn
Enable p-state driver for nxp mcxn, currently tested
on frdm-mcxn236 but should be easily extendable to
other mcxn boards.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-11-18 17:44:23 -05:00
Mathieu Choplain
173454802b soc: st: stm32: allow disabling ENABLE_DEBUG_SLEEP_STOP when DEBUG=y
Use an override-able 'default' for CONFIG_STM32_ENABLE_DEBUG_SLEEP_STOP
rather than forcefully 'select'ing the symbol when CONFIG_DEBUG=y, as
there are situations where one might want CONFIG_DEBUG=y without inhibiting
low-power mode entry.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-11-18 08:09:00 -05:00
Josh DeWitt
0dc2e0c38f soc: nordic: Gate FLASH_0 MPU region on CONFIG_XIP
Only include a flash MPU region if CONFIG_XIP is set, similar to
arm/core/mpu/arm_mpu_regions.c.

Signed-off-by: Josh DeWitt <josh.dewitt@garmin.com>
2025-11-18 11:22:36 +01:00
Dylan Philpot
87cc32f64b soc: add soc defines for g1518/g3518
The SOC config defines were missing for these subset
devices.

Signed-off-by: Dylan Philpot <d-philpot@ti.com>
2025-11-17 16:41:36 -05:00
Mathieu Choplain
f0b8d94590 soc: st: stm32: move POWEROFF entry sequence to common code
Move the architecture-specific (but implementation dependent!) code which
performs entry in poweroff state (Shutdown/Standby without retention) to
a common implementation shared by all STM32 SoC series. This is a first
step and could be further refined at a later time; eventually, a unified
z_sys_poweroff() implementation may even be possible.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-11-17 13:59:31 -05:00
Josuah Demangeon
23662f1e5d style: soc: apply coding style on CMakeLists.txt files
Apply the CMake style guidelines to CMakeList.txt files in soc/.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-11-17 13:48:03 -05:00
Jerzy Kasenberg
173cb15283 soc: smartbond: Change SYS_CLOCK_TICKS_PER_SEC
Zephyr default configuration for SYS_CLOCK_TICKS_PER_SEC
is 10000.
For smartbond this value was changed to frequency of lp_clk.
For XTAL32K SYS_CLOCK_TICKS_PER_SEC would increase to 32768
that would equal SYS_CLOCK_HW_CYCLES_PER_SEC.

One would expect SYS_CLOCK_TICKS_PER_SEC to be less then
HW clock cycles.

This restores default value for SYS_CLOCK_TICKS_PER_SEC
and changes it to 5000 only when rcx is used (that runs at
around 15kHz) and keeping it at 10000 would result in
big rounding errors.

Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg.xr@bp.renesas.com>
2025-11-17 09:23:30 -05:00
Yongxu Wang
e991623727 soc: nxp: imx943: support cpu mix poweroff with s2ram flow
Add S2RAM (Suspend-to-RAM) support for i.MX943 M7_0/M7_1 cores.
When entering suspend mode, the CPU mix is powered off to save
power consumption while preserving RAM data.

Implementation follows S2RAM suspend/resume workflow:
- Save CPU context (NVIC and SCB registers)
- Configure resume vector for S2RAM detection
- Suspend to RAM preserving stack and heap context
- Enter CPU suspend mode with mix poweroff
- Resume via reset_handler -> S2RAM detection -> context restore

Core registers are lost during poweroff but RAM data is preserved.

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2025-11-17 09:20:51 -05:00
Peter van der Perk
dd693ab2ab soc: nxp: imx9: add HAS_DWT to i.MX95 M7
The Cortex-M7 in IMX95 has the DWT feature but wasn't specified
in Kconfig

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-11-17 09:19:17 -05:00
Anas Nashif
71ec5df8f3 intel_adsp: remove workaround for SOF setting core count
During transition to HWMv2 this workaround was added, which should
instead be in SOF and not in Zephyr, as CORE_COUNT is a SOF Kconfig.

Remove this and instead set the CORE_COUNT in SOF to the
MP_MAX_NUM_CPUS.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-11-15 11:28:47 +01:00
Etienne Carriere
b0ccb2295f drivers: stm32: use STM32_CLOCK_INFO_BY_NAME() and friends
Use STM32_CLOCK_INFO(), STM32_DT_INST_CLOCK_INFO(),
STM32_CLOCK_INFO_BY_NAME() and STM32_DT_INST_CLOCK_INFO_BY_NAME()
helper macros in STM32 drivers.

Using these macros ensure the clock division factor is properly
populated according to DT information. Prior these changes some
drivers only got the bus and bits position information and missed
the clock division information which is fine only when this division
factor information is 0.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-11-14 15:26:17 +02:00
Sebastian Bøe
70f6cf7ea0 soc: nordic: uicr: Move GEN_UICR options into the main Zephyr tree
I initially added the GEN_UICR options to the gen_uicr image's Kconfig
tree only to not pollute the main tree.

But there is a lot of useful help text in the GEN_UICR option's
Kconfig file that I would like users to be able to read/reference from
the docs.

To not increase the complexity of the Kconfig doc generator, we add
the GEN_UICR options to the main tree and have them all be disabled
for builds other than the gen_uicr image.

Being in the main tree has the added benefit of being recognzied by
the compliance checker.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-11-14 15:26:06 +02:00
Aymen LAOUINI
d9861d77ff soc: nordic: activate uicr generation and use correct dt reg check
- Activate the UICR file generation and PeriphConf for nRF92 application.
- Add condition in reg dt check file to use the correct uicr node name
  for nRF92X.
- Generation of preriphconf entries filters on device names to match
  the first 5 characters to nrf92 or the 6 first characters to nrf54h,
  this information is also used to determine the device SOC_SERIES
  to be either SOC_SERIES_NRF54HX or SOC_SERIES_NRF92X allowing possible
  extension of usage. Still in case of an unknown device of a certain
  family it will use existing configuration while generating
  periphconf entries.

Signed-off-by: Aymen LAOUINI <aymen.laouini@nordicsemi.no>
2025-11-14 15:25:01 +02:00
Michał Stasiak
3ebf29329e soc: nordic: nrf54l: make SoCs select specific symbols
As future nRF54L SoCs may differ in terms of content,
general SOC_NRF54L_CPUAPP_COMMON symbol needs to cover
less symbols. These will be selected by specific SoC based
on support.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2025-11-14 12:20:17 +02:00
Mathieu Choplain
35a391d47c soc: st: stm32: use series-agnostic STM32 LL headers
Use the series-agnostic STM32 LL headers from the STM32Cube HAL module
instead of series-specific ones in STM32 SoC-specific code. Also remove
inclusion of `stm32XXxx.h` in a few files which already include `soc.h`
who is tasked with doing this inclusion.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-11-14 12:19:48 +02:00
Muhammed Asif
d838034efd soc: microchip: pic32cx_sg: Add clockcontrol in soc kconfig
Selects the clock control from soc Kconfig file.

Signed-off-by: Muhammed Asif <muhammed.asif@microchip.com>
2025-11-14 10:29:52 +02:00
Daniel Leung
f040a738ac soc: cdns/dc233c: linker: add snippets-text-sections.ld
Adds snippets-text-sections.ld to linker scripts. So that
the mem_map test can run on qemu_xtensa/dc233c/mmu.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2025-11-14 09:21:44 +01:00
Tom Chang
f4d258204a soc: npcx: add lct register definitions
Introduce register structures and macros for the long countdown timer to
support counter functionality in npcx and npck series.

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2025-11-13 20:45:41 -05:00
Fin Maaß
402c66a5e1 arch: riscv: vexriscv: add VexRiscv cache driver
add driver for VexRiscv CPU cache controller.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-11-13 20:41:07 -05:00
Yuriy Vynnychek
06b5198b3a soc: infineon: xmc7200: extend CYT4BFxx MPNs support
- Add Cortex M0+, M7(0) and M7(1) selection.
- Add TEQFP_176 and BGA_320 package support.

Signed-off-by: Yuriy Vynnychek <Yuriy.Vynnychek-EE@infineon.com>
2025-11-13 20:38:52 -05:00
Marcio Ribeiro
3d43f75701 soc: espressif: add region description for rtc ram memory
Adds separate memory regions for rtc ram memory areas and reworks linker
scripts to make use of their starting addresses and lengths

Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2025-11-13 20:36:45 -05:00
Arunprasath P
aa6414f09b drivers: dma: microchip: Add G1 DMA Driver
Add G1 DMA driver for Microchip DMA Peripherals.

Signed-off-by: Arunprasath P <arunprasath.p@microchip.com>
2025-11-13 20:35:43 -05:00
Arnaud Pouliquen
8aacdca78b soc: st: stm32mp13: enable direct memory map
Enable dynamic configuration of region mapping with a 1:1
virtual-to-physical address mapping.
This configuration is aligned with the static declaration of the
MMU table using MMU_REGION_FLAT_ENTRY macro.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
2025-11-13 20:35:09 -05:00
Tony Han
21195f2434 soc: microchip: sam: add clock initialization for sama7g5 MCAN
Initialize MCAN GCLK to 80MHz (divide SYSPLL 400MHz with 5).

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-11-13 20:31:14 -05:00
Tony Han
f2290d1c9c soc: microchip: sam: update MMU for sama7g5 MCAN
When the MCAN is activated in the DT, configure it's register region
with strong ordered, read and write access.
As CANx accesses the lower or upper 64K SRAM is selected by bits in
register 'SFR_CAN_SRAM_SEL', also configure SRAM and SFR region with
strong ordered, read and write access.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-11-13 20:31:14 -05:00
Lukas Woodtli
c53a370c85 soc: Add support for Silabs EFM32TG
* ARM Cortex-M3 processor
* Up to 32 kB Flash and 4 kB RAM memory
* Energy efficient and autonomous peripherals
* Ultra low power Energy Modes
* Fast wake-up

Signed-off-by: Lukas Woodtli <woodtli.lukas@gmail.com>
2025-11-13 20:30:55 -05:00
Mathieu Choplain
947749abfc linker: llext: move #ifdef CONFIG_LLEXT guard inside common file
LLEXT-related sections should only be added to the linker script when the
associated CONFIG_LLEXT is enabled. This has been done by checking for this
Kconfig symbol in every linker file, but this creates a lot of boilerplate
for no good reason.

Use the much simpler solution: move the check inside the common linker file
and remove existing "#ifdef CONFIG_LLEXT" checks in all linker files.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-11-13 23:17:37 +02:00
Mathieu Choplain
bfc69ad935 soc: st: stm32l4: always unlock IRQs in pm_state_exit_post_ops
Interrupts would only be unlocked when resuming from suspend-to-idle.
Even though other states *should* never be entered, make sure interrupts
are unlocked anyways to conform with the expectations of the PM framework.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2025-11-13 23:17:27 +02:00
Tim Lin
60f82e6456 it8xxx2: add support for putting switch.S in ram code section
Get better performance from executing z_riscv_switch() function.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-11-13 23:17:00 +02:00
Carles Cufi
689ba58b10 atomic: Select missing ATOMIC_OPERATIONS_BUILTIN
The ATOMIC_OPERATIONS_* Kconfig option is not a choice, so it does not
have a default. However, the file that determines which actual atomic
operations backend will be used does default to
ATOMIC_OPERATIONS_BUILTIN:

3e537db71e/include/zephyr/sys/atomic.h (L26-L41)

Since we want to ensure that all SoCs intentionally select the atomic
operations backend they want to use, select it at the SoC level for all
SoCs, as well as for the Cortex-M arch when the Armv8-M baseline profile
is selected.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2025-11-13 23:15:27 +02:00
Declan Snyder
92fe40405e soc: nxp: rt118x: Move container header in tree
Instead of gluing to the one in the HAL which is not very flexible to
configure, define the container header in the zephyr SOC code. This
fixes the bug of CONFIG_NXP_FLEXSPI_ROM_RAMLOADER not working.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-11-08 10:21:28 +02:00
Ruibin Chang
3bdf10308b soc/ite/it8xxx2: make ARCH_IRQ_VECTOR_TABLE_ALIGN constant
The IQR vector table changed size since a825e01 and it is
causing issues with downstream applications, for example,
data stored in bin specific field is shifted by
the ARCH_IRQ_VECTOR_TABLE_ALIGN, so I make
ARCH_IRQ_VECTOR_TABLE_ALIGN constant.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-11-07 21:25:18 +02:00
Łukasz Stępnicki
3f90574ad3 soc: nordic: vpr: align ESF_SW_IRQ_SIZEOF when new exception debug is used
There is new exception debugging mechanism for RISC-V which needs
additional member in arch_esf structure. VPRs handle stacking
partially in hw so exact position of some stack members needs
to be at the end of arch_esf, so explicit padding is needed.
Aligned also ESF_SW_IRQ_SIZEOF when exception debug is used.

Signed-off-by: Łukasz Stępnicki <lukasz.stepnicki@nordicsemi.no>
2025-11-07 19:22:58 +02:00
Lauren Murphy
c434ed8843 intel_adsp: select log_backend_xtensa_sim for simulator
ADSP logging backend requires winstream console,
which is turned off for simulator.

Signed-off-by: Lauren Murphy <lauren.murphy@intel.com>
2025-11-05 11:35:32 +02:00
Immo Birnbaum
b6c5d91507 soc: xlnx: zynqmp: fix vectors and SRAM MPU region priority order
Place the 'vectors' region configuration behind the 'sram' and
'rom_region' configurations so that the MPU region for the
vectors takes precedence over the 'sram' region due to higher
region index = higher priority when resolving memory properties
/ permissions for overlapping regions. This is required for the
vectors to work properly if the SRAM base address is also at 0x0.

Fixes #96688.

Signed-off-by: Immo Birnbaum <mail@birnbaum.immo>
2025-11-02 12:32:32 -05:00
Simon Maurer
01a7ed9097 soc: xlnx: zynq7000: move SoC code to common folder
remove duplicate xc7zxxx and xc7zxxxs soc code

Signed-off-by: Simon Maurer <mail@maurer.systems>
2025-10-30 18:39:16 -04:00
Ali Hozhabri
7a593ede3e drivers: bluetooth: hci: Fix the issue about the TRNG peripheral instance
Fix the issue regarding passing the TRNG peripheral instance to the driver.

Increase the SYSTEM_WORKQUEUE_STACK_SIZE when CONFIG_BT is set.
According to the log of thread analyzer for beacon sample, 1048 bytes
are needed. So, it's been increased to a safer value.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2025-10-30 18:38:02 -04:00
Allen Zhang
e2c62743ea soc: mcxw2xx: Add clock enablement for flash controller
kCLOCK_Sysctl must be enabled for FLASH_CacheClear,
FLASH_CacheSpeculationControl and FLASH_CheckECC to have an effect.

Signed-off-by: Allen Zhang <chunfeng.zhang@nxp.com>
2025-10-30 15:15:35 +02:00
Rubin Gerritsen
499102fc47 soc: nordic: nrf54h: s2ram: Fix compiling with FPU
This commit fixes a change introduced in #97025
where too many definitions where removed.

Fixes issue #98382

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2025-10-30 15:15:18 +02:00
Raffael Rostagno
a9eb90a20e soc: esp32c6: Add IEEE802.15.4 MAC setting
Select IEEE802.15.4 MAC option in Kconfig.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-10-29 20:31:03 -04:00
S Mohamed Fiaz
ff2e9b5836 modules: wiseconnect: kernel sleeptimer bug fix siwx91x
The fix resolves the drift test failure as part of kernel
timer behaviour and timer api test suite.
Moved sleeptimer-related source files to RAM using zephyr_code_relocate
when CONFIG_SILABS_SISDK_SLEEPTIMER is enabled, and removed duplicate
listing from PMGR backend.Updated Kconfig to select SRAM_VECTOR_TABLE
and CODE_DATA_RELOCATION_SRAM for the sleeptimer service.

Signed-off-by: S Mohamed Fiaz <Fiaz.Mohamed@silabs.com>
2025-10-29 11:47:10 +00:00
Anas Nashif
303af992e5 style: fix 'if (' usage in cmake files
Replace with 'if(' and 'else(' per the cmake style guidelines.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-10-29 11:44:13 +02:00
Aksel Skauge Mellbye
bca090958b soc: silabs: silabs_s2: Fix radio interrupt init condition
Radio interrupts were only initialized if CONFIG_ARM_SECURE_FIRMWARE=y,
but should be initialized independently of security configuration.

Move initialization from soc_prep_hook() to soc_early_init_hook(),
there is no reason to configure interrupts earlier.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-10-28 08:45:31 -07:00