From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: Re: [PATCH] arm64: dts: Fix GIC reg sizes for APM X-Gene Date: Thu, 19 Feb 2015 12:23:15 -0600 Message-ID: References: <1422342206-4750-1-git-send-email-psawargaonkar@apm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: <1422342206-4750-1-git-send-email-psawargaonkar-qTEPVZfXA3Y@public.gmane.org> Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Pranavkumar Sawargaonkar Cc: "devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Feng Kan , Arnd Bergmann , Marc Zyngier , "jcm-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org" , "patches-qTEPVZfXA3Y@public.gmane.org" , "kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org" , Christoffer Dall , Tushar Jagad , "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" List-Id: devicetree@vger.kernel.org On Tue, Jan 27, 2015 at 1:03 AM, Pranavkumar Sawargaonkar wrote: > In APM X-Gene, GIC register space is 64K aligned while the sizes mentioned > in the dt are 4K aligned. This breaks KVM when kernel is built with 64K page > size due to size alignment checking in vgic driver for VCPU Control and > VCPU register. > > This patch corrects the sizes to be inline with the hardware spec. This does not make sense. The GIC regions are still only 4 or 8KB and the h/w description should reflect that. For implementations using gic-400 and the addressing decode trick, the rest of the register range is also not safe to access given it is multiple mapped. Also, this wastes virtual space, but I guess we don't care on 64-bit. KVM should be fixed to only check base address alignment. Size alignment does not matter (if it does, then you need to fix all register blocks). Rob > > CC: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org > CC: kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org > CC: arnd-r2nGTMty4D4@public.gmane.org > CC: marc.zyngier-5wv7dgnIgG8@public.gmane.org > CC: christoffer.dall-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org > CC: jcm-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org > Signed-off-by: Pranavkumar Sawargaonkar > Signed-off-by: Tushar Jagad > Signed-off-by: Feng Kan > --- > arch/arm64/boot/dts/apm/apm-storm.dtsi | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/boot/dts/apm/apm-storm.dtsi b/arch/arm64/boot/dts/apm/apm-storm.dtsi > index f1ad9c2..65f0e6d 100644 > --- a/arch/arm64/boot/dts/apm/apm-storm.dtsi > +++ b/arch/arm64/boot/dts/apm/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 0x78010000 0x0 0x10000>, /* GIC Dist */ > + <0x0 0x78020000 0x0 0x20000>, /* GIC CPU */ > + <0x0 0x78040000 0x0 0x10000>, /* GIC VCPU Control */ > + <0x0 0x78060000 0x0 0x20000>; /* GIC VCPU */ > interrupts = <1 9 0xf04>; /* GIC Maintenence IRQ */ > }; > > -- > 1.7.9.5 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html From mboxrd@z Thu Jan 1 00:00:00 1970 From: robherring2@gmail.com (Rob Herring) Date: Thu, 19 Feb 2015 12:23:15 -0600 Subject: [PATCH] arm64: dts: Fix GIC reg sizes for APM X-Gene In-Reply-To: <1422342206-4750-1-git-send-email-psawargaonkar@apm.com> References: <1422342206-4750-1-git-send-email-psawargaonkar@apm.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Jan 27, 2015 at 1:03 AM, Pranavkumar Sawargaonkar wrote: > In APM X-Gene, GIC register space is 64K aligned while the sizes mentioned > in the dt are 4K aligned. This breaks KVM when kernel is built with 64K page > size due to size alignment checking in vgic driver for VCPU Control and > VCPU register. > > This patch corrects the sizes to be inline with the hardware spec. This does not make sense. The GIC regions are still only 4 or 8KB and the h/w description should reflect that. For implementations using gic-400 and the addressing decode trick, the rest of the register range is also not safe to access given it is multiple mapped. Also, this wastes virtual space, but I guess we don't care on 64-bit. KVM should be fixed to only check base address alignment. Size alignment does not matter (if it does, then you need to fix all register blocks). Rob > > CC: linux-arm-kernel at lists.infradead.org > CC: kvmarm at lists.cs.columbia.edu > CC: arnd at arndb.de > CC: marc.zyngier at arm.com > CC: christoffer.dall at linaro.org > CC: jcm at redhat.com > Signed-off-by: Pranavkumar Sawargaonkar > Signed-off-by: Tushar Jagad > Signed-off-by: Feng Kan > --- > arch/arm64/boot/dts/apm/apm-storm.dtsi | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/boot/dts/apm/apm-storm.dtsi b/arch/arm64/boot/dts/apm/apm-storm.dtsi > index f1ad9c2..65f0e6d 100644 > --- a/arch/arm64/boot/dts/apm/apm-storm.dtsi > +++ b/arch/arm64/boot/dts/apm/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 0x78010000 0x0 0x10000>, /* GIC Dist */ > + <0x0 0x78020000 0x0 0x20000>, /* GIC CPU */ > + <0x0 0x78040000 0x0 0x10000>, /* GIC VCPU Control */ > + <0x0 0x78060000 0x0 0x20000>; /* GIC VCPU */ > interrupts = <1 9 0xf04>; /* GIC Maintenence IRQ */ > }; > > -- > 1.7.9.5 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel