Commit graph

6,613 commits

Author SHA1 Message Date
Felix Wang
0cb44d75ac soc: nxp: kinetis: clock update for LPIT instances on KE1XZ
Configure LPIT0 IP clock if devicetree status is okay.

Signed-off-by: Felix Wang <fei.wang_3@nxp.com>
2025-09-16 16:06:48 +02:00
Matteo Vigni
caef47ba75 soc: st: stm32: stm32h7x: Add initialization of TCM
Add ITCM and DTCM initialization code in soc_reset_hook() on M7 core.

Signed-off-by: Matteo Vigni <mvigni@enphaseenergy.com>
2025-09-16 10:54:17 +01:00
Phuc Pham
5a193b2f7d soc: renesas: Add linker support for OpenAMP sample on Renesas RZ/V2L
Add linker support for OpenAMP sample on Renesas RZ/V2L

Signed-off-by: Phuc Pham <phuc.pham.xr@bp.renesas.com>
Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
2025-09-16 09:54:57 +02:00
Jeremy Dick
0494e3c7f8 dts: arm: renesas: ra: Separate the OFS memory into individual regions
Create separate memory regions for each OFS register. With a single
region the linker will gap fill the load segment with zeros between
each option setting section that gets placed in the region when
generating the .elf file.

Signed-off-by: Jeremy Dick <jdick@pivotint.com>
2025-09-16 09:54:25 +02:00
Tom Chang
f41532eb1b soc: npcx: update register definition for GDMA
This commit updates the GDMA register definitions to align with the
specifications of the chip series.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2025-09-16 09:53:30 +02:00
Fabian Pflug
5d12b68528 soc: ti: cc23x0: disable .bin generation
The .bin file is huge (>1GB) and will probably not be used by anyone if
there are much smaller alternatives. Because of that, disable it by
default for this soc. There is also no support for generating the
CRC32 checksum for the ccfg section in the binary.

Signed-off-by: Fabian Pflug <fabian.pflug@gumulka.eu>
2025-09-15 14:06:11 -04:00
Fabian Pflug
38b9f1f8a8 soc: ti: cc23x0: Add helper script to calculate crc32
As stated in [0] section 9.2 Customer Configuration:

	There are four different CRCs used to validate the CCFG data.
	One of the CRCs, the user record CRC, is optional and is the
	last four bytes of the 128B user record. The data over which
	the CRC is calculated starts at “Data Start Offset” from Table
	9-2 and ends at the "CRC Offset". CRC field width is 4 bytes.

Meaning the MCU will not start if the CRC fields are not correct.
TI's tools will automagically set these fields, but other tools have to
do it by hand. Therefore a new post-build-command is introduced to set
the fields at least in the .hex file by generating a new _crc32.hex
file.

[0] https://www.ti.com/lit/ug/swcu193a/swcu193a.pdf

Signed-off-by: Fabian Pflug <fabian.pflug@gumulka.eu>
2025-09-15 14:06:11 -04:00
Sebastian Bøe
32c6776256 soc: nordic: uicr: Fix dependency issue
Although not reproducible locally, it has been observed in CI that the
uicr image will not always be the last image to be run.

To ensure it is the last image to be run we have it depend on the
'image' image when defined.

The uicr image is generated based on all other images in the build and
must therefore run last.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-15 12:09:22 +02:00
Tomasz Leman
a1adced1c4 intel_adsp: ace: Remove redundant HPSRAM init from D3 restore
Remove hp_sram_init() call from boot_d3_restore() as it's redundant and
causes TLB access errors. The TLB driver's adsp_mm_restore_context()
already handles all HPSRAM power management and content restoration.

The removed code was attempting to zero memory regions that are
intentionally unmapped by the TLB driver for power optimization, causing
access to disabled TLB entries during D3→D0 transitions.

Additionally, hp_sram_init() powers up all memory banks while the TLB
restore function correctly enables only the banks that were actually
used, maintaining proper power optimization.

Current flow causes errors in simulation which revealed this incorrect
double initialization in test scenarios with minimal firmware
configurations.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2025-09-15 12:08:21 +02:00
Maciej Kusio
df40dff6fb arch: xtensa: clean up interrupt handling
Simplifying flow of handling interrupts:
- removing all _soc_inthandlers.h
- removing xtensa_intgen*
- removing XTENSA_GEN_HANDLERS Kconfig
- keeping optimized irq detection
- single handler with irq level as parameter

