[GIT PULL 1/3] ARM: soc: exynos: Drivers for v4.9

Krzysztof Kozlowski
2016-10-03T07:48:25Z

On Sun, Oct 02, 2016 at 05:25:07PM -0700, Olof Johansson wrote:
> On Mon, Sep 19, 2016 at 8:53 AM, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> > On Mon, Sep 19, 2016 at 05:02:40PM +0200, Arnd Bergmann wrote:
> >> On Sunday, September 18, 2016 6:39:46 PM CEST Krzysztof Kozlowski wrote:
> >> > Samsung drivers/soc update for v4.9:
> >> > 1. Allow compile testing of exynos-mct clocksource driver on ARM64.
> >> > 2. Document Exynos5433 PMU compatible (already used by clkout driver and more
> >> > will be coming soon).
> >>
> >> Pulled into next/drivers, thanks
> >>
> >> Just for my understanding: why do we need the exynos-mct driver on ARM64
> >> but not the delay-timer portion of it?
> >
> > I think we want all of it but Doug's optimization 3252a646aa2c
> > ("clocksource: exynos_mct: Only use 32-bits where possible") is not
> > ARM64 friendly. One way of dealing with it would be to prepare two
> > versions of exynos4_read_current_timer(). One reading only lower 32-bit
> > value for ARMv7 and second (slow) reading lower and upper for ARMv8.
> >
> >>
> >> Is there an advantage in using MCT over the architected timer on these
> >> chips? If so, should we also have a way to use it as the delay timer?
> >
> > No, there is no real advantage... except that the SoC has some
> > interesting "characteristics"... The timers are tightly coupled. Very
> > tightly. I spent a lot of time and failed to boot my ARMv8 board without
> > some MCT magic.
>
> What kind of magic is that?

Most notably: the arch timer starts when MCT forward running counter
starts. Without kicking MCT, the arch timer seems to be frozen.

> I can understand that needing the MCT for
> some system-level timer functionality might be true (wakeups, etc),
> but for system timesource avoiding the MMIO timer and using the arch
> ones is a substantial performance improvement for gettimeofday() and
> friends.
>
> There was extensive discussion last year over using arch timers on
> 5420/5422, and it fizzled out with vague comments about something not
> working right between A15/A7 on b.L. hardware. I'm presuming whatever
> implementation details of that SoC has since been fixed on later chips
> (including v8). Any chance you can confirm? It'd be very nice to leave
> MCT behind on v8 as a system time source.

Unfortunately, I cannot confirm this, at least on Exynos5433 (ARMv8). I
played with arch and MCT timers on it and failed to get the
arch-timer-only setup working. I did not have access to newer Exynos
designs (Exynos 7) so I do not know how it works there.

Best regards,
Krzysztof