zephyr/dts/bindings/interrupt-controller/arm,gic-v3.yaml
Ziad Elhanafy 9a236f82c1 drivers: gic: Add multiple GIC redistributors regions support
For GIC multiple views feature support, all GIC Re-distributor's
GICR_TYPER.last will be set. Because configuration view-0 can
assign non-contiguous CPUs to views other than 0, in this case
the GIC Redistributors' registers won't seem contiguous.

So the GIC driver should cope with multiple sets of redistributors
like multi-chip scenarios. In this patch we add multiple GIC
redistributor regions support in GIC redistributor iteration.

For more information, refer to the Multi view subsection
in the GIC Technical Reference Manual.
For example:
https://developer.arm.com/documentation/101516/0400/Operation-of-GIC-700/Multi-view

Signed-off-by: Ziad Elhanafy <ziad.elhanafy@arm.com>
2025-01-21 11:16:12 +01:00

54 lines
1.7 KiB
YAML

#
# Copyright 2025 Arm Limited and/or its affiliates <open-source-office@arm.com>
#
# SPDX-License-Identifier: Apache-2.0
#
description: |
ARM Generic Interrupt Controller v3
Examples for GICv3 devicetree nodes:
gic: interrupt-controller@2cf00000 {
compatible = "arm,gic-v3", "arm,gic";
reg = <0x2f000000 0x10000>, /* GICD */
<0x2f100000 0x200000>; /* GICR */
interrupt-controller;
#interrupt-cells = <3>;
status = "okay";
};
gic: interrupt-controller@2c010000 {
compatible = "arm,gic-v3", "arm,gic";
redistributor-stride = <0x40000>; /* 256kB stride */
redistributor-regions = <2>;
reg = <0x2c010000 0x10000>, /* GICD */
<0x2d000000 0x800000>, /* GICR 1: CPUs 0-31 */
<0x2e000000 0x800000>; /* GICR 2: CPUs 32-63 */
interrupt-controller;
#interrupt-cells = <4>;
status = "okay";
};
compatible: arm,gic-v3
include: arm,gic.yaml
properties:
redistributor-stride:
type: int
description:
If using padding pages, specifies the stride of consecutive
redistributors which is the distance between consecutive redistributors in
memory. Must be a multiple of 64kB. Required if the distance between
redistributors is not the default 128kB.
redistributor-regions:
type: int
description:
The number of independent contiguous regions occupied by the redistributors.
The term "regions" refers to distinct memory segments or areas allocated
for redistributors within the system memory. The number of redistributor
regions and their sizes are hardware-specific. Required if more than one
such region is present.