Commit graph

7,339 commits

Author SHA1 Message Date
cyliang tw
5b921c53b0 soc: nuvoton: numaker: add poweroff for m46x
Add support of sys_poweroff API on m46x series.
It could support SPD standby or DPD deep power down mode.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2024-08-01 12:37:47 +02:00
Anke Xiao
643e464c76 modules: Kconfig.mcux: remove HAS_MCUX_ACMP
Remove the ‘HAS_MCUX_ACMP’ Kconfig, and also remove it from
driver and soc Kconfig files. It is not needed since we already
depend on 'ACMP' enabled in the dt file, the 'HAS_MCUX_ACMP'
kconfig is a relic of the past before devicetree was stable.

Signed-off-by: Anke Xiao <anke.xiao@nxp.com>
2024-08-01 12:37:23 +02:00
Gerard Marull-Paretas
4c84a6f658 soc: nordic: nrf53: introduce deprecated BOARD_ENABLE_CPUNET
So that existing code does not break when this option gets removed from
boards.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-08-01 08:56:56 +01:00
Gerard Marull-Paretas
f611fdd6ad soc: nordic: nrf53: add option to enable cpunet
When not using BT, users may want to enable the cpunet core. Until now,
this has been done at board level (so duplicating unnecessary code)
using CONFIG_BOARD_ENABLE_CPUNET. The board-level options were usually
enabled automatically for BT, however, this was unnecessary as BT driver
already takes care of the setup.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-08-01 08:56:56 +01:00
Manuel Argüelles
6c7d836b0c drivers: nxp: convert SIUL2 drivers to native
Convert pin control, GPIO and external interrupt controller drivers
based on SIUL2 peripheral to native drivers. This must be done in a
single commit to preserve atomicity, as these drivers depend on each
other.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2024-07-31 10:08:24 +02:00
Rahul Arasikere
cc11b26a7d soc: st: stm32f765xx: Correct total number of IRQS.
The total number of IRQs for this chip is 110.
Refer to the reference manual table 46 for IRQs.

Signed-off-by: Rahul Arasikere <arasikere.rahul@gmail.com>
2024-07-30 18:28:53 +01:00
Fin Maaß
1cc82003e7 soc: riscv: litex: use value from dts
use value from dts for
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-07-29 14:29:20 +02:00
Sreeram Tatapudi
eebc998a5a drivers: flash: Support for IFX QSPI Flash driver
Initial version

Signed-off-by: Sreeram Tatapudi <sreeram.praveen@infineon.com>
2024-07-29 14:14:10 +02:00
Jiafei Pan
ea1a0a6950 board: imx93_evk: enable ENET support for Cortex-A Core
Add ENET 1G support on Cortex-A Core, enable it in DTS.
Updated board document for supported features.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2024-07-28 07:31:32 +03:00
Tim Lin
6a4a164b54 soc: it8xxx2: linker: Move zephyr library to RAM to enhance performance
Place zephyr library in ILM. This can improve performance.

test:
Print the message 10000 times with 1ms sleep interval to compare the
time difference before and after adding RAM code on the it82002bw evb.

                         RAM code size     save time
original:                1954 bytes
libzephyr.a:            +16974 bytes      -608ms

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-07-27 20:49:47 +03:00
Tim Lin
2ab908bcf2 soc: it8xxx2: linker: Move kernel library to RAM to enhance performance
Place kernel library in ILM. This can improve performance.

test:
Print the message 10000 times with 1ms sleep interval to compare the
time difference before and after adding RAM code on the it82002bw evb.

                         RAM code size    save time
original:                1954 bytes
libkernel.a:            +8941 bytes      -649ms

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-07-27 20:49:47 +03:00
Tim Lin
c5cf53b690 soc: it8xxx2: linker: Move serial library to RAM to enhance performance
Place serial library in ILM. This can improve performance.

test:
Print the message 10000 times with 1ms sleep interval to compare the
time difference before and after adding RAM code on the it82002bw evb.

                         RAM code size    save time
original:                1954 bytes
libdrivers__serial.a:   +2282 bytes      -226ms

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-07-27 20:49:47 +03:00
Pieter De Gendt
ad63ca284e kconfig: replace known integer constants with variables
Make the intent of the value clear and avoid invalid ranges with typos.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-07-27 20:49:15 +03:00
Rubin Gerritsen
893c4ed4f9 modules: hal_nordic: Support EGU130 driver instance
Adds the glue code to enable this.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2024-07-27 15:15:07 +03:00
Manuel Argüelles
ec7289039b soc: s32k3: fix RAM retention
Initialize TCM and SRAM contents only after a destructive reset (e.g.
PoR reset). SRAM retains content during functional reset through a
hardware mechanism, therefore accesses do not cause content
corruption errors.

