On Thu, Aug 28, 2014 at 3:40 AM, Michael Ellerman <m...@ellerman.id.au> wrote: > In commit e6a6928c3ea1 "of/fdt: Convert FDT functions to use libfdt", > the kernel stopped supporting old flat device tree formats. The minimum > supported version is now 0x10.
Ugg. Is that something which needs to be supported? Supporting it at this point would mean adding support to libfdt. Rob > There was a checking function added, early_init_dt_verify(), but it's > not called on powerpc. > > The result is, if you boot with an old flat device tree, the kernel will > fail to parse it correctly, think you have no memory etc. and hilarity > ensues. > > We can't really fix it, but we can at least catch the fact that the > device tree is in an unsupported format and panic(). We can't call > BUG(), it's too early. > > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > --- > arch/powerpc/kernel/prom.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c > index 4e139f8a69ef..bb777b255b1c 100644 > --- a/arch/powerpc/kernel/prom.c > +++ b/arch/powerpc/kernel/prom.c > @@ -641,6 +641,10 @@ void __init early_init_devtree(void *params) > > DBG(" -> early_init_devtree(%p)\n", params); > > + /* Too early to BUG_ON(), do it by hand */ > + if (!early_init_dt_verify(params)) > + panic("BUG: Failed verifying flat device tree, bad version?"); > + > /* Setup flat device-tree pointer */ > initial_boot_params = params; > > -- > 1.9.1 > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev