2f5ac45e53
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>
79 lines
2.4 KiB
Plaintext
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
|