Fixes #75912

Signed-off-by: Manuel Argüelles <marguelles.dev@gmail.com>
2024-07-27 15:14:01 +03:00
Manuel Argüelles
a8ebb05506 soc: nxp: s32k1: obtain system clock freq from dt
In S32K1 devices, Arm Systick clock frequency is equal to the
CPU core clock frequency, and its value can be obtained from
devicetree.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2024-07-27 15:07:00 +03:00
Guennadi Liakhovetski
1497f77cc8 intel: adsp: make SRAM power-off configurable
Currently the code suggests, that setting the SRAM disabling mask to
0 skips powering off SRAM, whereas in fact it's the address of the
mask variable that's checked for NULL. Make this consistent and let
platforms select whether SRAM power down should be selected.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-07-27 10:44:02 +03:00
Guennadi Liakhovetski
293fa118df intel: adsp: fix firmware image in IMR overwriting
The IMR is used by the firmware to hold its own copy for hot-booting
and for an "L3 heap," used for slow large allocations like loadable
libraries. The beginning of the L3 heap is currently hard-coded and
now the firmware has grown too large to fit into the dedicated area
so that it gets overwritten by heap allocations. This is a critical
bug that needs an urgent solution, for which we increase the offset,
but a real fix must calculate the L3 heap offset automatically.

BugLink: https://github.com/thesofproject/sof/issues/9308
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-07-27 10:42:27 +03:00
Evgeniy Paltsev
5869926063 arc: nsim: vpx5: fix SoC config issue which leads to cmake error
After recent nsim SoCs & boards reorganization the SOC_SERIES_*
config is missing for vpx5 SoC which leads to cmake errors
when building against nsim/nsim_vpx5 configuration.

Fix that and align soc series name in soc.yml

Signed-off-by: Evgeniy Paltsev <PaltsevEvgeniy@gmail.com>
Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
2024-07-17 16:18:40 -04:00
Alberto Escolar Piedras
c346c77a2a soc/espressif/esp32c6: Do not set HAS_PM or HAS_POWEROFF
The source files required for this features are not present
in the tree for this SOC.
So if CONFIG_PM or CONFIG_POWEROFF are enabled, there would
be a cmake failure.

