Commit graph

6,613 commits

Author SHA1 Message Date
Tahsin Mutlugun
add6eb6726 soc: adi: max32: Use ceiling method to calculate exit latency ticks
The default 'near' mode results in zero exit latency ticks, which
prevents `sys_clock_set_timeout` from being called. This causes
the system to remain stuck in deep sleep modes. Use ceiling method
to obtain a nonzero exit latency tick count.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2025-07-30 17:25:03 -04:00
Swift Tian
814ed6803f tests: fix arm_irq_vector_table fail on Ambiq platforms
Fixed build fail since 4c93fcd35b.
Fixed test run fail on Ambiq platforms.
Added Ambiq section in the test.

Signed-off-by: Swift Tian <swift.tian@ambiq.com>
2025-07-30 07:27:19 -04:00
Bjarki Arge Andreasen
2854115443 soc: nrf54h: remove deprecated gpd (global power domain) driver
Remove the deprecated GPD (Global Power Domain) driver.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2025-07-29 09:03:37 -04:00
Bjarki Arge Andreasen
2b0d1ae4d0 soc: nordic: nrf54h: transition from gpd to zephyr pinctrl and pds
Transition nrf54h away from the soc specific gpd
(global power domain) driver which mixed power domains, pinctrl
and gpio pin retention into a non scalable solution, forcing soc
specific logic to bleed into nrf drivers.

The new solution uses zephyrs PM_DEVICE based power domains to
properly model the hardware layout of device and pin power domains,
and moves pin retention logic out of drivers into pinctrl and
gpio, which are the components which manage pins (pads).

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2025-07-29 09:03:37 -04:00
Adrian Warecki
0fe396cb11 ace: mmu: Add shared heap section
Add a new shared_heap section. Update the xtensa_soc_mmu_ranges structure
to include a new memory range for the shared heap.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2025-07-29 11:21:21 +01:00
Jiafei Pan
2d62d3f605 soc: imx95: a55: enable GIC redistribute and its noncoherent
GIC redistribute and ITS on i.MX 95 is DMA noncoherent, so enable
CONFIG_GIC_V3_RDIST_DMA_NONCOHERENT and CONFIG_GIC_V3_GIC_DMA_NONCOHERENT.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-07-29 11:18:50 +01:00
Jiafei Pan
353a96b623 soc: imx95: a55: include LPI in irq number
In case of ITS is enabled, need to include LPI in the total number
of irq.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-07-29 11:18:50 +01:00
Yishai Jaffe
7f3a728aaa soc: silabs: s2: make order in soc Kconfig's
Made some order in the Kconfig's for silabs series 2 socs.
Made a distinction between silabs "generic family" (e.g. xg21) and silabs
"device family" (e.g. efr32mg21).

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2025-07-28 16:40:58 -04:00
Alberto Escolar Piedras
6d8ad26868 soc/Kconfig: Move SOC_COMPATIBLE_NRF* options to soc/nordic/Kconfig
Since the change to HWmv2 we do not need to have this options in the
top level anymore. Let's move them into the top level Nordic SOC
Kconfig file.
(Note they moving into into each individual soc Kconfig would
add a dependency on SOC_FAMILY_NORDIC_NRF which is not set for
bsim targets)

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-07-28 08:35:13 -04:00
Alberto Escolar Piedras
13c8a51227 soc/nordic/nrf53/Kconfig.soc: Fix typo
Just a copy paste typo

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-07-28 08:35:13 -04:00
Alberto Escolar Piedras
d9b130823a soc: nordic: nrf54l: Set SOC_COMPATIBLE for 54L15 CPUFLPR target
So we can use just SOC_COMPATIBLE_NRF54L15 in place of
SOC_NRF54L15

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-07-28 08:35:13 -04:00
Michał Bainczyk
2e06c4ed20 drivers: nrf: add build asserts for memory-regions property
Add build asserts for "memory-regions" property in nrf drivers which is
required on targets with DMM for saadc, pdm, pwm, twim, twim_rtio, twis,
tdm, uarte, spim and spis. On targets where the property is not required
the assertion macro expands to nothing.

Signed-off-by: Michał Bainczyk <michal.bainczyk@nordicsemi.no>
2025-07-28 04:27:25 -04:00
Aziz Sellami
0351ff7e42 boards: nxp: imx95_evk_15x15: add i.MX 95 15x15 LPDDR4x EVK variant
Add initial support for i.MX 95 15x15 LPDDR4x EVK board. This board
uses the i.MX 95 15x15 SoC that shares many similarities to the
already supported i.MX 95 19x19 SoC used for the i.MX 95 19x19
LPDDR5 EVK.