Signed-off-by: Maciej Kusio <rysiof@gmail.com>
2025-09-14 17:02:20 +02:00
Mohamed Azhar
17b97851ff drivers: gpio: microchip: add gpio driver for Port G1 IP
Add gpio driver for Microchip Port G1 Peripheral IPs

Signed-off-by: Mohamed Azhar <mohamed.azhar@microchip.com>
2025-09-13 18:13:33 -04:00
Arunprasath P
df2a0e53ff soc: microchip: add support for PIC32CM JH SoC series
Adds initial SoC-level support for the Microchip
PIC32CM JH series, including SoC definition files.

Signed-off-by: Arunprasath P <arunprasath.p@microchip.com>
2025-09-13 18:13:33 -04:00
Marek Maškarinec
64984bb618 soc: st: Add stm32l083xx
Add stm32l083xx SoC variants that are similar to stm32l073xx with an added
AES accelerator.

Signed-off-by: Marek Maškarinec <marek.maskarinec@hardwario.com>
2025-09-12 18:31:55 +02:00
Vit Stanicek
84373c4c64 soc: mimxrt685s/hifi4: Fix HW cycle count
Change hardware cycle count (CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC) to 594
MHz. Move that value to the SoC layer's DT.

Validated with the amp_blinky example - the period of the blinking LED
is exactly 2 seconds, like was programmed.

Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
2025-09-12 13:21:24 +02:00
Marek Matej
3476212f72 soc: espressif: esp32h2: remove kernel include
Remove unnecessary include from ESP32-H2 SoC sources.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2025-09-12 13:21:02 +02:00
Tim Lin
24de607380 drivers/i2c: it8xxx2: Allow I2C target entry power saving mode
Add I2C_TARGET_ALLOW_POWER_SAVING config. Enable this config makes I2C
target device can enter Doze/Deep doze states while the bus is idle.
Ongoing transfers will block low-power entry until they are completed,
ensuring correct communication while still reducing overall power
consumption.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-09-12 13:20:51 +02:00
Thomas Stranger
0414683260 soc: st: stm32: add stm32c051 support
Add STM32C051 to the STM32C0 series

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2025-09-12 08:20:07 +01:00
Sylvio Alves
9b16701f8e soc: espressif: place arch_common in IRAM for proper boot
Ensure sw_isr_common, dynamic_isr, and init routines are executed from IRAM
by relocating libarch__common.a section.

Running these from flash prevents the board from booting properly, as flash
access is not available during early initialization.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-09-11 18:09:32 +01:00
Ayush Singh
881cc72183 soc: ti: k3: Add support for AM6254 A53 cores
- AM6254 is a variant of AM6234 with GPU.
- Used in rev A1 of PocketBeagle 2

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-09-11 18:07:17 +01:00
Ayush Singh
a60167c7f7 soc: ti: k3: Add support for AM6254 m4f
- AM6254 is a variant of AM6234 with GPU.
- Used in the rev A1 of PocketBeagle 2

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-09-11 18:07:17 +01:00
Adam Kondraciuk
8a5365c26c soc: nordic: nrf54h: s2ram: Add FPU retention
Add FPU power management for suspend to RAM procedures.
Add FPU save/restore procedures when `FPU_SHARING` feature
is disabled.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
2025-09-11 06:26:49 -04:00
Khoa Nguyen
7ea7e13b9c soc: renesas: ra: Update init flow to start second core
- Add ``R_BSP_SecondaryCoreStart`` for the primary core to start
the secondary core
- Disable ``clock_init`` for the secondary core

Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
2025-09-11 09:53:13 +02:00
Khoa Nguyen
614889b32b soc: renesas: ra: Add configs to enable building second core app
Add configs to enable building the second core app

Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
2025-09-11 09:53:13 +02:00
Khoa Nguyen
8a1118f03c soc: renesas: ra: Correct the duplicate section for ek_ra8p1
Correct the duplicate section for Renesas ek_ra8p1

Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
2025-09-11 09:53:13 +02:00
Clark Kim
4f948f15af soc: nxp: imxrt7xx: Add pmic interrupt APIs
Add pmic interrupt enable/disable/clear APIs

