Commit graph

5973 commits

Author SHA1 Message Date
Khoa Nguyen
c667536535 soc: renesas: ra: Remove code_in_ram section
Remove code_in_ram section which is defined in sections.ld
of ra8m1, ra8d1, ra8t1, ra6m5, ra6m4, ra6m3, ra6m2, ra6m1,
ra6e2, ra6e1, ra4m3, ra4m2, ra4e2

Signed-off-by: Khoa Nguyen <khoa.nguyen.xh@renesas.com>
2025-01-08 17:02:36 +01:00
Bart De Vos
52fd016274 soc: nxp: rw6xx: add support for segger rtt
This change adds support for segger rtt, similar to other supported
soc's. This was lacking when evaluating tracing.

Without this addition the system fails to build, indicating that
HAS_SEGGER_RTT is missing. Adding CONFIG_HAS_SEGGER_RTT in prj.conf is
not allowed.

Signed-off-by: Bart De Vos <bart.devos@verhaert.com>
2025-01-08 12:59:19 +01:00
Daniel DeGrasse
a7ad63c1d0 soc: nxp: imxrt: add CONFIG_SECOND_CORE_MCUX_LAUNCHER
Add CONFIG_SECOND_CORE_MCUX_LAUNCHER. This Kconfig is only enabled when
using sysbuild targeting the Cortex-M4 core on the RT11xx series, and
results in loading a minimal application to the Cortex-M7 core that
boots the Cortex-M4 core. This makes developing on the M4 core simpler,
as the user can now simply target the core with sysbuild enabled and
flashing the application will work as expected.

Signed-off-by: Daniel DeGrasse <daniel@degrasse.com>
2025-01-07 20:34:26 +01:00
Jérôme Pouiller
05578ab51f soc: silabs: Hide clock options for Series-2
Silabs Series-2 (all the EFR32xg2x chips) use the new clock driver
introduced in commit bda8ae8c3f ("drivers: clock_control: silabs: Add
clock control driver"). This driver get all the configuration from the
Device Tree.

The CMU (Clock Management Unit) options (CMU_HFXO_FREQ, CMU_HFRCO_FREQ,
CMU_NEED_LFXO, CMU_HFCLK_HFXO, etc...) are now only used for Series-0
and Series-1. It does not make sense to bother the users with them.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-01-07 20:34:12 +01:00
Lucien Zhao
a101a4cdb2 soc: nxp: imxrt: imxrt118x: Remove cm7 core condition for CPU_HAS_ICACHE
Although I/DCACHE aren't included under cm33 architecture,
NXP design and integrate Code Cache/Sys Cache for cm33 to
speed up the core execution efficiency.
For the convenience of developers, we believe that software
developers can directly use Code/Sys Cache as arm's I/D Cache.

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2025-01-07 18:24:20 +01:00
Kai Vehmanen
76dc24ba0a soc: intel_adsp: tools: add cavstool.py fallback for PCI class
If no PCI device with DSP capability is reported, also try to
find compatible devices using PCI_CLASS=40300. This is mostly
useful on preproduction systems where incorrect PCI class data
is reported.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2025-01-07 15:58:26 +01:00
Derek Snell
ed7c8285f5 soc: nxp: imxrt5xx: enable Flexcomm12 clock for SPI
Enable clock when using as SPI.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-01-07 15:57:50 +01:00
Jiafei Pan
dd0446ae26 soc: nxp: imx8mm/n/p imx93/95: enable GIC safe config
Enable CONFIG_GIC_SAFE_CONFIG by default for Cortex-A Core platforms
as the most targets are to run multiple OSes together with Zephyr on
different Cortex-A Cores.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2025-01-07 00:27:08 +01:00
Andy Ross
619c1ff577 soc/mediatek: Don't scan SRAM for winstream in mtk_adsp_load.py
For the same reason that this script can't zero the SRAM region (it
spontaneously reboots my 8186 device) we can't scan the SRAM for the
winstream header.  It's never there anyway, it lives in .rodata.

This is likely a hardware bug, but as it's an older platform and this
is test code it's probably best to just keep it as a workaround.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
2860ab9179 soc/mediatek/adsp: Enable winstream console
Enable a winstream console via the new "STATIC" platform API, and add
code to the loader script to read it (largely cribbed with
modifications from the same feature in cavstool.py, we have nowhere to
share code like this, alas).

The older logging feature is still present as an "oldlog" mode to the
script.  We can leave it for a bit as a failsafe (e.g. for debugging
issues with winstream) and remove it later.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
84b3343dfa soc/mediatek/adsp: Set CONFIG_DCACHE_LINE_SIZE correctly
These devices have non-standard cache lines (128 bytes), and were
inheriting an incorrect setting for this kconfig.

