Commit graph

6,613 commits

Author SHA1 Message Date
Sylvio Alves
a7a4583e15 soc: esp32: loader: skip non-valid segment after the last valid one
Some ESP32 images may not end with a segment whose
load_addr is 0xFFFFFFFF, especially if the flash was not fully
erased or the image tool does not write an explicit end marker.
This can cause the loader to process leftover or unrelated data as
additional segments, resulting in boot failures.

Update the IS_LAST() macro to treat any segment not matching
a valid memory region as the end of the segment list.
This ensures only valid segments are loaded and any trailing
invalid data is safely skipped.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-07-09 17:13:54 -05:00
Oleh Kravchenko
35b8ff43f4 soc: stm32f1x: Remove redundant code and clear SB flag
There is no need to call stm32_pwr_wkup_pin_cfg_pupd() because
the SoC does not have a pull-up/pull-down on the WKUP pin.

Call LL_PWR_ClearFlag_SB() before entering StandBy power mode.

Signed-off-by: Oleh Kravchenko <oleg@kaa.org.ua>
2025-07-08 18:34:22 -05:00
Sylvio Alves
85b0a9932f soc: espressif: liker: move PHY and RTC calls
Some of ESP32 Radio calls present in blobs needs to be
executed from IRAM or RAM instead of flash to avoid
cache disabled issues.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-07-08 13:39:06 -05:00
Jamie McCrae
85d4ebcf51 soc: nordic: ironside: Fix bleeding config
Fixes generating a library for devices that do not need it which
gives a cmake warning

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-07-07 16:05:53 -05:00
Jamie McCrae
257990d2be soc: nordic: Remove NFCT_PINS_AS_GPIOS Konfig
This Kconfig was deprecated in Zephyr 3.5, remove it

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-07-04 13:09:34 -05:00
Jamie McCrae
7beed788cd soc: nordic: nrf52: Remove prompt from GPIO_AS_PINRESET Kconfig
This Kconfig was deprecated in Zephyr 3.5, remove allowing it to
be selected but keep the symbol as the HAL needs to be updated

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-07-04 13:09:34 -05:00
Oleh Kravchenko
a75abdc5df soc: stm32f1x: fix typo/debug in stop/standby modes
Check for STM32F1 series was done with "#ifdef SOC_SERIES_STM32F1X"
but this symbol comes from Kconfig.

Use the correct "CONFIG_SOC_SERIES_STM32F1X" instead.