This enables Zephyr to boot and run on the i.MX 95 15x15 EVK and
provides a foundation for further peripheral enablement and
application development.

Signed-off-by: Aziz Sellami <aziz.sellami@nxp.com>
2025-07-25 08:18:19 -04:00
Thomas Stranger
33f534e82e soc: st: stm32: add stm32c09x support
Adds SoC support for the STM32C091, and the STM32C092 SoCs
which are part of the STM32C0 series.

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2025-07-25 08:14:53 -04:00
Sebastian Głąb
878ddbe2f6 boards: nordic: nrf54l20pdk: Remove obsolete board
Board nrf54l20pdk was renamed to nrf54lm20dk.
Remove obsolete board definition.

Signed-off-by: Sebastian Głąb <sebastian.glab@nordicsemi.no>
2025-07-24 17:00:33 +01:00
Håkon Amundsen
7697eff4fb soc: nrf54h: don't boot radio core if VTOR is not programmed
Booting the radio core when it is not programmed will typically
cause a reset loop. This can happen when programming multiple
images to a device, and the app core image is programmed before
the radio core.

With this change we avoid the reset loop in that case.

Signed-off-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no>
2025-07-24 16:57:45 +01:00
Jonathan Nilsen
56b6e57521 soc: nordic: add IronSide SE compatible UICR support
Add support for generating UICR and associated artifacts in a
format compatible with IronSide SE, to be used for Nordic SoCs
in the Haltium family.

The main feature added with this is the ability to configure certain
global domain peripherals that are managed by the secure domain
through setting UICR.PERIPHCONF. This register points at a blob of
(register address, register value) pairs which are loaded
into the peripherals by IronSide SE ahead of the application boot.

The added helper macros in uicr.h can be used to add register
configurations to the PERIPHCONF. Entries added through these macros
are then extracted by a script, post-processed and placed in a blob
located at specific part of MRAM.

A default PERIPHCONF configuration has been added for the nrf54h20
soc to support the standard BLE use case (matching the configuration
in the soc devicetree).

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-07-24 16:57:45 +01:00
Jonathan Nilsen
b43ae17fdd dts: nordic: update UICR definition on nrf54h20
With IronSide SE there is only one defined UICR which is at
the location of the APPLICATION UICR. Update the devicetree
definition accordingly, and use the "nordic,nrf-uicr" compatible
on the node since the domain distinction added by the v2 compatible
is no longer relevant.

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-07-24 16:57:45 +01:00
Grzegorz Swiderski
b4c18e8999 boards: nrf54h20dk: Merge iron variants into the base variants
This replaces the legacy SDFW compatible board configuration with the
IronSide SE compatible one, thus removing support for running samples
and tests on nRF54H20 devices with the old firmware.

All applications are expected to work on `nrf54h20dk/nrf54h20/cpuapp`
out of the box. For other board targets, all applications are expected
to boot, but may require additional peripheral configuration in UICR.
Build system support for the new UICR format is to be added separately.

Co-authored-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-07-24 16:57:45 +01:00
Arnaud Pouliquen
819990bd29 soc: stm32mp2x: m33: Add soc_early_init_hook to set system clock property
Add soc_early_init_hook() function to update the SystemCoreClock variable,
which represents the reference clock.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
2025-07-23 17:31:08 +01:00
Tahsin Mutlugun
1876f60f9f soc: adi: max32: Move .flashprog into RAMFUNC section
Move functions in .flashprog section into RAMFUNC so that they can be
executed from SRAM.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2025-07-23 17:30:44 +01:00
Tahsin Mutlugun
101e1ee3c1 soc: adi: max32: Use fixed MPU regions
Default MPU configuration marks whole flash area as cacheable. When
reading from an erased section of flash, cache controller may fill cache
lines with ECC corrected data. To prevent this, disable caching on
storage section so that ECC workaround can be applied during reads and
correct data is returned.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2025-07-23 17:30:44 +01: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
Oleh Kravchenko
585cda1360 soc: stm32l1x: Add support for sleep/stop/standby modes
Add stm32l1_disco and nucleo_l152re overlays for testing
sleep/stop/standby modes:
- samples/boards/st/power_mgmt/blinky;
- samples/boards/st/power_mgmt/wkup_pins;

I've measured consumption for each low-power mode:
- low-power sleep ~1.72mA;
- stop mode ~324uA;
- standby mode ~2.2 uA;

It's possible to use RTC as idle timer to exit from stop mode.