Also clean up some related feature kconfigs which were being ignored
and not set =y.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
2cbce9e8d1 soc/mediatek/mtk_adsp: Support __nocache
This is a pre-existing (but rarely used) Zephyr linker tag.  Support
it instead of reinventing something similar.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
dadd1a340f soc/mediatek: Add second "DMA" memory region
The Linux SOF driver owns this space, but puts buffers here which the
DSP is expected to read and write.  Give it a space in the default MPU
mapping.

Note that this assumes that the DMA region is numerically above the
linkable DRAM region in the address space.  That's true for existing
devices, but likely to be broken in the future.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
905938fdf9 soc/mediatek: Add "mem" dump feature to mtk_adsp_load.py
Add a quick feature to pretty-print the Linux devicetree memory
regions defined for the DSP.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
b2c9fd94bc soc/mediatek/adsp: Union mbox ISRs
The SOF source code is confusing.  On some hardware these devices have
distinct IRQs assigned, and on others they seem to share an ISR for
all.  Leave the existing assignments in place for SOF-compatibility,
but union all the devices into a single ISR path that will poll each
(there are only two).  This will work in all configurations, and we
can figure out the proper architecture at leisure.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Andy Ross
624515f8d0 soc/mediatek: Add SOF extended manifest to link
SOF needs this information for rimage to work, it contains data needed
by the kernel loader and not firmware per se.  Note that contra other
SOF platforms, this leaves the data in the live firmware image so it
can be inspected at runtime.  That's not needed by core SOF code, but
is handy for debugging.  And these devices have a ton of DRAM space
available.

Signed-off-by: Andy Ross <andyross@google.com>
2025-01-06 20:33:04 +01:00
Grzegorz Runc
9fcb17400b soc: stm32: add support for stm32h757
Add support for STM32H757 SoC, which shares its design
with STM32H747 with added cryptography peripherals.

Signed-off-by: Grzegorz Runc <g.runc@grinn-global.com>
2025-01-06 17:12:55 +00:00
Daniel Fuchs
f0fee215ab soc: introduce the EFR32MG24B210F1536IM48
The EFR32MG24B210F1536IM48 has 4 more GPIOs than the
EFR32MG24B310F1536IM48, and does not support the high accuracy
mode for the IADC.

Signed-off-by: Daniel Fuchs <software@sagacioussuricata.com>
2024-12-30 08:43:12 +01:00
Guennadi Liakhovetski
6d0c23be31 soc: intel_adsp: add support for .cold* sections
Add support for .cold and .coldrodata sections, used to implement
a cold module. Assigning code and read-only data to those sections
makes them suitable for use in a cold module, stored and executed in
slow memory.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-12-29 05:50:25 +01:00
Guennadi Liakhovetski
09cdc1f4b8 soc: intel_adsp: add a "cold" module manifest
Add a manifest for a "cold" module, that will be executed in DRAM
without copying it to SRAM for the whole duration of the firmware
life-time.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-12-29 05:50:25 +01:00
Guennadi Liakhovetski
de4003c07b soc: intel_adsp: check module address before copying to SRAM
Before copying modules to SRAM, check whether they're built for it,
skip modules, that aren't.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-12-29 05:50:25 +01:00
Sylvio Alves
1681c7e317 soc: esp32: fix appcpu register access
Build is failing due to wrong calls to appcpu
stall and clock gating. This fixes it
by using proper registers.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2024-12-25 03:37:39 +01:00
Ryan Grachek
47b4e4c2fb UF2: Enable support for Raspberry Pi RP2350
Add UF2 Family ID for Raspberry Pi 2350 and build
UF2 image by default for Pico 2 board

Signed-off-by: Ryan Grachek <grachek@gmail.com>
Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2024-12-23 23:57:57 +01:00
Peter Johanson
05e0aad2f3 rp2350: Fix for storing larger pinctrl alt func
On RP2350, the alt function value can be up to 0x1F, so store as 5 bits.

Signed-off-by: Peter Johanson <peter@peterjohanson.com>
Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2024-12-23 23:57:57 +01:00
Andrew Featherstone
ae1a098c7a pinctrl: raspberrypi: rp2350: Add support for RP2350X
A significant amount of the pin muxing is duplicated between the RP2040,
the RP2350A, and RP2350B. Reflect this in the file structure, with a
`-common` suffix used to to indicate this.

Macros are defined in ascending order of the function index in the
relevant table in the datasheet. SoC/SoC-series specific macros are
defined in their respective tables. Functions that are not currently
used (e.g. the new HSTX) are intentionally not defined here as they do
not (currently) have any use in the Zephyr tree (i.e. there's no drivers
that make use of this functionality).

