[PATCH-V4 3/3] ARM: OMAP: Make OMAP clocksource source selection using kernel param

Hiremath, Vaibhav hvaibhav at ti.com
Thu Apr 26 02:23:46 EDT 2012


On Thu, Apr 26, 2012 at 11:26:09, Russ Dill wrote:
> On Wed, Apr 25, 2012 at 10:42 PM, Hiremath, Vaibhav <hvaibhav at ti.com> wrote:
> > On Thu, Apr 26, 2012 at 10:06:40, Russ Dill wrote:
> >> On Tue, Apr 24, 2012 at 2:45 AM, Vaibhav Hiremath <hvaibhav at ti.com> wrote:
> >> > Current OMAP code supports couple of clocksource options based
> >> > on compilation flag (CONFIG_OMAP_32K_TIMER). The 32KHz sync-timer
> >> > and a gptimer which can run on 32KHz or system clock (e.g 38.4 MHz).
> >> > So there can be 3 options -
> >> >
> >> > 1. 32KHz sync-timer
> >> > 2. Sys_clock based (e.g 13/19.2/26/38.4 MHz) gptimer
> >> > 3. 32KHz based gptimer.
> >> >
> >> > The optional gptimer based clocksource was added so that it can
> >> > give the high precision than sync-timer, so expected usage was 2
> >> > and not 3.
> >> > Unfortunately option 2, clocksource doesn't meet the requirement of
> >> > free-running clock as per clocksource need. It stops in low power states
> >> > when sys_clock is cut. That makes gptimer based clocksource option
> >> > useless for OMAP2/3/4 devices with sys_clock as a clock input.
> >> > Option 3 will still work but it is no better than 32K sync-timer
> >> > based clocksource.
> >> >
> >> > So ideally we can kill the gptimer based clocksource option but there
> >> > are some OMAP based derivative SoCs like AM33XX which doesn't have
> >> > 32K sync-timer hardware IP and need to fallback on 32KHz based gptimer
> >> > clocksource.
> >> > Considering above, make sync-timer and gptimer clocksource runtime
> >> > selectable so that both OMAP and AMXXXX continue to use the same code.
> >> >
> >> > Also, in order to precisely configure/setup sched_clock for given
> >> > clocksource, decision has to be made early enough in boot sequence.
> >> >
> >> > So, the solution is,
> >> >
> >> > Use kernel parameter ("clocksource=") to override
> >> > default 32k_sync-timer, in addition to this, we also use hwmod database
> >> > lookup mechanism, through which at run-time we can identify availability
> >> > of 32k-sync timer on the device, else fall back to gptimer.
> >> >
> >> > Signed-off-by: Vaibhav Hiremath <hvaibhav at ti.com>
> >> > Signed-off-by: Felipe Balbi <balbi at ti.com>
> >> > Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> >> > Cc: Kevin Hilman <khilman at ti.com>
> >> > Cc: Benoit Cousson <b-cousson at ti.com>
> >> > Cc: Tony Lindgren <tony at atomide.com>
> >> > Cc: Paul Walmsley <paul at pwsan.com>
> >> > Cc: Tarun Kanti DebBarma <tarun.kanti at ti.com>
> >> > Cc: Ming Lei <tom.leiming at gmail.com>
> >>
> >> This fails to boot on my Mistral am37x-evm with omap2plus_defconfig
> >>
> >
> > Thanks Russ, for validating it.
> >
> > But I do not see any relation between your boot process stuck and this patch.
> > What is the observation without these patches?
> 
> With no patches applied it boots, with 1/3 applied it boots, with 2/3
> applied it boots, with 3/3 applied it gets hung. I also tested on my
> beagleboard b4, that booted fine.
> 

You mean to say, on Beagleboard it boots up fine. And same fails on EVM?

Thanks,
Vaibhav




More information about the linux-arm-kernel mailing list