zephyr/drivers/interrupt_controller/Kconfig.gic
Piotr Wojnarowski 2f5ac45e53 dts: bindings: interrupt-controller: GIC: Allow specifying version in DT
Currently, only the presence of a GIC is reflected in the device tree,
and its version must be set separately in each SoC's Kconfig.
This patch adds separate bindings for each GIC version whose presence
in the device tree automatically enables the corresponding Kconfig symbol.

Signed-off-by: Piotr Wojnarowski <pwojnarowski@antmicro.com>
2023-06-17 08:01:46 -04:00

79 lines
2.4 KiB
Plaintext

# ARM Generic Interrupt Controller (GIC) configuration
# Copyright (c) 2019 Stephanos Ioannidis <root@stephanos.io>
# SPDX-License-Identifier: Apache-2.0
if CPU_CORTEX
config GIC
bool
# Selecting these symbols directly is deprecated: the GIC architecture version
# should be specified by adding the appropriate compat (for example arm,gic-v2)
# to the DT.
config GIC_V1
def_bool DT_HAS_ARM_GIC_V1_ENABLED
select GIC
select DEPRECATED if !DT_HAS_ARM_GIC_V1_ENABLED
help
The ARM Generic Interrupt Controller v1 (e.g. PL390) works with the
ARM Cortex-family processors.
Selecting this symbol directly is deprecated. Please add the arm,gic-v1
compatible to the GIC node in your DT and remove the direct selection.
config GIC_V2
def_bool DT_HAS_ARM_GIC_V2_ENABLED
select GIC
select DEPRECATED if !DT_HAS_ARM_GIC_V2_ENABLED
help
The ARM Generic Interrupt Controller v2 (e.g. GIC-400) works with the
ARM Cortex-family processors.
Selecting this symbol directly is deprecated. Please add the arm,gic-v2
compatible to the GIC node in your DT and remove the direct selection.
config GIC_V3
def_bool DT_HAS_ARM_GIC_V3_ENABLED
select GIC
select DEPRECATED if !DT_HAS_ARM_GIC_V3_ENABLED
help
The ARM Generic Interrupt Controller v3 (e.g. GIC-500 and GIC-600)
works with the ARM Cortex-family processors.
Selecting this symbol directly is deprecated. Please add the arm,gic-v3
compatible to the GIC node in your DT and remove the direct selection.
config GIC_VER
int
depends on GIC
default 1 if GIC_V1
default 2 if GIC_V2
default 3 if GIC_V3
config GIC_SINGLE_SECURITY_STATE
bool
depends on GIC_V3
help
Some ARM Cortex-family processors only supports single security
state.
config GIC_V3_RDIST_MATCHING_AFF0_ONLY
bool
depends on GIC_V3
default y if CPU_CORTEX_R52
help
Some platforms only use aff0 to match mpdir and GICR.aff. With this
enabled, we find the target redistributor by comparing the aff0 only.
config GIC_V3_ITS
bool "GIC v3 Interrupt Translation Service"
depends on GIC_V3
# ITS generates Non-secure Group 1 LPI interrupts, requiring EL1NS
select ARMV8_A_NS
select DYNAMIC_INTERRUPTS
help
Support for the optional Interrupt Translation Service used to translate
hardware interrupt from PCIe MSI messages for example. Please note
that ITS uses dynamic memory, so HEAP_MEM_POOL_SIZE should be
enough to allocate ITS tables (size is probed at runtime).
endif # CPU_CORTEX