Add initialization ofcritical components for the RTL87x2G
series.
Key initializations include:
- Realtek OS abstraction layer.
- Clock active mode settings.
- Power Management (PM) and dynamic voltage scaling (DVFS).
- PHY and thermal compensation modules.
- Bluetooth controller ROM initialization.
Note: A mechanism is introduced to synchronize the RAM Vector Table between
Realtek's ROM code (which writes raw ISRs) and Zephyr's interrupt
management subsystem (sw_isr_table).
Signed-off-by: Zhiyuan Tang <zhiyuan_tang@realsil.com.cn>
This commit introduces the Realtek OSIF (Operating System Interface)
layer, which is the standard OS abstraction layer defined for the
Realtek Bee SoC family.
While OSIF is designed to be common across the Bee SoC family, this
specific implementation adapts the layer for the RTL87x2G series
running on Zephyr.
OSIF encapsulates specific RTOS interfaces to provide a unified API.
This enables Realtek-specific modules—such as PHY, Power Manager,
Clock Manager, and BT Controller—to run on different RTOS environments
without modification, significantly enhancing portability.
The OSIF adaptation maps the following fundamental components to their
corresponding Zephyr kernel APIs:
- Task management and Scheduling
- Message queues
- Synchronization (Semaphores, Mutexes)
- Software timers
- Memory management
Signed-off-by: Zhiyuan Tang <zhiyuan_tang@realsil.com.cn>
Add support for MediaTek MT8365 SoC. This includes adding basic
initialization code, IRQ handling, IPI driver, MPU configuration,
and necessary build system files.
Signed-off-by: Andrew Perepech <andrew.perepech@mediatek.com>
Add dtc property node on RX26T dts, and ram section for
dtc_vector_table on RX26T SoC for dtc support
Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
LVGL BITS_PER_PIXEL and COLOR_DEPTH are closely linked to how the LTDC
is configured on the platform. Move all all STM32 common LVGL
configuration into the common stm32 Kconfig.defconfig.
CONFIG_LV_DPI_DEF and CONFIG_INPUT are application related.
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Enable CONFIG_SHARED_INTERRUPTS to allow multiple devices
to register handlers on the same IRQ line.
Replace irq_connect_dynamic() with IRQ_CONNECT() to configure
interrupts at build time, eliminating runtime setup overhead.
Signed-off-by: Manojkumar Konisetty <manoj@aerlync.com>
Signed-off-by: Sayooj K Karun <sayooj@aerlync.com>
- Update low power state exit latency to match SDK
- Enable NBU wakeup source
- Configure 32MHz crystal osc
- Shutdown NBU when it's not used
Signed-off-by: Yassine El Aissaoui <yassine.elaissaoui@nxp.com>
Calibration correction applied to the Fast Internal Reference Clock (FIRC)
configuration in the MCXw7xx System-on-Chip to address OSC32K oscillator
drift issues.
Signed-off-by: Xavier Razavet <xavier.razavet@nxp.com>
Tests like log_backend_uart include an emulated UART driver which
gets selected for ITCM code relocation, as part of drivers__serial.
Filter by FILE instead of LIBRARY to avoid this.
Fixes#104275
Signed-off-by: Josuah Demangeon <me@josuah.net>
Includes files for mapping DFP macros to follow a common
macro name across multiple SoC for sercom uart g1 driver
Signed-off-by: Fabin V Martin <Fabinv.Martin@microchip.com>
When CPU_FREQ is enabled with CORTEX_M_SYSTICK on MCXN, the system
timer frequency changes dynamically as the core clock is scaled.
Update cpu_freq_pstate_set() to:
- Notify the system timer driver of the new frequency by calling
z_sys_clock_hw_cycles_per_sec_update() when CORTEX_M_SYSTICK is used
- Add a compile-time check to ensure
CONFIG_SYSTEM_CLOCK_HW_CYCLES_PER_SEC_RUNTIME_UPDATE is enabled when
using CPU_FREQ with SysTick, as this combination requires runtime
frequency update support
Also update Kconfig.defconfig to:
- Remove the default enabling of MCUX_OS_TIMER when CPU_FREQ is set
- Enable SYSTEM_CLOCK_HW_CYCLES_PER_SEC_RUNTIME_UPDATE by default when
both CPU_FREQ and CORTEX_M_SYSTICK are enabled
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
Replace hardcoded -Wno-misleading-indentation flag with the new
warning_no_misleading_indentation compiler property for both C and C++
compilation in imx91 and imx943 SoCs. This ensures compiler-agnostic
handling of misleading indentation warnings.
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
The RV32 core does not implement RISC-V mtime, so add a new system
timer driver uses a peripheral timer for this functionality.
Signed-off-by: Pete Johanson <pete.johanson@analog.com>
Adds support for the secondary risc-v core on all applicable max32
family socs. The zero-riscy core supports the following instructions:
- RV32I Base Integer Instruction Set
- RV32E Base Integer Instruction Set (optional)
- RV32C Standard Extension for Compressed Instructions
- RV32M Integer Multiplication and Division Instruction Set Extension
(optional)
Includes support for using pinctrl for setting up RV32 debug pin access,
and improved support for launcing the secodary core from the primary ARM
core.
See https://pulp-platform.org/docs/user_manual.pdf
Signed-off-by: Maureen Helm <maureen.helm@analog.com>
Clean up the SWD-JTAG port configuration code for STM32F1 series:
- remove check for DT_NODE_HAS_PROP() because there's default in binding
- use a wrapper around DT_ENUM_HAS_VALUE() instead of a bare DT_ENUM_IDX()
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
A special SYS_INIT() callback with hardcoded PRE_KERNEL_1 level 0 priority
inside the STM32 pinctrl driver was configuring the SWD-JTAG ports on
STM32F1 series.
Since this is the only series which requires such configuration, move this
code to the SoC-specific init hook instead (which has almost the same
priority as PRE_KERNEL_1 level 0 - it runs just slightly earlier).
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
Add support for configuring the "PERIPHCONF stage" that is set
when the application core is started by IronSide SE. This configures
which permissions the application has when calling the IronSide
PERIPHCONF write API at boot time.
The new option is part of the new version 2.1 of the UICR format.
IronSide SE versions that do not support the 2.1 format version
will fail the boot if given a UICR with that version number.
To avoid forcing users to upgrade IronSide, the UICR generator
only sets the UICR format version to 2.1 if a PERIPHCONF stage policy
is explicitly set, otherwise it will default to the 2.0 version.
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Add a config that can be disabled to keep the PERIPHCONF data in the
firmware binary rather than stripping it. When the option is disabled
for a given image, the UICR generator does not include that image's
PERIPHCONF data in the UICR PERIPHCONF blob, instead it is expected that
it is loaded separately via an IronSide API call.
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
We add the initial enablement of SoC managed PM (CONFIG_PM) for
Microchip MEC174x, MEC175x, and MEC165xB series. Common SoC
PM handling code was added with support for light and deep
sleep (standby and suspend respectively). The code includes
initial save and restore for peripherals that do not obey
the MEC PCR block sleep signals. This initial commit implements
save and restore for basic timers and UARTs. The code builds
and runs the Zephyr SoC managed PM subsystem test.
Signed-off-by: Scott Worley <scott.worley@microchip.com>
Add a hwinfo backend for GD32 providing:
- device unique ID readout from the 96-bit UID registers
- reset cause reporting via the RCU_RSTSCK reset status register
Reset cause mapping uses the hal_gigadevice RCU_RSTSCK flag definitions
and reports supported causes based on the macros available in the HAL.
Signed-off-by: Aleksandr Senin <al@meshium.net>
Replace hardcoded wsr.MISC0 with the build-generated ZSR_CPU_STR
macro to write the correct Xtensa special register for the CPU
pointer.
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
We are no longer able to enable CONFIG_PM.
This Kconfig depends on HAS_PM, which is no longer
selected by the MCXW23 platform.
Signed-off-by: Yassine El Aissaoui <yassine.elaissaoui@nxp.com>
Use the IRONSIDE_SUPPORT_DIR cmake variable to determine the location
of the UICR generator script location, to allow overriding the location
if needed.
Since the CMake that would normally set this variable in
modules/hal_nordic/ironside/se/CMakeLists.txt is not actually run in the
gen_uicr image, refactor the logic for setting the variable so that it
can be included in the gen_uicr image directly.
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
Add pin control driver for Alif SoCs. The driver manages
pin muxing (alternate function selection) and pad configuration
for Alif SoCs.
Signed-off-by: Silesh C V <silesh@alifsemi.com>
Ensemble is a family of processors from Alif Semiconductor
targeted at low-end to high-end intelligent IoT endpoint
applications. Series (E1-E8) within the family scale up from
single-core MCUs to quad-core MCU/MPU fusion processors.
Add support for the Ensemble family and the E8 series with the
AE822FA0E5597LS0 SoC. The SoC contains two Cortex-M55 cores: one
configured to maximize power efficiency (RTSS-HE - High Efficiency
Real Time Subsystem) and the other to maximize compute performance
(RTSS-HP - High Performance Real Time Subsystem).
Link: https://alifsemi.com/products/ensemble/
Link: https://alifsemi.com/products/ensemblegenai/
Link: https://alifsemi.com/ensemble-e8-series/
Co-authored-by: Tanay Rami <tanay@alifsemi.com>
Co-authored-by: Prabhakar Kumar <prabhakar.kumar@alifsemi.com>
Signed-off-by: Silesh C V <silesh@alifsemi.com>
SOC_COMPATIBLE_NRF7120_ENGA was erroneously being used in
KConfig filter and therefore not being applied, since soc configs are
generated at compile time. Created SOC_COMPATIBLE_NRF71 to be used at
KConfig build stage.
Signed-off-by: Robert Robinson <robert.robinson@nordicsemi.no>
Any leading -D passed to target_compile_definitions on an item will
be removed, here remove them to make code style consistent.
Signed-off-by: Paul He <pawpawhe@gmail.com>
Add clock control driver
Implement bootup clock initialization, on, off, configure and get_rate API
Signed-off-by: Sunil Abraham <sunil.abraham@microchip.com>
Add a SoC-level power management hook in stm32wbax power support
to handle the case when the radio is enabled.
This ensures the power configuration remains consistent with
RF activity and avoids entering low-power states that are
incompatible with the radio being active.
The new helper is wired into the STM32WBAX power control logic,
so that radio-related constraints are taken into account during
power state transitions.
Signed-off-by: Alessandro Manganaro <alessandro.manganaro@st.com>
Some of the peripherals might be used in the bootloader
and not cleaned up properly for the next image in the boot chain.
Ensure that affected registers are always cleaned up before use.
Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>