Signed-off-by: Oleh Kravchenko <oleg@kaa.org.ua>
2025-07-22 19:38:19 -04:00
John Batch
99860e7339 soc: infineon: cyw20829: Adding MPU memory permission to userspace app
Adds additional MPU memory permissions to userspace applications by
default.  This change addresses an MPU fault encountered when running
tests/kernel/common and tests/drivers/adc/adc_api.

This approach opens additional memory locations up to user space access.
This assumes that end users of applications will tune the MPU regions for
the needs of that application.

Signed-off-by: John Batch <john.batch@infineon.com>
2025-07-22 19:35:52 -04:00
Biwen Li
60defb4087 soc: imx: imx943: enable cache management for Cortex-M33 Core1 in NETCMIX
Enable cache management for Cortex-M33 Core1 of SoC i.MX943.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
2025-07-22 08:14:15 -04:00
Tomasz Chyrowicz
9dd514cade soc: Boot matching radio slot
If the application uses slot 1 (i.e. in Direct XIP mode),
boot radio slot 1 instead of slot 0.

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
2025-07-22 08:10:22 -04:00
Guennadi Liakhovetski
cfd6a0673c SoC: Intel: ACE: remove unused litelals parts in interrupt vectors
Currently the linker script for ACE defines memory regions for
literals in interrupt vector memory. This wastes memory and leads to
link failures when CONFIG_USERSPACE is enabled. Remove those regions
to reclaim 8 bytes per vector and fix linking. Also remove duplicated
level 4 interrupt vector sections and replace spaces with TABS.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2025-07-21 13:04:06 -04:00
Jérôme Pouiller
1ee39b9823 soc: silabs: siwx91x: Fix coding style
There is no reason to place sli_siwx917_soc.h under #ifdef. Then, we can
get rid of the #if in the body of soc_early_init_hook().

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-07-21 09:20:23 -04:00
Jérôme Pouiller
c24936fc40 soc: silabs: Drop useless SOC_PART_NUMBER
Variable CONFIG_SOC_PART_NUMBER is only used in CMakeLists.txt of
hal_silabs. In fact, this variable can be easily calculated from CONFIG_SOC
by changing lower case in upper case.

