Re: [PATCH] arm/arm64: DT: Fix GICv2 CPU interface size
On Wed, Jun 25, 2014 at 11:37:54AM +0100, Marc Zyngier wrote: > All the Cortex-{A7,A15} implementations are using a GICv2. Same for > the current arm64 platforms. > > Turns out that most of these platforms have described their GIC CPU > interface size as being 4kB. while it is actually 8kB (the GICC_DIR > register lives at offset 0x1000). > > This was found when converting the GIC driver to use EOImode==1 on > GICv2-based systems. It uses the GICC_DIR register, and the result > is a very early firework... > > Signed-off-by: Marc Zyngier Just tested this on an Allwinner A31. Acked-by: Maxime Ripard Tested-by: Maxime Ripard Thanks! Maxime -- Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com signature.asc Description: Digital signature
Re: [PATCH] arm/arm64: DT: Fix GICv2 CPU interface size
On Wed, Jun 25 2014 at 01:21:17 PM, Rob Herring wrote: > On Wed, Jun 25, 2014 at 5:37 AM, Marc Zyngier wrote: >> All the Cortex-{A7,A15} implementations are using a GICv2. Same for >> the current arm64 platforms. >> >> Turns out that most of these platforms have described their GIC CPU >> interface size as being 4kB. while it is actually 8kB (the GICC_DIR >> register lives at offset 0x1000). >> >> This was found when converting the GIC driver to use EOImode==1 on >> GICv2-based systems. It uses the GICC_DIR register, and the result >> is a very early firework... > > What's your plan for making the kernel change? Updating the dts files > is good, but that doesn't immediately help you if you have old dtbs. See at the end of https://lkml.org/lkml/2014/6/25/243 Basically, we stay with a GICv1 behaviour if we detect the mess. >> Signed-off-by: Marc Zyngier >> --- >> arch/arm/boot/dts/axm55xx.dtsi | 2 +- >> arch/arm/boot/dts/dra7.dtsi | 2 +- >> arch/arm/boot/dts/ecx-2000.dts | 2 +- > > Acked-by: Rob Herring Thanks, M. -- Jazz is not dead. It just smells funny. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] arm/arm64: DT: Fix GICv2 CPU interface size
On Wed, Jun 25, 2014 at 5:37 AM, Marc Zyngier wrote: > All the Cortex-{A7,A15} implementations are using a GICv2. Same for > the current arm64 platforms. > > Turns out that most of these platforms have described their GIC CPU > interface size as being 4kB. while it is actually 8kB (the GICC_DIR > register lives at offset 0x1000). > > This was found when converting the GIC driver to use EOImode==1 on > GICv2-based systems. It uses the GICC_DIR register, and the result > is a very early firework... What's your plan for making the kernel change? Updating the dts files is good, but that doesn't immediately help you if you have old dtbs. > Signed-off-by: Marc Zyngier > --- > arch/arm/boot/dts/axm55xx.dtsi | 2 +- > arch/arm/boot/dts/dra7.dtsi | 2 +- > arch/arm/boot/dts/ecx-2000.dts | 2 +- Acked-by: Rob Herring Rob -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] arm/arm64: DT: Fix GICv2 CPU interface size
On Wed, Jun 25, 2014 at 11:37:54AM +0100, Marc Zyngier wrote: > All the Cortex-{A7,A15} implementations are using a GICv2. Same for > the current arm64 platforms. > > Turns out that most of these platforms have described their GIC CPU > interface size as being 4kB. while it is actually 8kB (the GICC_DIR > register lives at offset 0x1000). > > This was found when converting the GIC driver to use EOImode==1 on > GICv2-based systems. It uses the GICC_DIR register, and the result > is a very early firework... > > Signed-off-by: Marc Zyngier > --- > arch/arm/boot/dts/axm55xx.dtsi | 2 +- > arch/arm/boot/dts/dra7.dtsi | 2 +- > arch/arm/boot/dts/ecx-2000.dts | 2 +- > arch/arm/boot/dts/exynos3250.dtsi | 2 +- > arch/arm/boot/dts/exynos5.dtsi | 2 +- > arch/arm/boot/dts/exynos5260.dtsi | 2 +- > arch/arm/boot/dts/exynos5410.dtsi | 2 +- > arch/arm/boot/dts/exynos5440.dtsi | 2 +- > arch/arm/boot/dts/omap5.dtsi| 2 +- > arch/arm/boot/dts/r8a73a4.dtsi | 2 +- > arch/arm/boot/dts/r8a7790.dtsi | 2 +- > arch/arm/boot/dts/r8a7791.dtsi | 2 +- > arch/arm/boot/dts/sun6i-a31.dtsi| 2 +- > arch/arm/boot/dts/sun7i-a20.dtsi| 2 +- > arch/arm/boot/dts/tegra114.dtsi | 2 +- > arch/arm/boot/dts/tegra124.dtsi | 2 +- > arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts | 2 +- > arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 2 +- > arch/arm64/boot/dts/apm-storm.dtsi | 2 +- > arch/arm64/boot/dts/foundation-v8.dts | 2 +- > arch/arm64/boot/dts/rtsm_ve-aemv8a.dts | 2 +- > 21 files changed, 21 insertions(+), 21 deletions(-) For the Tegra114 and Tegra124 patches: Tested-by: Thierry Reding Acked-by: Thierry Reding pgpWE1cQD5evb.pgp Description: PGP signature
[PATCH] arm/arm64: DT: Fix GICv2 CPU interface size
All the Cortex-{A7,A15} implementations are using a GICv2. Same for the current arm64 platforms. Turns out that most of these platforms have described their GIC CPU interface size as being 4kB. while it is actually 8kB (the GICC_DIR register lives at offset 0x1000). This was found when converting the GIC driver to use EOImode==1 on GICv2-based systems. It uses the GICC_DIR register, and the result is a very early firework... Signed-off-by: Marc Zyngier --- arch/arm/boot/dts/axm55xx.dtsi | 2 +- arch/arm/boot/dts/dra7.dtsi | 2 +- arch/arm/boot/dts/ecx-2000.dts | 2 +- arch/arm/boot/dts/exynos3250.dtsi | 2 +- arch/arm/boot/dts/exynos5.dtsi | 2 +- arch/arm/boot/dts/exynos5260.dtsi | 2 +- arch/arm/boot/dts/exynos5410.dtsi | 2 +- arch/arm/boot/dts/exynos5440.dtsi | 2 +- arch/arm/boot/dts/omap5.dtsi| 2 +- arch/arm/boot/dts/r8a73a4.dtsi | 2 +- arch/arm/boot/dts/r8a7790.dtsi | 2 +- arch/arm/boot/dts/r8a7791.dtsi | 2 +- arch/arm/boot/dts/sun6i-a31.dtsi| 2 +- arch/arm/boot/dts/sun7i-a20.dtsi| 2 +- arch/arm/boot/dts/tegra114.dtsi | 2 +- arch/arm/boot/dts/tegra124.dtsi | 2 +- arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts | 2 +- arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 2 +- arch/arm64/boot/dts/apm-storm.dtsi | 2 +- arch/arm64/boot/dts/foundation-v8.dts | 2 +- arch/arm64/boot/dts/rtsm_ve-aemv8a.dts | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/arch/arm/boot/dts/axm55xx.dtsi b/arch/arm/boot/dts/axm55xx.dtsi index ea288f0..40aacc9 100644 --- a/arch/arm/boot/dts/axm55xx.dtsi +++ b/arch/arm/boot/dts/axm55xx.dtsi @@ -62,7 +62,7 @@ #address-cells = <0>; interrupt-controller; reg = <0x20 0x01001000 0 0x1000>, - <0x20 0x01002000 0 0x1000>, + <0x20 0x01002000 0 0x2000>, <0x20 0x01004000 0 0x2000>, <0x20 0x01006000 0 0x2000>; interrupts = ; reg = <0x48211000 0x1000>, - <0x48212000 0x1000>, + <0x48212000 0x2000>, <0x48214000 0x2000>, <0x48216000 0x2000>; interrupts = ; diff --git a/arch/arm/boot/dts/ecx-2000.dts b/arch/arm/boot/dts/ecx-2000.dts index 2ccbb57f..c15e7e0 100644 --- a/arch/arm/boot/dts/ecx-2000.dts +++ b/arch/arm/boot/dts/ecx-2000.dts @@ -99,7 +99,7 @@ interrupt-controller; interrupts = <1 9 0xf04>; reg = <0xfff11000 0x1000>, - <0xfff12000 0x1000>, + <0xfff12000 0x2000>, <0xfff14000 0x2000>, <0xfff16000 0x2000>; }; diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi index 3e678fa..bbd177a 100644 --- a/arch/arm/boot/dts/exynos3250.dtsi +++ b/arch/arm/boot/dts/exynos3250.dtsi @@ -173,7 +173,7 @@ #interrupt-cells = <3>; interrupt-controller; reg = <0x10481000 0x1000>, - <0x10482000 0x1000>, + <0x10482000 0x2000>, <0x10484000 0x2000>, <0x10486000 0x2000>; interrupts = <1 9 0xf04>; diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi index 79d0608..15fdc3b 100644 --- a/arch/arm/boot/dts/exynos5.dtsi +++ b/arch/arm/boot/dts/exynos5.dtsi @@ -44,7 +44,7 @@ #interrupt-cells = <3>; interrupt-controller; reg = <0x10481000 0x1000>, - <0x10482000 0x1000>, + <0x10482000 0x2000>, <0x10484000 0x2000>, <0x10486000 0x2000>; interrupts = <1 9 0xf04>; diff --git a/arch/arm/boot/dts/exynos5260.dtsi b/arch/arm/boot/dts/exynos5260.dtsi index 5398a60..c0e2341 100644 --- a/arch/arm/boot/dts/exynos5260.dtsi +++ b/arch/arm/boot/dts/exynos5260.dtsi @@ -161,7 +161,7 @@ #size-cells = <0>; interrupt-controller; reg = <0x10481000 0x1000>, - <0x10482000 0x1000>, + <0x10482000 0x2000>, <0x10484000 0x2000>, <0x10486000 0x2000>; interrupts = <1 9 0xf04>; diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi index 3839c26..aa76aa5 100644 --- a/arch/arm/boot/dts/exynos5410.dtsi +++ b/arch/arm/boot/dts/exynos5410.dtsi @@ -76,7 +76,7 @@ #interr