Hi Rob,
I saw your following patch called clocksource_of_init() directly in time_init() for arm64.
My question is that what should we do if there are some Soc special work need to be done before arch timer can be used?
Thanks in advance.
commit 0583fe478a7d93be2c814b7e50d6e81c287edfe8
Author: Rob Herring <[email protected]>
Date: Wed Apr 10 18:27:51 2013 -0500
ARM: convert arm/arm64 arch timer to use CLKSRC_OF init
Best Regards,
Neil Zhang
[adding Will and Catalin...]
On 10/16/2013 07:39 AM, Neil Zhang wrote:
> Hi Rob,
> I saw your following patch called clocksource_of_init() directly in time_init() for arm64.
> My question is that what should we do if there are some Soc special work need to be done before arch timer can be used?
> Thanks in advance.
If the timer itself is different, then you should have a different DT
compatible string which you can use to trigger additional initialization.
Integration level initialization like enabling clocks would need
something different as no machine descriptors exist for arm64.
Another option would be do the setup in secure world or the bootloader.
Can you be more specific what initialization is needed.
Rob
> commit 0583fe478a7d93be2c814b7e50d6e81c287edfe8
> Author: Rob Herring <[email protected]>
> Date: Wed Apr 10 18:27:51 2013 -0500
>
> ARM: convert arm/arm64 arch timer to use CLKSRC_OF init
>
>
> Best Regards,
> Neil Zhang
>
>
On Wed, Oct 16, 2013 at 01:59:25PM +0100, Rob Herring wrote:
> On 10/16/2013 07:39 AM, Neil Zhang wrote:
> > I saw your following patch called clocksource_of_init() directly in
> > time_init() for arm64.
> > My question is that what should we do if there are some Soc special
> > work need to be done before arch timer can be used?
> > Thanks in advance.
>
> If the timer itself is different, then you should have a different DT
> compatible string which you can use to trigger additional initialization.
>
> Integration level initialization like enabling clocks would need
> something different as no machine descriptors exist for arm64.
>
> Another option would be do the setup in secure world or the bootloader.
The generic timer should indeed be initialised in the firmware
(bootloader may not be suitable if initialisation needs to happen on
each CPU). Linux doesn't need to do other things than reading the
frequency, programming the interrupts, counters (but definitely not
SoC-specific initialisation).
> Can you be more specific what initialization is needed.
I'm interested in this as well.
--
Catalin
> -----Original Message-----
> From: Catalin Marinas [mailto:[email protected]]
> Sent: 2013??10??16?? 21:21
> To: Rob Herring
> Cc: Neil Zhang; [email protected]; Yu Tang; Zhou Zhu; Will Deacon
> Subject: Re: [Question] Ask for arm arch timer
>
> On Wed, Oct 16, 2013 at 01:59:25PM +0100, Rob Herring wrote:
> > On 10/16/2013 07:39 AM, Neil Zhang wrote:
> > > I saw your following patch called clocksource_of_init() directly in
> > > time_init() for arm64.
> > > My question is that what should we do if there are some Soc special
> > > work need to be done before arch timer can be used?
> > > Thanks in advance.
> >
> > If the timer itself is different, then you should have a different DT
> > compatible string which you can use to trigger additional initialization.
> >
> > Integration level initialization like enabling clocks would need
> > something different as no machine descriptors exist for arm64.
> >
> > Another option would be do the setup in secure world or the bootloader.
>
> The generic timer should indeed be initialised in the firmware (bootloader may
> not be suitable if initialisation needs to happen on each CPU). Linux doesn't need
> to do other things than reading the frequency, programming the interrupts,
> counters (but definitely not SoC-specific initialisation).
>
> > Can you be more specific what initialization is needed.
>
> I'm interested in this as well.
Thanks Catalin and Rob!
Yes, we need to select the clk source and enable it.
Seems we need to put more and more works into firmware on arm64.
>
> --
> Catalin
Best Regards,
Neil Zhang
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?