Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 23 Apr 2014 11:45:28 +0100 | From | Mark Rutland <> | Subject | Re: [PATCH 3/3] of: Handle node on PPC32 only |
| |
On Tue, Apr 22, 2014 at 02:35:15PM +0100, Grant Likely wrote: > On Fri, 18 Apr 2014 13:59:24 +0100, Leif Lindholm <leif.lindholm@linaro.org> wrote: > > Hi Geert, > > > > On Fri, Apr 18, 2014 at 10:04:15AM +0200, Geert Uytterhoeven wrote: > > > On Thu, Apr 17, 2014 at 7:42 PM, Leif Lindholm <leif.lindholm@linaro.org> wrote: > > > > In order to deal with an firmware bug on a specific ppc32 platform > > > > (longtrail), early_init_dt_scan_memory() looks for a node called > > > > memory@0 on all platforms. Restrict this quirk to ppc32 kernels only. > > > > > > This breaks backwards compatibilty with old DTSes (at least on ARM/MIPS, > > > where you added the missing property in patches 1 and 2 of the series)? > > > > As Rob said in response to 0/3, the MIPSs would likely not be affected, > > since they embed the DT. > > > > > For the Longtrail, I don't care much anymore, as mine died in 2004. > > > AFAIK, there have never been many users anyway. > > > > There are still a few mentions of it under arch/powerpc/, so I wouldn't > > want to be the one to kill it off... > > > > How about the below v2 3/3 to address the ARM platform? > > The problem with this approach is that selecting one board that needs it > automatically makes it active for all boards. It would need to be > something more like the following: > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index 399e242e1a42..55d65b2b4c74 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -887,12 +887,10 @@ int __init early_init_dt_scan_memory(unsigned long node, const char *uname, > > /* We are scanning "memory" nodes only */ > if (type == NULL) { > - /* > - * The longtrail doesn't have a device_type on the > - * /memory node, so look for the node called /memory@0. > - */ > if (depth != 1 || strcmp(uname, "memory@0") != 0) > return 0; > + if (!of_flat_dt_match(dt_root, memory_quirk_list)) > + return 0; > } else if (strcmp(type, "memory") != 0) > return 0; > > With a list of compatible properties for affected boards.
That looks sane to me.
Does anyone have a LongTrail DT to hand, and if so does the root have a compatible string? From grepping through the kernel I could only find a model string ("IBM,LongTrail").
Is anyone aware of strings other than that and "st-ericsson,ccu8540" to look out for?
Cheers, Mark.
| ![\](/images/icornerr.gif) |