On Fri, Nov 28, 2014 at 02:46:51PM +0000, Mark Rutland wrote:
> On Fri, Nov 28, 2014 at 02:44:12PM +0000, Will Deacon wrote:
> > On Fri, Nov 28, 2014 at 02:35:32PM +0000, Mark Rutland wrote:
> > > On Fri, Nov 28, 2014 at 02:29:13PM +0000, Catalin Marinas wrote:
> > > > On Thu, Nov 27, 2014 at 01:43:09PM +0000, Mark Rutland wrote:
> > > > > On Thu, Nov 27, 2014 at 12:12:15PM +0000, Catalin Marinas wrote:
> > > > > > On Thu, Nov 27, 2014 at 11:50:43AM +0000, Mark Rutland wrote:
> > > > > > > On Tue, Nov 25, 2014 at 12:16:56PM +0000, Chunyan Zhang wrote:
> > > > > > > > +
> > > > > > > > +       timer {
> > > > > > > > +               compatible = "arm,armv8-timer";
> > > > > > > > +               interrupts = <1 13 0xff01>,
> > > > > > > > +                            <1 14 0xff01>,
> > > > > > > > +                            <1 11 0xff01>,
> > > > > > > > +                            <1 10 0xff01>;
> > > > > > > > +               clock-frequency = <26000000>;
> > > > > > > 
> > > > > > > Please remove the clock-frequency property. Your FW should 
> > > > > > > initialise
> > > > > > > CNTFRQ_EL0 on all CPUs (certainly PSCI 0.2 requires that you do 
> > > > > > > this).
> > > > > > 
> > > > > > Since this comes up regularly, I think we need a dev_warn() in the 
> > > > > > arch
> > > > > > timer driver when CONFIG_ARM64.
> > > > > 
> > > > > I'll ack such a patch ;)
> > > > 
> > > > How rude would this be?
> > > > 
> > > > diff --git a/drivers/clocksource/arm_arch_timer.c 
> > > > b/drivers/clocksource/arm_arch_timer.c
> > > > index 2133f9d59d06..aaaf3433ccb9 100644
> > > > --- a/drivers/clocksource/arm_arch_timer.c
> > > > +++ b/drivers/clocksource/arm_arch_timer.c
> > > > @@ -371,7 +371,8 @@ arch_timer_detect_rate(void __iomem *cntbase, 
> > > > struct device_node *np)
> > > >                 return;
> > > >  
> > > >         /* Try to determine the frequency from the device tree or 
> > > > CNTFRQ */
> > > > -       if (of_property_read_u32(np, "clock-frequency", 
> > > > &arch_timer_rate)) {
> > > > +       if (IS_ENABLED(CONFIG_ARM64) ||
> > > > +           of_property_read_u32(np, "clock-frequency", 
> > > > &arch_timer_rate)) {
> > > >                 if (cntbase)
> > > >                         arch_timer_rate = readl_relaxed(cntbase + 
> > > > CNTFRQ);
> > > >                 else
> > > >
> > > 
> > > Probably too rude, given it doesn't WARN() the user.
> > 
> > We override broken hardware ID registers all the time in device-tree without
> > dumping stack. Why is this any different?
> 
> Exposure to guests via KVM, and the fact that it's possible to write to
> the register from EL3. This isn't so much broken HW (which cannot be
> fixed) as broken FW (which can be fixed).

I think we'll see plenty of systems where vendors are reluctant to offer
over-the-air firmware upgrades for issues that can be solved simply by
adding a property to the device-tree.

> Printing the warning gives people the chance to realise and fix the
> issue during bringup.

Print a warning, but don't dump the stack. A simple pr_warn is fine.

Will
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to