# Copyright (c) 2021 Tokita, Hiroshi # 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