Subject: Re: [PATCH] arm64: dts: renesas: r8a78000: Fix GIC-720AE View 1 Redistributor description

From: Marc Zyngier <[email-masked]>
Date: Thu, 14 May 2026 08:04:54 +0100

On Wed, 13 May 2026 23:30:08 +0100,
Marek Vasut <[email-masked]> wrote:
> 
> The Renesas R-Car X5H (R8A78000) SoC contains Arm CoreLink GIC-720AE
> Generic Interrupt Controller with Multi View capability. Firmware has
> access to configuration View 0, Linux kernel has access to View 1.

Huh. That's pretty unexpected. The usual wisdom is to give the APs
view 0 so that it looks like a "normal" machine, rather than only a
partition of the system (which is what view != 0 indicates).

I guess there is some additional fun going on there, such as other
CPUs getting a portion of the GIC for themselves, and firmware
preventing whatever is running on the APs to interact with them...

> 
> The Arm CoreLink GIC-720AE Generic Interrupt Controller Technical
> Reference Manual, currently latest r2p1 [1], chapter "Programmers model
> for GIC-720AE", subchapter "Redistributor registers for control and
> physical LPIs summary", part "GICR_TYPER, Redistributor Type Register"
> clarifies register "GICR_TYPER" bit 4 "Last" behavior in Multi View
> setup as follows:
> 
> "
> Last
> Last Redistributor:
> 
> 0 ... This Redistributor is not the last Redistributor on the chip.
> 1 ... This Redistributor is the last Redistributor on the chip.
>       When GICD_CFGID.VIEW == 1, for views 1, 2, or 3 this bit
>       always returns 1.
> "
> 
> On this SoC, GICD_CFGID.VIEW is 1 and the Linux kernel has access to
> View 1, therefore Linux kernel GICv3 driver will interpret register
> "GICR_TYPER" bit 4 "Last" = 1 in the first Redistributor in continuous
> Redistributor page as that first Redistributor being the one and only
> Redistributor and will stop processing the continuous Redistributor
> page further. This will prevent the other Redistributors from being
> recognized by the system and used for other PEs.
> 
> Because the hardware indicates that the continuous Redistributor page
> is not continuous for View 1, 2, or 3, describe every Redistributor
> separately in the DT. This makes all Redistributors for all cores
> accessible in Linux.
> 
> [1] https://developer.arm.com/documentation/102666/0201/Programmers-model-for-GIC-720AE/Redistributor-registers-for-control-and-physical-LPIs-summary/GICR-TYPER--Redistributor-Type-Register?lang=en
>

I am amazed that you managed to find anything at all on this web site.

I would refrain from adding links to any ARM web sites in a commit
message though. They tend to have a 10 minutes half-life period, and
whole specs to disappear from public view when they are not flavour of
the week anymore.

A link to the equivalent PDF has better chances to survive further
creative^WAI slop driven reorg of the documentation:

https://documentation-service.arm.com/static/69ef3c1cd35efd294e335c43

but your best bet is to download it, archive it, and refer to it
yourself.

> Fixes: 63500d12cf76 ("arm64: dts: renesas: Add R8A78000 SoC support")
> Signed-off-by: Marek Vasut <[email-masked]>

Acked-by: Marc Zyngier <[email-masked]>

	M.

-- 
Without deviation from the norm, progress is not possible.