Signed-off-by: Clark Kim <clark.kim@nxp.com>
2025-09-10 22:44:33 -04:00
Muhammad Waleed Badar
7601db8e4e soc: esp32: Enable ESP32_REGION_1_NOINIT by default
Use DRAM region 1 as the default spill area for the `.noinit`
section if appcpu is not present

Signed-off-by: Muhammad Waleed Badar <walid.badar@gmail.com>
2025-09-10 22:39:04 -04:00
Sanjay Vallimanalan
199017fa94 soc: mspm0: add poweroff support
add support for SHUTDOWN operating mode in TI MSPM0 series for power-off
operation. Uses HWINFO for reset cause detection to handle shutdown IO
release on low power wakeup.

Signed-off-by: Sanjay Vallimanalan <sanjay@linumiz.com>
Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-09-10 18:37:11 +02:00
Sanjay Vallimanalan
0c7edef7ad soc: mspm0: add power management support
TI MSPM0 series supports range of power modes (RUN/SLEEP, STOP, STANDBY)
supporting low power operations. Provides automatic restoration to
RUN mode on wakeup from any low power state.

Signed-off-by: Sanjay Vallimanalan <sanjay@linumiz.com>
Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com>
2025-09-10 18:37:11 +02:00
Luca Burelli
26fd9a691e soc/ambiq/apollo5x: fix ARMV8_1_M_PMU_EVENTCNT being globally set
Other targets that define this symbol do it in the Kconfig file, and
gate it with a SOC_ model or series symbol. Defining a default in the
Kconfig.soc instead applies it on every build, which is not desired.

Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
2025-09-10 16:40:27 +02:00
Sebastian Bøe
50d7308473 soc: nordic: nrf54h: Add support for CPURAD DEBUG_WAIT
Add support for halting the Radio core immediately after reset. This
ensures that a debugger can attach and take control from the very
first instruction.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-10 16:40:19 +02:00
Bjarki Arge Andreasen
00afc18985 soc: nordic: nrf54h20: enable PM_DEVICE_RUNTIME if PM by default
PM on the nrf54h20 has minimal utility if power domains and devices
are not managed at runtime, as these prevent the soc from entering
sleep states in the first place. Enable PM_DEVICE by default if PM,
which in turn enables PM_DEVICE_RUNTIME for devices and power
domains.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2025-09-10 16:40:11 +02:00
Danny Oerndrup
912ffe27df soc_native: Fix missing include of stdbool.h
The header posix_soc.h was missing include of stdbool.h as bool is used
as a function parameter.

Signed-off-by: Danny Oerndrup <daor@demant.com>
2025-09-10 13:02:58 +02:00
Aksel Skauge Mellbye
188627f61d soc: silabs: Support image properties for Series 2
Add image properties data structure to Series 2 binaries.
This data structure is used by the SE or bootloader to enforce
secure boot, and by other tools to extract image information.

Use the app version if set, or fall back to the kernel version
for the image version field. Set image type based on Kconfig
options.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-09-10 13:02:48 +02:00
Sebastian Bøe
363bad0705 soc: nordic: ironside: Clean up error code docs
Clean up error code docs.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-09 19:05:47 -04:00
Sebastian Bøe
377a18caee soc: nordic: ironside: Add bootmode service
Added support for the IronSide bootmode service which allows requesting
a reboot into secondary firmware boot mode. In this mode, the secondary
configuration defined in UICR is applied instead of the primary one.

The service provides the ironside_bootmode_secondary_reboot() function
that can pass message data to the boot report of the CPU booted in the
secondary boot mode.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-09 19:05:47 -04:00
Anas Nashif
f5d7081710 kernel: do not include ksched.h in subsys/soc code
Do not directly include and use APIs from ksched.h outside of the
kernel. For now do this using more suitable (ipi.h and
kernel_internal.h) internal APIs until more cleanup is done.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-09-09 11:45:06 +02:00
Yongxu Wang
cfb1ae4efe soc: nxp: imx95: set and restore wakeup irq mask in pm context
The CMC interface controls the entry and exit of the
CPU's low-power mode and the identification of the wake-up source.
To ensure the normal operation of the system's low-power timing sequence,
when transfer IDLE_RUN to IDLE_SLEEP, it is necessary to ensure
that the system is not awakened by the wake-up source during this stage.
Therefore, an IRQ MASK needs to be set on the CMC

Before the CPU enters the low power mode, a wake up mask needs to be set
according to the situation where the interrupt controller is enabled
at that time.
After the cpu exits the low power mode, resume needs to be performed