clang-format has been run over the existing definitions to reduce the
noise generated by CI. These are cosmetic changes; I've tried to retain
attribution to the relevant authors where applicable.

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2024-12-23 23:57:57 +01:00
Benjamin Cabé
cc4a985316 soc: rp2350: Add initial support for the Raspberry Pi RP2350
RP2350 is Raspberry Pi's newest SoC. From the datasheet:

"RP2350 is a new family of microcontrollers from Raspberry Pi that
offers significant enhancements over RP2040. Key features include:
• Dual Cortex-M33 or Hazard3 processors at 150 MHz
• 520 kB on-chip SRAM, in 10 independent banks
• 8 kB of one-time-programmable storage (OTP)
• Up to 16 MB of external QSPI flash/PSRAM via dedicated QSPI bus
...
"

This commit introduces some changes to support the existing RP2040 and
what is describe by Raspberry Pi as the "RP2350 family". Currently there
are 4 published products in the family: RP2350A, RP2350B, RP2354A, and
RP2354A. Within Zephyr's taxonomy, split the configuration as follows:
Family: Raspberry Pi Pico. This contains all RP2XXX SoCs,
SoC Series: RP2040 and RP2350.
SoC: RP2040 and, for now, just the RP2350A, which is present on the Pico
2, where the A suffix indicates  QFN-60 package type. This structure is
reflected in `soc/raspberrypi/soc.yml`, and somewhat assumes that there
won't be a RP2050, for example, as a RP2040 with more RAM.

This is foundation work ahead of introducing support for Raspberry Pi's
Pico 2 board, which is fitted with a RP2350A and 4MB of flash.

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-12-23 23:57:57 +01:00
Nikodem Kastelik
39f2950d06 soc: nordic: poweroff: disable remaining RAM on emul l05/l10 targets
nRF54L05 and nRF54L10 devices that are emulated on nRF54L15
needs to have manually disabled remaining RAM blocks
that are outside of their RAM region definitions.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2024-12-23 18:40:52 +01:00
Nikodem Kastelik
74423027de soc: nordic: poweroff: add retention management
RAM retention is disabled for all RAM blocks
before entering System OFF to achieve lowest power consumption.
RAM retention can still be enabled using retained_mem driver.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2024-12-23 18:40:52 +01:00
Nikodem Kastelik
e501b54bad soc: nordic: add common symbol for RAM control helper presence
Common symbol is defined by SoCs that support RAM control helper.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2024-12-23 18:40:52 +01:00
Fabio Baltieri
d532d58316 Revert "soc: st: warn if running with debug on sleep enabled"
This reverts commit b33b3b17f7, turns out
it's causing issues in CI all over the place, the condition needs more
thinking.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-12-22 18:19:49 +00:00
Fabrice DJIATSA
12703bf633 soc: st: stm32: add soc for stm32c071
select soc for stm32c071 and irq configuration

Signed-off-by: Fabrice DJIATSA <fabrice.djiatsa-ext@st.com>
2024-12-20 12:37:00 +01:00
Benedikt Schmidt
d7574e5f44 soc: add DWARF v5 sections to linker scripts
Add the DWARF v5 sections to the linker scripts of
imx, imxrt, acp_6_0 and xtensa_sample_controller.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-12-20 12:36:46 +01:00
Fabio Baltieri
b33b3b17f7 soc: st: warn if running with debug on sleep enabled
Add a compiler warning when building for an STM32 series MCU with PM
enabled but STM32_ENABLE_DEBUG_SLEEP_STOP=y. That option greatly
increases the power consumption during sleep, which is probably
undesirable when building with PM=y, and it can be activated silently
as a side effect of other options (namely RTT) making it tricky to find
out.

Add a warning to expose the situation.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-12-20 00:50:10 +01:00
Immo Birnbaum
d789f339ef soc: xlnx: zynq7000: remove PS GPIO controller's static memory mapping
Remove the PS GPIO controller's static MMU region entry from the
mmu_regions table for both the XC7Zxxx and XC7ZxxxS variants of the
Zynq 7000.

The PS GPIO controller's device driver has been switched over to
using a named DEVICE_MMIO mapping.

Signed-off-by: Immo Birnbaum <mail@birnbaum.immo>
2024-12-19 19:56:23 +01:00
Valerio Setti
bc3baf096a boards|soc: remove selection of ENTROPY_GENERATOR
Now that MbedTLS is capable of automatically enabling
CONFIG_ENTROPY_GENERATOR (when available), we can remove forced
enablements in boards|soc deconfig files.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-12-19 17:53:37 +01:00
Valerio Setti
39068cc70e mbedtls: select ENTROPY_GENERATOR when a driver is available
This is based on the introduction of a helper Kconfig symbol in
"subsys/random/Kconfig" which is named CSPRNG_AVAILABLE. When this is
enabled it means that there is a "zephyr,entropy" property defined in the
device-tree, therefore Mbed TLS can select ENTROPY_GENERATOR to allow
the platform specific driver to be included into the build.

