|  | # 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 | 
|  |  | 
|  | config GIC_V1 | 
|  | def_bool DT_HAS_ARM_GIC_V1_ENABLED | 
|  | select GIC | 
|  | help | 
|  | The ARM Generic Interrupt Controller v1 (e.g. PL390) works with the | 
|  | ARM Cortex-family processors. | 
|  |  | 
|  | config GIC_V2 | 
|  | def_bool DT_HAS_ARM_GIC_V2_ENABLED | 
|  | select GIC | 
|  | help | 
|  | The ARM Generic Interrupt Controller v2 (e.g. GIC-400) works with the | 
|  | ARM Cortex-family processors. | 
|  |  | 
|  | config GIC_V3 | 
|  | def_bool DT_HAS_ARM_GIC_V3_ENABLED | 
|  | select GIC | 
|  | help | 
|  | The ARM Generic Interrupt Controller v3 (e.g. GIC-500 and GIC-600) | 
|  | works with the ARM Cortex-family processors. | 
|  |  | 
|  | 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). | 
|  |  | 
|  | config GIC_SAFE_CONFIG | 
|  | bool "GIC Distributor Safe Configuration" | 
|  | depends on GIC_V3 | 
|  | default n | 
|  | help | 
|  | In case of multiple OSes running on different CPU Cores which share the | 
|  | same GIC controller, need to avoid the distributor re-configured to avoid | 
|  | crash the OS has already been started. With this enabled, it will bypass | 
|  | GIC distributor configuration if it has been configured by other OS. | 
|  |  | 
|  | endif # CPU_CORTEX |