Signed-off-by: Oleh Kravchenko <oleg@kaa.org.ua>
2025-07-04 13:05:13 -05:00
Jonathan Nilsen
b18c326946 soc: nordic: move nrf_ironside from drivers/firmware to soc/nordic
Move the IronSide APIs to soc/nordic from drivers/firmware since
these are vendor specific APIs. The header files are now included
from <nrf_ironside/*.h>. Adjust code that uses these APIs accordingly.

Also move the DT binding for "nordic,ironside-call" from
bindings/firmware to bindings/misc.

Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-07-02 17:57:45 -05:00
Grzegorz Swiderski
75dd614437 drivers: firmware: nrf_ironside: Update the spelling
s/IRONside/IronSide/g

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-07-02 17:57:45 -05:00
Pisit Sawangvonganan
0ec49fa570 kconfig: fix typo in (soc, subsys)
Utilize a code spell-checking tool to scan for and correct spelling errors
in `Kconfig` files within the `soc` and `subsys` directory.
Additionally, incorporates a fix recommended by the reviewer.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2025-07-01 10:58:54 -10:00
Adam Kondraciuk
f7fd6b8e54 soc: nordic: s2ram: Optimize s2am marking functions
Optimize `pm_s2ram_mark_check_and_clear()` function.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
2025-07-01 10:55:35 -10:00
Adam Kondraciuk
394f3c75b2 Revert "soc: nordic: s2ram: Align s2ram marking procedures"
The marking procedures can be reverted, since at this stage
it is already allowed to use the stack.
The MSP is temporairly set to interrupt stack in `reset.S` file before
calling s2ram procedures..

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>

This reverts commit e68d110f7c175f2a9275659d023c9d37d1e4b4f1.
2025-07-01 10:55:35 -10:00
Piotr Koziar
545886bcff soc: nordic: nrf54l: add Kconfig to control whether to apply Errata 56
Adds config option that allows configuration workaround 56.

Signed-off-by: Piotr Koziar <piotr.koziar@nordicsemi.no>
2025-07-01 10:54:21 -10:00
Imran Sajjad
63ebb75083 soc: imxrt: mimxrt1011 i2s clock fix
Fix for compiling i2s drivers on the NXP mimxrt1010_evk board.
For mimxrt1011, the defines kCLOCK_Sai2... are not defined as the sai2
peripheral does not exist. Trying to compile gives error. Fixed by adding
check for device tree node around code that uses the defines. Also added
same for sai1 and sai3. Thanks @lucien-nxp, @ZhaoxiangJin from NXP.

Signed-off-by: Imran Sajjad <imran.sajjad@iconfitness.com>
2025-06-30 15:19:24 -05:00
Fin Maaß
514258aa23 riscv: select ATOMIC_OPERATIONS based on RISCV_ISA_EXT_A
use RISCV_ISA_EXT_A to select ATOMIC_OPERATIONS_BUILTIN or
ATOMIC_OPERATIONS_C.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-30 15:17:47 -05:00
Declan Snyder
1f315f1759 soc: nxp: imxrt: Clean up INIT_SYS_PLL
Don't force select INIT_SYS_PLL at SOC level. Instead use default y so
that board can unset it. Keep previous case where we would default y
which was only on RT1040. Also, this config is not used in RT1170 soc,
so move it to RT10xx series kconfig instead of family level. And it
appears to be on all the RT10xx, so ifdef is not needed.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-06-27 18:27:26 -05:00
Declan Snyder
ef2271ecab soc: imxrt: Clean up INIT_VIDEO_PLL config
Don't force select the INIT_VIDEO_PLL config so that board level can
unset it. Also clean up the code a bit in soc.c files.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-06-27 18:27:26 -05:00
Declan Snyder
79713a539f soc: imxrt11xx: Clean up LDO configs
The LDO config should not be forcefully selected at SOC level. Instead,
use soft default y so that board definition can unset it if desired.

Also, in the soc.c, the LDO code should be on both the rt1160 and
rt1170, so the definitions should exist, and ifdef is not needed. So can
switch to IS_ENABLED to decrease configuration complexity of the source
code.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-06-27 18:27:26 -05:00
Declan Snyder
305a7e6c8d soc: nxp: imxrt: Remove ifdef around DCDC
The DCDC should be on all the platforms and the functions and structs
should therefore be defined on all the platforms. So the ifdef is not
needed, we can remove it to increase code compilation coverage unity
across configurations slightly. Compiler should optimize out the block
when IS_ENABLED is false statically.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-06-27 18:27:26 -05:00
Declan Snyder
16e74b9249 soc: imxrt: Clean up INIT_ARM_PLL config
Don't forcefully select this config in SOC level. Make it softer default
y so board can unselect it.

The config should not be possible if there is no arm pll, namely on
RT101x and RT102x. So add dependency clause about this.

And of course, code for this was a mess, clean up a bit.

Also remove the ifdeffry for selecting a default value for the two SOCs,
because they already put the same default value in the SOC Devicetree
DTSI, so that code had no purpose as long as a board didn't completely
redefine the SOC DT.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-06-27 18:27:26 -05:00
Declan Snyder
d33f7feb64 soc: imxrt: Clean up INIT_ENET_PLL config
Initial motivation for this commit was to not force select
the INIT_ENET_PLL config from SOC level to allow for board level
configuration which might want it to be off.

While doing that, I discovered that RT11xx actually does not have
anything called by "ENET PLL" in the reference manual. So I have
removed the config for RT11xx. The default clock source for this soc.c
code for RT11xx is PLL1 DIV2, which I changed to just be configured if
ethernet is enabled, which was the reason to configure this pll as it
stands now, even though it is not specific to ethernet (although the
DIV2 output is mostly for ethernet). Another config is therefore not
needed.

For RT10xx, the situation is a lot more complicated. There is a lot of
discrepancy again between what is considered the "ENET PLL" both
conceptually and literally between the RM, SDK, and Zephyr config. And
also the code to define the config struct was a complete mess. So I have
simplified the code and changed it so that the config is only a soft
default to y instead of selected forcefully. Also, for the case of the
RT1010 and RT1020 series, the SDK is appearing to configure PLL6 (again
there is no clear ENET PLL meaning on these platforms) 500M output
through this "enet pll" configuration function. So similarly instead of
always enabling this output for those platforms, I added a new config
which can be set or unset by board level.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2025-06-27 18:27:26 -05:00
Sylvio Alves
1df3403393 soc: esp32c6: add BLE support
Add BLE support to ESP32-C6 series.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-06-27 18:27:15 -05:00
Karol Lasończyk
387520c867 soc: nrf: Add nRF54LM20A device
Adding nRF54LM20A device.

Signed-off-by: Karol Lasończyk <karol.lasonczyk@nordicsemi.no>
2025-06-27 18:26:57 -05:00
Mahesh Mahadevan
14b1ba15ac drivers: timer: Fix the logic to compensate the clock when turned off
The original logic relied on the tick passed in. This method
is inaccurate as the tick value passed in was the exit latency.
Update the code to calculate the remaining time left and set
a counter using this value.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2025-06-27 18:21:25 -05:00
Raymond Lei
581e7ff2aa drivers: spi: nxp: flexiospi spi_loopback test failed on flexio spi
Several reason cause loopback test failed:
a) FlexIO input frequency is not correct, on RT11xx, input freq is 24M,
while max baud rate can reach 1/4 of input freq, so it can only support
6Mbps.
b) Flexio shift register depend on correct timer output to triggger TX
and RX, if timer comparison value is not accurate, RX error happens on
high baud rate. This is the reason why test fails on RT1060.

also fix a error on FlexIO clock ID calculation.

Signed-off-by: Raymond Lei <raymond.lei@nxp.com>
2025-06-27 09:05:47 -10:00
Guennadi Liakhovetski
935da29ab8 soc: intel_adsp: (cosmetic) make a function static
z_intel_adsp_ipc_isr() doesn't need to be global, make it static.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2025-06-27 09:04:12 -10:00
William Tambe
abeccfec28 xtensa: support for more than 32 interrupts
This change add support for using more than 32 interrupts.

Signed-off-by: William Tambe <williamt@cadence.com>
2025-06-27 08:59:56 -10:00
jens rudberg
f503313fdf drivers: mcxc osc: use oscillator internal capacitance value from DT
Use default value 0 if board DT doesn't define it.e
It's totally fine if the board device tree doen't define
load_capacitance_picofarads for the crystal oscillator. In that case,
just fallback to 0.

Signed-off-by: jens rudberg <jens@teenage.engineering>
2025-06-27 08:55:33 -10:00
Jérôme Pouiller
ca9650134f soc: silabs: siwx91x: Clean output names
The siwx91x need a specific firmware image format. These image end with
.rps extension. The current name of the image is zephyr.bin.rps. However,
the .bin suffix is not relevant. It makes even more sense if we consider
the output of west sign: zephyr.signed.bin.rps. We can simplify these name
by remove the .bin suffix.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-06-27 10:06:16 -05:00
Jérôme Pouiller
c13d09d7b4 soc: silabs: siwx91x: Call "west sign" automatically
Once the keys has been provisioned on the Silabs siwx91x, the chip expects
the firmware to be properly signed.

This PR automate the signing process. Hence, "west flash" will work as
expected.

Co-developed-by: Aasim Shaik <aasim.shaik@silabs.com>
Signed-off-by: Aasim Shaik <aasim.shaik@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-06-27 10:06:16 -05:00
Jérôme Pouiller
00b3c53704 soc: silabs: siwx91x: Support "west sign"
Silabs siwx91x support signed and encrypted firmwares. This PR includes
support for these features in "west sign"

Co-developed-by: Aasim Shaik <aasim.shaik@silabs.com>
Signed-off-by: Aasim Shaik <aasim.shaik@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-06-27 10:06:16 -05:00
Jérôme Pouiller
f3de7cdb1d soc: silabs: siwx91x: Disable generation of .hex output
Disable generation of .hex output, since the Commander runner
prefers it over the .bin output but SiWx91x needs a .bin.rps file.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
Co-developed-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-06-27 10:06:16 -05:00
Jérôme Pouiller
d2fb79886d soc: silabs: siwx91x: Use runner props to select file to flash
Use runners_yaml_props_target to set the name of the file to
flash, rather than hard-coding it for each board.

Co-developed-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-06-27 10:06:16 -05:00
Guennadi Liakhovetski
2502567595 SoC: Intel: ADSP: enable instruction cache
All intel_adsp architectures have instruction cache. Selecting
CPU_HAS_ICACHE fixes gdb memory writing problems.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2025-06-27 10:03:25 -05:00
Simon Maurer
fc3cdb8a67 soc: xlnx: zynq7000: remove FPU FMAC support
Floating-Point System ID register (FPSID)        = 0x41033094
AArch32 Media and VFP Feature Register 0 (MVFR0) = 0x10110222
AArch32 Media and VFP Feature Register 0 (MVFR1) =  0x1111111

MVFR1 SIMDFMAC, bits [31:28] = 0; FMAC is not supported

Signed-off-by: Simon Maurer <mail@maurer.systems>
2025-06-27 09:50:43 -05:00
Simon Maurer
cb982d16ef soc: xlnx: zynq7000: add FPU support
According to its datasheet the Zynq 7000 has a VFPv3 FPU

Signed-off-by: Simon Maurer <mail@maurer.systems>
2025-06-27 09:50:43 -05:00
David Jewsbury
c237253fe7 drivers: spi: Support spim01/spis01 instances for nordic devices
Extend SPI driver to support spims01 and spim01.

Signed-off-by: David Jewsbury <david.jewsbury@nordicsemi.no>
2025-06-27 10:58:02 +02:00
Steven Chang
03227c3520 drivers: watchdog: watchdog driver
Add watchdog driver for ENE KB106X

Signed-off-by: Steven Chang <steven@ene.com.tw>
2025-06-27 10:57:20 +02:00
Steven Chang
7ce78aa294 drivers: pwm: pwm driver
Add pwm driver for ENE KB106X

Signed-off-by: Steven Chang <steven@ene.com.tw>
2025-06-27 10:57:20 +02:00
Steven Chang
bffb1530ab drivers: adc: adc driver
Add adc driver for ENE KB106X

Signed-off-by: Steven Chang <steven@ene.com.tw>
2025-06-27 10:57:20 +02:00
Steven Chang
43f311bf61 drivers: uart: uart driver
Add uart driver for ENE KB1200

Signed-off-by: Steven Chang <steven@ene.com.tw>
2025-06-27 10:57:20 +02:00
Steven Chang
7d2be3bbff drivers: gpio: gpio driver
Add gpio driver for ENE KB106X

Signed-off-by: Steven Chang <steven@ene.com.tw>
2025-06-27 10:57:20 +02:00
Steven Chang
d9310b6648 drivers: pinctrl: pinctrl driver
Add pinctrl driver for ENE KB106X

Signed-off-by: Steven Chang <steven@ene.com.tw>
2025-06-27 10:57:20 +02:00
Steven Chang
65991a8668 soc: ene: kb106x soc
Add ENE KB106X SoC

Signed-off-by: Steven Chang <steven@ene.com.tw>
2025-06-27 10:57:20 +02:00
Duy Nguyen
529f420fcb boards: renesas: Fix incorrect partnumber for RSK-RX130
The part number of SOC using on RSK-RX130 is R5F51308AXFP
This commit fix the mistake

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
2025-06-27 09:42:49 +02:00
Tony Han
1fe28da972 soc: microchip: sam: update NUM_IRQS default value for sama7g5
Enlarge NUM_IRQS by 32 which is the number of interrupts for
SGI (Software Generated Interrupts) and PPI (Private Peripheral
Interrupts).

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-06-27 09:42:36 +02:00
Tony Han
486486cac3 soc: microchip: sam-clk: optimize get_rate() for MCKx clocks
Obtain the divisor value for generate the corresponding MCKx from the
register instead of from the variable to avoid wrong result caused by
un-synced division ratios.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-06-27 09:42:36 +02:00
Tony Han
5a4d714d91 soc: microchip: sam-clk: optimize get_rate() for generic clocks
Obtain generic clock division ratio from the register instead of
from the variable to avoid wrong result caused by un-synced
division ratios.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-06-27 09:42:36 +02:00
Andrew Davis
5359a1e84e soc: ti: k3: Add AM64 R5F core support
The TI AM64 SoC contains two dual-core R5F clusters. Add support for
all four of these cores here.

Signed-off-by: Andrew Davis <afd@ti.com>
2025-06-27 09:42:06 +02:00
Ishraq Ibne Ashraf
f4383430b9 soc: nxp: kinetis: Add SoC support for k32lx platforms.
Adding supporting soc files for the k32lx platforms and updating
soc.yaml.

Signed-off-by: Ishraq Ibne Ashraf <ishraq.i.ashraf@gmail.com>

soc: nxp: kinetis: k32lx: Use device tree provided value

This clock frequency value will be defined in the board device tree.

Signed-off-by: Ishraq Ibne Ashraf <ishraq.i.ashraf@gmail.com>
2025-06-26 22:15:10 -05:00