So, let's drop this useless variable.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-07-21 09:20:23 -04:00
Jérôme Pouiller
215d53ff9d soc: silabs: Drop useless SOC_GECKO_SDID
SOC_GECKO_SDID is no more referenced since commit 955aca6c0 ("soc: silabs:
Initialize clock manager HAL from DT"). We can safety drop it.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-07-21 09:20:23 -04:00
Parthiban Nallathambi
4e78996e16 soc: ti: mspm0: add support for L series
mspm0 family of SoC series is split into three category,

mspm0g - high performance
mspm0l - low power
mspm0c - entry level

With G already part added, add support for L series of SoC's.

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-07-21 07:25:50 -04:00
Parthiban Nallathambi
2dc6307628 soc: ti: mspm0: restructure common files
mspm0 series (currently g, l and c) shares the common SoC
level init functions and pin control/muxing configurations.

To avoid duplication for each series, create a common path
and move the SoC and pin control definitions.

Other common functionalities like Power Management, Power off
handling will be added in future, which will be common across
series.

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-07-21 07:25:50 -04:00
Parthiban Nallathambi
ae596652b1 soc: ti/mspm0: move flash config to common defconfig
Flash size and address is extracted from dts, which will be common
for all the upcoming series of SoC's like MSPM0L, MSPM0C. Move the
flash address and size to soc level defconfig.

Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-07-21 07:25:50 -04:00
Peter van der Perk
2784cac77c soc: nxp: imx95: Fix systick flooding by enabling cache earlier
Systick is already enabled before late hook got called. In certain
circumstances systick could flooding the core and thus only handling
systicks. Enabling cache earlier using soc_early_init_hook ensures
that systick get handled quicker.

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-07-20 12:24:20 -04:00
Tomasz Chyrowicz
d3fa359cb6 soc: Enable radio core if BT is selected
Automatically enable booting radio core if BT HCI interface is enabled.

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
2025-07-19 15:49:02 -04:00
Yongxu Wang
2be211e6af soc: imx93 m33: add tcm init
m33 must ensure the TCM is ECC clean by initializing all dtcm memories
Otherwise, it can only run it by loading m33 under uboot.
Based on this fixed, we can run M33 by mkimage into flash.bin.

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2025-07-19 15:41:20 -04:00
Scott Worley
ef4ec43e63 drivers: timer: microchip: xec: Microchip MEC one kernel timer driver
We want to simplify the maintenance burden and confusion of having
more than one driver for the same kernel timer peripheral used on
all Microchip MEC parts. The XEC version of the driver was converted
register definitions in the driver. Register access is performed using
Zephyr sys_read/write architecture specific inline routines. Driver DT
YAML was updated to use phandle for the 32-bit basic timer used for
ARCH_HAS_CUSTOM_BUSY_WAIT support, basic timer max value property,
and GIRQ interrtup aggregator hardware information.
SoC part Kconfigs, chip level/board level DTSI updated to use the
unified driver.

Signed-off-by: Scott Worley <scott.worley@microchip.com>
2025-07-19 15:39:40 -04:00
Scott Worley
5e6f28d09d soc: microchip: mec: Add Kconfig for Segger RTT debug support
All parts in the Microchip MEC family support ARM JTAG/SWD/SWO.
We add Kconfig logic to allow building projects with Segger's
RTT debug for Cortex-M.

Signed-off-by: Scott Worley <scott.worley@microchip.com>
2025-07-19 15:30:18 -04:00
Jimmy Zheng
a36f767519 soc: andestech: ae350: add ae350/clic configuration
Add ae350/clic soc, which shares the same peripherials as AE350 PLIC
platform but uses CLIC instead of PLIC, with different IRQ number.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2025-07-19 15:28:58 -04:00
Declan Snyder
efdd8580ca soc: nxp: Flatten MCX SOCs
Turn MCX series into families.

Reasoning:
 1. The MCX SOCs are quite different from each other and having them all
    under one family in the HWMv2 hierarchy is fruitless because there
    are so many differences that it is confusing to try to introduce
    family-level code and configs since they would each only apply to a
    subset of the series. There is almost nothing that can be shared
    between all of them. Which is why there are comments in the MCX
    family files saying not to put anything in them. This is a technical
    waste.
 2. Therefore, turning all of them into families is almost 0 effort and
    makes sense. It will allow these different types of MCX to be
    further subdivided into series in the future as the MCX portfolio
    expands and such division will be necessary as new SOCs within each
    letter family are released.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-07-19 13:25:29 -04:00
Francois Ramu
a2ff38725b soc: stm32: symbol for application XiP from xspi external memory
Add a STM32_APP_IN_EXT_FLASH to determine that an application
is eXecuting in Place on an external xspi flash.
That will control the clock init of this external xspi controller.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-07-19 09:49:44 +02:00
Alberto Escolar Piedras
6017c6866b soc/nordic/nrf54l: Set SOC_COMPATIBLE for 54L CPUAPP targets
So we can enable features for both the real and simulated
targets based on these same options.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-07-19 09:38:37 +02:00
Alberto Escolar Piedras
65fb246df1 soc: Add SOC_COMPATIBLE_NRF54LM20* options
In preparation for simulated nRF54LM20 targets, let's add kconfig
options aking to the ones we have for the nRF54L15 devices.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-07-19 09:38:37 +02:00
Alberto Escolar Piedras
cab1f00c12 soc/native/inf_clock/Kconfig: Simply dependencies
After removing NATIVE_APPLICATION, only NATIVE_LIBRARY is
possible with SOC_POSIX.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-07-19 09:38:15 +02:00
Abderrahmane JARMOUNI
f66658a52a soc: stm32: fix FLASH_BASE_ADDR for apps linked in ext Q/OSPI Flash
Following changes in e35ac8f and 14c1b4a to how external Q/OSPI Flash
nodes are declared in DT for boards with STM32 SoCs, FLASH_BASE_ADDRESS
needs to be set manually similar to XSPI Flash, so that it does not
default to (dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_FLASH)) which gives 0.
This change is critical for running apps with MCUboot from external
Q/OSPI Flash.

Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
2025-07-16 16:38:41 -05:00
Sylvio Alves
7b240d4fd4 soc: espressif: cleanup unused linker entries
Remove linker entries that are either not associated
with any functions or are redundant.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-07-11 08:16:19 -10:00
Titan Chen
7a8bd3dbe7 soc : realtek: ec: rts5912: fix VIN polarity issue
fix ulpm driver polarity issue.
when pin-pol set to falling need to set the POL bit to 1.
when pin-pol set to rising need to set the POL bit to 0.

Signed-off-by: Titan Chen <titan.chen@realtek.com>
2025-07-09 17:18:59 -05:00
Khaoula Bidani
d469eb3a8d soc: stm32u3: Update ROM_START_OFFSET
Update offset to 0x400 o align with MCUboot image.

Signed-off-by: Khaoula Bidani <khaoula.bidani-ext@st.com>
2025-07-09 17:15:56 -05:00