Let's just indicate these features are not supported in
kconfig.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-07-16 12:53:09 -04:00
Tomi Fontanilles
2e012668e9 modules: tf-m: nordic: fix unused CMake variable warning
Follow-up to d830446c91 that removed
the use of ${ZEPHYR_BASE}.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-07-12 20:39:26 -04:00
Jimmy Zheng
f989ed949a driver: interrupt_controller: nuclei_eclic: fixed interrupt level
CLIC should be the first level interrupt controller because it replaces
the basic RISC-V local interrupt.
The interrupt level in CLIC controls preemption between IRQs, rather than
specifying the number of nested interrupt controllers.
Removed CONFIG_MULTI_LEVEL_INTERRUPTS and the incorrect interrupt level.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2024-07-12 16:09:22 -04:00
Guennadi Liakhovetski
46b356a6b0 intel-adsp: fix ACE power-off assembly
A recent commit fb53d2ef8d ("ace: power: replace pseudo-assembly
movi") contained a bug: the Xtensa "movi" assembly instruction must
be written with the immediate argument already shifted left by 8, the
compiler doesn't do that automatically. This still somehow worked on
MTL but failed on LNL. Fix both occurrences.

Fixes: #75700
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-07-12 05:48:20 -04:00
Sylvio Alves
0c5d5f796f soc: espressif: disable RNG entropy before app runs
SARADC was kept enabled to feed RNG entropy peripheral,
adding instability to Wi-Fi connection. So we disable it
before app runs as RNG driver already got initial entropy values.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2024-07-11 16:19:55 -04:00
Nikodem Kastelik
c0d508a142 soc: nordic: common: dmm: fix region alignment getter
Getting the required alignment size for memory region node
and device node needs to be handled by a separate macro.
Otherwise alignment of single byte is reported for any region.
Add a test that checks for this particular issue.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2024-07-10 08:42:40 -04:00
Aksel Skauge Mellbye
a677e974ef soc: silabs: Include series-specific Kconfig
The series-specific Kconfig files were not included, leading
to RTT not being considered available.

Fixes #75511.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-07-09 08:59:02 +02:00
Sylvio Alves
3163680427 soc: esp32c6: remove idle source file
risc-v idle call is being fetched from arch/ implementation.
This soc file is not used and can be removed.

Fixes #75540

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2024-07-08 12:12:21 -04:00
Andrej Butok
c3dd3c69ac soc: nxp: add flashing configuration
- Added a flash runner configuration for rw, mcx, lpc, kinetis and imxrt,
  used for sysbuild multi-image projects like MCUBoot.
- Solved the mass erase issue.
- The sysbuild project "west flash --erase" command caused
  the mass_erase->flash_img1->reset->mass_erase->
  flash_img2->reset sequence.
  It was fixed to the mass_erase->flash_img1->
  flash_img2->reset sequence.

Signed-off-by: Andrej Butok <andrey.butok@nxp.com>
2024-07-08 16:04:04 +02:00
Daniel Leung
bebff3fb35 soc: mt8195: remove prompts for SoC kconfigs
This removes the prompts for the mt8195 and related kconfigs,
so these cannot be overridden from command line (though
technically they cannot be disabled as they are being selected).
This also prevents them from appearing in the build .config
file as not being set even when we are being for other SoCs.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-07-08 15:53:08 +02:00
Mark Wang
9a45300ab5 boards: nxp: enable mcux udc on RT1170-EVK
enable clock and usb phy device tree

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2024-07-08 09:28:41 +02:00
Miguel Gazquez
3408694960 drivers: memc: fix Kconfig option MEMC_STM32
This commit fixes a bug with the declaration of the Kconfig option
MEMC_STM32.

The option is defined in two files:
- `drivers/memc/Kconfig.stm32`, wich depends on
   - `MEMC`
   - `DT_HAS_ST_STM32_FMC_ENABLED`
-`soc/st/stm32/Kconfig.defconfig`, wich depends on
   - `MEMC`
   - `SOC_FAMILY_STM32`

So, if you have `CONFIG_MEMC=y` in your Kconfig options and you are on a
STM32 SoC, `CONFIG_MEMC_STM32` will be enabled, even if there is no
STM32 FMC enabled.

This Kconfig option causes the driver for the STM32 FMC to be compiled,
regardless of the presence of an enabled node for the FMC.
However, the driver fails to compile if there is no FMC node in the
devicetree. So, if you compile a project with `CONFIG_MEMC=y` on a board
with an STM32 SoC and no enabled FMC, the build will fail.

This commit deletes the Kconfig declaration in the `Kconfig.defconfig`,
as it isn't useful and is the one provoking the bug.
It also add in the `Kconfig.stm32` the compatible `st,stm32h7-fmc`, wich
use the same driver and so need to be enabled by the same Kconfig
option.

Signed-off-by: Miguel Gazquez <miguel.gazquez@bootlin.com>
2024-07-05 18:43:06 +02:00
Luca Burelli
e35126f83a soc: intel_socfpga_std/cyclonev: enforce ARM_AARCH32_MMU
Currently the code in soc.c depends on the MMU of the CPU being enabled,
but this is not enforced. It is thus possible to cause a build error by
manually disabling it (as is required for some LLEXT tests, see #75289).

Make sure this is averted by explicitly selecting ARM_AARCH32_MMU in the
SoC Kconfig.

Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
2024-07-05 18:39:53 +02:00
Guennadi Liakhovetski
fb53d2ef8d ace: power: replace pseudo-assembly movi
When switching off memory banks we cannot use movi with arbitrary
immediate arguments, they will be converted by the compiler to memory
accesses. Only constants within the allowed range should be used.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-07-04 18:01:02 -04:00
Dat Nguyen Duy
2457f730f4 soc: nxp_s32: disable TCP/UDP checksum only if eth driver enabled
Only disable TCP/UDP software checksum if the ethernet
driver enabled. This is to avoid interfere with net tests
which don't need the on board driver to function

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2024-07-04 13:36:55 +02:00
Filip Kokosinski
dcc5dd27fa soc/openisa: rely on the CONFIG_RISCV_ISA_EXT_* options for arch string
This commit makes the RV32M1 SoC rely on the default behavior of relying on
the `CONFIG_RISCV_ISA_EXT_*` config options, and removes the
`zephyr_compile_options` override when the standard toolchain is used.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2024-07-03 15:06:14 -04:00
Filip Kokosinski
18ddac4acf soc/openisa: enable the C extension
According to the RV32M1 Series Manual, Rev 1.1 RV32M1 series supports the C
extension, and doesn't support the A extension. Apply fixes accordingly.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2024-07-03 15:06:14 -04:00
Jamie McCrae
8924d563bb soc: nordic: Fix run once regex issue and add missing entries
Fixes an issue whereby multiple boards would be grouped when using
a regex to group them, and adds missing nRF91 entries to the list

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2024-07-03 09:33:21 -04:00
Guennadi Liakhovetski
32d05d360b intel_adsp/ace: power: fix firmware panic on MTL
The power_down() function attempts to lock the hpsram_mask on-stack
variable in data cache, which causes an exception. Moving it to .bss
by making it static fixes it.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-07-03 15:31:12 +02:00
Sreeram Tatapudi
e3f4a63ac0 soc: infineon: cyw20829: Updates linker script
Add missed #include <zephyr/toolchain/common.h>
in linker script to fix build error with
samples/subsys/bindesc/hello_bindesc

Signed-off-by: Sreeram Tatapudi <sreeram.praveen@infineon.com>
2024-07-02 09:35:33 +02:00
Yong Cong Sin
6de21fc1d2 Revert "soc: riscv-privileged: support SoCs without reset vector"
This reverts commit 75f5d98002.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-07-02 09:24:44 +02:00
Yong Cong Sin
5ee20e11ef soc: nordic: vpr: select INCLUDE_RESET_VECTOR for default implementation
For SOCs that do not implement a custom `__reset` function,
select `INCLUDE_RESET_VECTOR` so that Zephyr provides a default
implementation that simply jumps to `__initialize`

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-07-02 09:24:44 +02:00
Krzysztof Chruściński
0825f24910 soc: nordic: nrf54h: DMM shall be applied only to rad&app
cpuppr can only use slow peripherals and uses RAM3 as RAM so
it does not need to use DMM.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-07-01 16:08:39 -04:00
Krzysztof Chruściński
5f32265459 soc: nordic: common: dmm: Fix memory utilization
DMM was enforcing cache line alignment all memory regions, including
those which were not cacheable. Fixing it by using memory attribute
from the device tree to determine if alignment needs to be applied.

Because of that memory usage was significantly increased because
even 1 byte buffers (e.g. for uart_poll_out) was consuming 32 bytes
(cache line size).

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-07-01 16:08:39 -04:00
Alessandro Manganaro
594e614f49 soc/st/stm32/st32wbax: STM32WBA55 BLE Ext Adv Fix
SYSTEM_WORKQUEUE_STACK_SIZE increase is required to fix not
only BLE Ext Adv (70935), but also other BLE use cases according
STM32WBA HCI driver

Signed-off-by: Alessandro Manganaro <alessandro.manganaro@st.com>
2024-07-01 09:04:32 -04:00
Sylvio Alves
f65770c1a1 soc: esp32xx: always use section prologue with alignment
ESP32 requires proper alignment between sections. There are some
scenarios, as reported in #74533, that the section can
get shifted, causing runtime failure.
Making sure SECTION_PROLOGUE is used with ALIGN_WITH_INPUT
will guarantee its consistency.

Fixes #74533

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2024-06-28 21:00:11 -04:00
Iuliana Prodan
f91700e629 linker: nxp: adsp: add orphan linker section
Add missing linker section to avoid warning
about orphans when building with host compiler.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-06-28 21:53:01 +02:00
Duy Nguyen
75f1f7e982 drivers: pinctrl: Add pinctrl driver for RA8 series
This is the initial commit to support minimum pinctrl
driver for Renesas MCU RA8M1.

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
2024-06-26 13:36:14 -04:00
Duy Nguyen
7195f0de0f soc: renesas: ra: Add initial support for RA8M1 SOC series
Add minimal support for RA8M1 SOC series.

Signed-off-by: Duy Nguyen <duy.nguyen.xa@renesas.com>
Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2024-06-26 13:36:14 -04:00
Marek Matej
6a7c8d789f soc: espressif: Update MCUboot segment size
- Fix the build issues with the insufficient memory for
  the MCUboot.
- Fix the sysbuild with MCUboot tests on all ESP32xx SoCs.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2024-06-26 09:01:25 -04:00
Henrik Brix Andersen
771a362f4b soc: nxp: lpc: lpc55xxx: fix CONFIG_LPC55XXX_USB_RAM defaults
Setting a boolean Kconfig option default to "n" after having set it to "y"
does not make the option disabled. Instead, avoid setting default to "y"
for SoCs known not to have dedicated USB RAM.

Fixes: #73912

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-06-25 21:19:18 -04:00