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)
61 lines
1.2 KiB
Plaintext
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
|