Files
zephyr/soc/silabs/silabs_siwx91x/Kconfig.defconfig
Martin Hoff 3ab62f13b8 soc: silabs: siwx91x: introduce zero latency irq
The HAL used by the SiWx91x SoC implements a mechanism to protect
atomic sections. Since this HAL also supports a zero-latency
interrupt (ZLI) mechanism, we need to ensure the same number of
bits are used for ZLI interrupts.
The interrupt priority level (2) depends on a hardcoded value in the
Simplicity SDK (CORE_ATOMIC_BASE_PRIORITY_LEVEL).
Without this fix, arch_irq_lock (which sets the BASEPRI register to
0x4 when zero-latency interrupts are not enabled) is overridden by
CORE_EnterAtomic in the HAL, which sets BASEPRI to 0xC since the HAL
does not use the BASEPRI_MAX function. IRQ might then fires since it's
register with a lowest priority in Zephyr.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
(cherry picked from commit 87ab3e337a)
2025-12-03 16:33:58 +02:00

61 lines
1.2 KiB
Plaintext

# Copyright (c) 2024 Silicon Laboratories Inc.
# SPDX-License-Identifier: Apache-2.0
if SOC_FAMILY_SILABS_SIWX91X
configdefault CORTEX_M_SYSTICK
default n if SILABS_SLEEPTIMER_TIMER
configdefault SYS_CLOCK_TICKS_PER_SEC
default 128 if !TICKLESS_KERNEL && SILABS_SLEEPTIMER_TIMER
default 1024 if SILABS_SLEEPTIMER_TIMER
configdefault UART_NS16550_DW8250_DW_APB
default y
configdefault ZERO_LATENCY_IRQS
default y
configdefault ZERO_LATENCY_LEVELS
default 2
if PM_DEVICE
configdefault PM_DEVICE_RUNTIME
default y
configdefault POWER_DOMAIN
default y
endif # PM_DEVICE
if SILABS_SIWX91X_NWP
# WiseConnect create threads with realtime priority. Default (10kHz) clock tick
# prevent proper use of the system with these threads.
config SYS_CLOCK_TICKS_PER_SEC
default 1024
# Wiseconnect needs more than 1024 bytes of main stack size to initialize
# (especially with PM)
configdefault MAIN_STACK_SIZE
default 2048
config NUM_PREEMPT_PRIORITIES
default 56
config CMSIS_V2_THREAD_DYNAMIC_MAX_COUNT
default 2
config CMSIS_V2_THREAD_DYNAMIC_STACK_SIZE
default 1024
config CMSIS_V2_THREAD_MAX_STACK_SIZE
default 2048
endif
rsource "*/Kconfig.defconfig"
endif # SOC_FAMILY_SILABS_SIWX91X