| # Copyright (c) 2022 Carlo Caione <ccaione@baylibre.com> |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config PLIC |
| bool "Platform Level Interrupt Controller (PLIC)" |
| default y |
| depends on DT_HAS_SIFIVE_PLIC_1_0_0_ENABLED |
| select MULTI_LEVEL_INTERRUPTS |
| select 2ND_LEVEL_INTERRUPTS |
| help |
| Platform Level Interrupt Controller provides support |
| for external interrupt lines defined by the RISC-V SoC. |
| |
| if PLIC |
| |
| config PLIC_SUPPORTS_SOFT_INTERRUPT |
| bool |
| default y |
| depends on DT_HAS_ANDESTECH_NCEPLIC100_ENABLED |
| help |
| Enabled when the PLIC supports software-triggered interrupts. |
| |
| config PLIC_SUPPORTS_TRIG_TYPE |
| bool |
| default y |
| depends on DT_HAS_ANDESTECH_NCEPLIC100_ENABLED |
| help |
| Enabled when the PLIC supports multiple trigger types, |
| such as level, edge, etc. |
| |
| if PLIC_SUPPORTS_TRIG_TYPE |
| |
| config PLIC_TRIG_TYPE_REG_OFFSET |
| hex "Trigger type register offset" |
| default 0x1080 if DT_HAS_ANDESTECH_NCEPLIC100_ENABLED |
| help |
| Offset to the 'trigger type' register. |
| |
| config PLIC_TRIG_TYPE_BITWIDTH |
| int "Trigger type bitwidth" |
| default 1 |
| help |
| Number of bits required to differentiate between the trigger types. |
| |
| config PLIC_SUPPORTS_TRIG_EDGE |
| bool |
| default y |
| depends on DT_HAS_ANDESTECH_NCEPLIC100_ENABLED |
| help |
| Enabled when the PLIC supports edge-triggered interrupt. |
| |
| endif # PLIC_SUPPORTS_TRIG_TYPE |
| |
| config PLIC_IRQ_AFFINITY |
| bool "Configure IRQ affinity" |
| depends on SMP |
| depends on MP_MAX_NUM_CPUS > 1 |
| help |
| Enable configuration of IRQ affinity. |
| |
| config PLIC_IRQ_AFFINITY_MASK |
| hex "Default IRQ affinity mask" |
| depends on PLIC_IRQ_AFFINITY |
| default 0x1 |
| help |
| Default mask for the driver when IRQ affinity is enabled. |
| |
| config PLIC_SHELL |
| bool "PLIC shell commands" |
| depends on SHELL |
| help |
| Enable additional shell commands useful for debugging. |
| Caution: This can use quite a bit of RAM (PLICs * IRQs * sizeof(uint16_t)). |
| |
| if PLIC_SHELL |
| |
| config PLIC_SHELL_IRQ_COUNT |
| bool "IRQ count shell commands" |
| default y |
| help |
| Records the number of hits per interrupt line and provide shell commands to access them. |
| Caution: This can use quite a bit of RAM (PLICs * IRQs * sizeof(PLIC_IRQ_COUNT_TYPE)). |
| |
| config PLIC_SHELL_IRQ_AFFINITY |
| bool "Shell commands to configure IRQ affinity" |
| default y |
| depends on PLIC_IRQ_AFFINITY |
| help |
| Provide shell commands to configure IRQ affinity in runtime. |
| |
| endif # PLIC_SHELL |
| |
| endif # PLIC |