From mboxrd@z Thu Jan 1 00:00:00 1970 From: mylene.josserand@bootlin.com (=?UTF-8?B?TXlsw6huZQ==?= Josserand) Date: Thu, 22 Feb 2018 10:30:15 +0100 Subject: [PATCH v3 6/7] arm: dts: sun8i: a83t: Fix undefined offset with virtual timer In-Reply-To: <823f256a-3240-7bb4-cc0b-711108f3076c@arm.com> References: <20180219081837.15482-1-mylene.josserand@bootlin.com> <20180219081837.15482-7-mylene.josserand@bootlin.com> <823f256a-3240-7bb4-cc0b-711108f3076c@arm.com> Message-ID: <20180222103015.40249fee@dell-desktop.home> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Marc, Thank you for the review! On Tue, 20 Feb 2018 18:07:54 +0000 Marc Zyngier wrote: > Hi Myl?ne, > > On 19/02/18 08:18, Myl?ne Josserand wrote: > > The ARM architected timers use an offset between their physical and > > virtual counters. That offset should be configured by the bootloader > > in CNTVOFF. > > > > However, the A83t bootloader fails to do so, and we end up with an > > undefined offset (which in our case is random), meaning that each CPU > > will have a different time, which isn't working very well. > > > > Fix that by setting the arm,cpu-registers-not-fw-configured that will > > make Linux use the physical timers instead of the virtual ones. One > > possible side effect would be that the virtualization features would > > be disabled. However, due to the way the GIC has been integrated in > > the system, it is already unusable so we're effectively not losing any > > feature. > > > > Signed-off-by: Myl?ne Josserand > > --- > > arch/arm/boot/dts/sun8i-a83t.dtsi | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi > > index e97a6d17b8d0..b9bdb891cf2f 100644 > > --- a/arch/arm/boot/dts/sun8i-a83t.dtsi > > +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi > > @@ -123,6 +123,7 @@ > > , > > , > > ; > > + arm,cpu-registers-not-fw-configured; > > }; > > > > clocks { > > > > Is the firmware dropping you in the kernel in secure or non-secure mode? For sun8i-a83t, the kernel is in secure mode. > > If the later, what you have is the only solution. If the former, that > I'd suggest you adopt what we already have for the Renesas stuff (see > arch/arm/mach-shmobile/headsmp-apmu.S and commit 3fd45a136ff6). > > It would allow you to use the virtual timer as intended. Okay, thanks for the commit pointed, I will try to adopt what it is done for Renesas. Best regards, -- Myl?ne Josserand, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering http://bootlin.com