[PATCH] arm64: Fix GIC addresses for APM X-Gene
Anup Patel
anup.patel at linaro.org
Thu Sep 18 17:04:10 PDT 2014
On 27 August 2014 11:25, Anup Patel <anup.patel at linaro.org> wrote:
> The APM X-Gene CPU does not implement security extensions but uses
> GIC-400 which has security extensions implemented. To take care of
> this situation APM HW designers provided two sets of GIC addresses
> for accessing secured and non-secured GIC registers seperately.
>
> Currently, the APM X-Gene DTS file points to secured GIC registers
> and uses GIC Group0 for all irqs. This works fine in most cases
> but does not work when routing host irqs to guest or VM using the
> GICH_LRn.HW bit. It happens because if Guest or VM EOIs routed irqs
> using GICV_EOI register then GIC-400 treats that Guest or VM is
> trying to EOI a Group0 irq (i.e. secured irq) from non-secured mode
> hence GIC-400 does not deactivate the routed irq.
>
> To take care of the above issue, we initialize secured GIC registers
> from bootloader such that all host irqs are treated as Group1 irqs
> (i.e. non-secured irqs) and we only access non-secured GIC registers
> from Linux, Xen and other hypervisors. The bootloader GIC initialization
> part is already taken care and is available to all APM Mustang users
> in latest APM SW release. This patch updates Linux DTS files to use
> non-secured GIC registers for Linux and Xen.
>
> Folks who want to try this patch, please update your APM Mustang
> u-boot from any APM SW release after 7th July 2014.
>
> Signed-off-by: Anup Patel <anup.patel at linaro.org>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar at linaro.org>
> ---
> arch/arm64/boot/dts/apm-storm.dtsi | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/apm-storm.dtsi b/arch/arm64/boot/dts/apm-storm.dtsi
> index c0aceef..2b162f1 100644
> --- a/arch/arm64/boot/dts/apm-storm.dtsi
> +++ b/arch/arm64/boot/dts/apm-storm.dtsi
> @@ -81,10 +81,10 @@
> compatible = "arm,cortex-a15-gic";
> #interrupt-cells = <3>;
> interrupt-controller;
> - reg = <0x0 0x78010000 0x0 0x1000>, /* GIC Dist */
> - <0x0 0x78020000 0x0 0x1000>, /* GIC CPU */
> - <0x0 0x78040000 0x0 0x2000>, /* GIC VCPU Control */
> - <0x0 0x78060000 0x0 0x2000>; /* GIC VCPU */
> + reg = <0x0 0x78090000 0x0 0x1000>, /* GIC Dist */
> + <0x0 0x780A0000 0x0 0x1000>, /* GIC CPU */
> + <0x0 0x780C0000 0x0 0x2000>, /* GIC VCPU Control */
> + <0x0 0x780E0000 0x0 0x2000>; /* GIC VCPU */
> interrupts = <1 9 0xf04>; /* GIC Maintenence IRQ */
> };
>
> --
> 1.7.9.5
>
Hi All,
Any comments on this one?
This patch is required to have GICH_LRn.HW bit working
on X-Gene with Xen and KVM.
Thanks,
Anup
More information about the linux-arm-kernel
mailing list