Signed-off-by: Yongxu Wang <yongxu.wang@nxp.com>
2025-09-09 10:31:22 +02:00
Andre Heinemans
1282481654 soc: nxp: imx95: increase ROM_START_OFFSET in case of BOOTLOADER_MCUBOOT
The insertion of MCUBOOT header will shift the rom code ahead with
0x800 bytes because of memory alignment

Signed-off-by: Andre Heinemans <andre.heinemans@nxp.com>
2025-09-09 07:35:15 +02:00
Sebastian Bøe
3648cd87d4 soc: nordic: gen_uicr: Support secondary firmware
Add support for secondary firmware in gen_uicr.py.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-08 15:52:20 -04:00
Sebastian Bøe
67b0e045eb soc: nordic: Update UICR format
Update the C struct for UICR to the latest revision.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-08 15:52:20 -04:00
Sebastian Bøe
180f1f8917 soc: noric: nrf54h20: Fix custom CONFIG_KERNEL_BIN_NAME bug
Fix bug where users were unable to name their binary Bøe when building
for nrf54h20.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-08 15:52:20 -04:00
Anas Nashif
5e6e3a6de3 arch: mark z_prep_c as FUNC_NORETURN
z_prep_c does not return, mark it as such consistently across
architectures.  We had some arches do that, others not. This resolves a
few coding guideline violations in arch code.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-09-08 15:51:07 -04:00
Anas Nashif
6ad396344d soc: espressif: declare z_cstart
Declare z_cstart as extern as otherwise we will need to pull in
kernel_internal.h.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-09-08 15:51:07 -04:00
Anas Nashif
6b46c826aa arch: init: z_bss_zero -> arch_bss_zero
Do not use private API prefix and move to architecture interface as
those functions are primarily used across arches and can be defined by
the architecture.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-09-08 15:51:07 -04:00
Anas Nashif
53a51b9287 kernel/arch: Move early init/boot code out of init/kernel headers
Cleanup init.c code and move early boot code into arch/ and make it
accessible outside of the boot process/kernel.

All of this code is not related to the 'kernel' and is mostly used
within the architecture boot / setup process.

The way it was done, some soc code was including kernel_internal.h
directly, which shouldn't be done.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-09-08 15:51:07 -04:00
Sebastian Bøe
789f3cea8c soc: nordic: ironside: Update boot report structures and error codes
Restructure the IronSide boot report interface with enhanced error
reporting and boot context information.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2025-09-08 16:01:46 +02:00
Tomáš Juřena
e4e666b951 soc: st: stm32: stm32c0x: Add stop mode support
Enables low power stop mode for C0.

Code is taken from F4 family, tested on nucleo-c71rb with
samples/basic/blinky.

Power consumption in run mode 3.7 mA, in stop mode ~87 uA.

Signed-off-by: Tomáš Juřena <jurenatomas@gmail.com>
2025-09-08 09:48:12 +02:00
Ivynya Lu
41a7f95f35 soc: nordic: nrf53: assign pin xl1,xl2 to app core if lfxo disabled
Fixes zephyrproject-rtos/zephyr#92663

Disabled LFXO via devicetree allows pin 0.00 and 0.01 to work correctly
as gpio by assigning it to the app core instead of peripheral. Removed
deprecated Kconfig options so DT is the only config path now.

Signed-off-by: Ivynya Lu <ivy.lu@level.co>
2025-09-05 16:49:38 -04:00
Appana Durga Kedareswara rao
687e081dfc soc: amd: Add initial support for Versal Net SoC APU (Cortex-A78)
Add initial support for the Versal Net SoC APU, which is based on
the Arm Cortex-A78 processor. It includes basic wiring for memory
regions, UART, interrupt controller, and timer.

The versalnet_apu.dtsi file defines peripherals shared across the SoC,
while versalnet_a78.dtsi captures peripherals private to the Cortex-A78
processor. These device trees lay the groundwork for further APU-based
development on the Versal Net platform.

Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
2025-09-05 16:48:38 -04:00
Sean Kyer
3b60bb91e9 native: cpu_freq: Add CPU freq support to native_sim
Define P-states for native_sim and add mock cpu_freq
driver.

Signed-off-by: Sean Kyer <Sean.Kyer@analog.com>
2025-09-05 07:43:56 +02:00