This commit also changes other locations where CSPRNG_ENABLED was used
moving it to CSPRNG_AVAILABLE in order to solve dependency loop
build failures.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-12-19 17:53:37 +01:00
Xavier Razavet
1ac3470efb drivers: Narrow Band Unit interruption driver creation
Creation of the new zephyr\soc\nxp\common\nxp_nbu.c driver which manage
the interruption of the NBU. This modification is mandatory to support a
coex application which includes Bluetooth and 802.15.4 on the same
narrow band path.

Signed-off-by: Xavier Razavet <xavier.razavet@nxp.com>
2024-12-19 17:37:24 +01:00
Samuel Coleman
5a93b27aa9 soc: st: stm32: common: fix wakeup off-by-one.
Wakeup pin indices are 1-based, but `LISTIFY` is 0-based. Consequently, the
last element of the pin-to-register-bit lookup table was never populated.

Signed-off-by: Samuel Coleman <samuel.coleman@rbr-global.com>
2024-12-19 17:37:11 +01:00
Yishai Jaffe
5694b24a6e soc: silabs: Add support for SiLabs EFR32ZG23 SoC
Add support for Silicon Labs EFR32ZG23 SoC.

Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
2024-12-18 20:32:46 +01:00
Gerard Marull-Paretas
3d3dce61b6 dts: common: nordic: nrf54h20: define BICR node
BICR (Board Information Configuration Registers) are located within the
application UICR region (ref. MRAM mapping, table 38).

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-12-18 12:46:20 +01:00
Jiafei Pan
3fc6cae69c soc: imx8mm/n/p: enable CONFIG_HAS_MCUX_IGPIO for A-Core
Enable CONFIG_HAS_MCUX_IGPIO because device driver CONFIG_GPIO_MCUX_IGPIO
depends on it, so that the driver can be enabled by dts nodes.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2024-12-18 08:31:52 +01:00
Lucien Zhao
08b8b160a9 dts: arm: nxp: add two i3c instances for RT1180
add i3c instances
enable i3c clock under soc folder

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2024-12-18 01:01:37 +01:00
Michal Smola
6e7b335873 soc: nxp mcxc: fix LinkServer flashing
LinkServer can flash only the first time, cannot flash again.
Fix it by setting default mcu security status as unsecure.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2024-12-17 17:53:05 +01:00
Gerard Marull-Paretas
d16cd566b9 soc: nordic: nrf54h: add BICR generation tooling
Add supporting scripts and build-system integration for BICR (Board
Information Configuration Registers) generation.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-17 15:23:50 +01:00
Paweł Pelikan
630f716c2f modules: hal_nordic: nrfs: add GDFS Service
Adding the implementation for the GDFS service

Signed-off-by: Paweł Pelikan <pawel.pelikan@nordicsemi.no>
2024-12-17 15:22:37 +01:00
Gerard Marull-Paretas
0dc18e1236 soc: nordic: nrf54h: gpd: align GPD domain names
nRFs exposes now all power domains, following their actual name in the
specification. Add support for all of them in the GPD service. Note that
this is a breaking change: running this code requires a new SCFW as IDs
have changed in nRFs and so SCFW.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-17 15:22:37 +01:00
Thomas Schranz
cd20154bc7 soc: sam0: samd5x: xosc32 configurable startup time
Adds Kconfig option to configure the startup time of the external
32KHz crystal oscillator.

Signed-off-by: Thomas Schranz <electronics@wandfluh.com>
2024-12-17 11:37:55 +00:00
Sandra Schmidt
80af15cffa boards: infineon: add cy8ckit_062s2_ai support
Add board support for cy8ckit_062s2_ai

Signed-off-by: Sandra Schmidt <sandra.schmidt@arrow.com>
2024-12-17 03:39:18 +01:00
Girisha Dengi
36e71c839f drivers: clock_control: Agilex5 clock control driver updates
The clock controller/manager registers are updated with
the correct divider values by bootloader via hand-off
data, so now we can use the clock controller to get the
clock value of each peripheral during the run time.

Signed-off-by: Girisha Dengi <girisha.dengi@intel.com>
2024-12-16 17:12:34 -05:00
Robin Kastberg
742679a928 soc: nordic: make -include a compiler property
CMakeLists.txt uses the C compiler parameter -include,
This is causing issues for other toolchains and needs to generalized.

Signed-off-by: Robin Kastberg <robin.kastberg@iar.com>
2024-12-16 20:51:17 +01:00