Add indirect CSR access to access CLIC register to satisfy the current CLIC spec (Version v0.9, 2024-06-28: Draf). Add CONFIG_LEGACY_CLIC_MEMORYMAP_ACCESS for legacy CLIC implementation with memory-mapped CLIC register. Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
77 lines
2.2 KiB
Plaintext
77 lines
2.2 KiB
Plaintext
# Copyright (c) 2021 Tokita, Hiroshi <tokita.hiroshi@gmail.com>
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config CLIC
|
|
bool "RISC-V Core Local Interrupt Controller (CLIC)"
|
|
default y
|
|
depends on DT_HAS_NUCLEI_ECLIC_ENABLED || DT_HAS_RISCV_CLIC_ENABLED
|
|
select RISCV_SOC_HAS_CUSTOM_IRQ_HANDLING
|
|
help
|
|
Core Local Interrupt Controller provide low-latency, vectored,
|
|
preemptive interrupts for RISC-V systems.
|
|
|
|
config NUCLEI_ECLIC
|
|
bool "Enhanced Core Local Interrupt Controller (ECLIC)"
|
|
default y
|
|
depends on DT_HAS_NUCLEI_ECLIC_ENABLED
|
|
select CLIC
|
|
select CLIC_SMCLICSHV_EXT if RISCV_VECTORED_MODE
|
|
select CLIC_SMCLICCONFIG_EXT
|
|
select LEGACY_CLIC_MEMORYMAP_ACCESS
|
|
help
|
|
Interrupt controller for Nuclei SoC core.
|
|
|
|
config NRFX_CLIC
|
|
bool "VPR Core Local Interrpt Controller (CLIC)"
|
|
default y
|
|
depends on DT_HAS_NORDIC_NRF_CLIC_ENABLED
|
|
select GEN_IRQ_VECTOR_TABLE
|
|
help
|
|
Interrupt controller for Nordic VPR cores.
|
|
|
|
if CLIC
|
|
|
|
config CLIC_SMCLICSHV_EXT
|
|
bool
|
|
help
|
|
The selective hardware vectoring extension gives users the flexibility
|
|
to select the behavior for each interrupt. The CLIC driver needs to
|
|
implement the riscv_clic_irq_vector_set() function.
|
|
|
|
config CLIC_SMCLICCONFIG_EXT
|
|
bool
|
|
help
|
|
Enables the SMCLICCONFIG extension, allowing configuration of CLIC
|
|
parameters such as the number of interrupt level bits.
|
|
|
|
config CLIC_PARAMETER_INTCTLBITS
|
|
int "The number of modifiable bits in the clicintctl registers"
|
|
range 0 8
|
|
default 8
|
|
help
|
|
This option specifies the number of modifiable bits in the clicintctl
|
|
registers.
|
|
|
|
config CLIC_PARAMETER_MNLBITS
|
|
int "The number of bits in CLICINTCTLBITS to encode the interrupt level"
|
|
range 0 CLIC_PARAMETER_INTCTLBITS
|
|
default 0
|
|
help
|
|
This option specifies the number of bits in CLICINTCTLBITS assigned to
|
|
encode the interrupt level at machine mode.
|
|
|
|
config LEGACY_CLIC_MEMORYMAP_ACCESS
|
|
bool
|
|
help
|
|
Enables legacy CLIC, allowing access to CLIC registers through
|
|
memory-mapped access instead of indirect CSR access.
|
|
|
|
config LEGACY_CLIC
|
|
bool "Use the legacy clic specification"
|
|
depends on RISCV_HAS_CLIC
|
|
help
|
|
Enables legacy clic, where smclicshv extension is not supported and
|
|
hardware vectoring is set via mode bits of mtvec.
|
|
|
|
endif # CLIC
|