| # 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 |