
Hi Simon,
2016-03-07 11:45 GMT+09:00 Simon Glass sjg@chromium.org:
This tool requires that the aliases node be the first node in the tree. But when it is not, it does not handle things gracefully. In fact it crashes.
Fix this, and add a more helpful error message.
Signed-off-by: Simon Glass sjg@chromium.org Reported-by: Masahiro Yamada yamada.masahiro@socionext.com
I think this patch would diplay a clearer hint, but would not solve the root cause.
fdtgrep still crashes with the following DTS:
/ { model = "UniPhier PH1-LD20 Reference Board"; compatible = "socionext,ph1-ld20-ref", "socionext,ph1-ld20";
memory { device_type = "memory"; reg = <0 0x80000000 0 0xc0000000>; };
chosen { stdout-path = "serial0:115200n8"; };
aliases { serial0 = &serial0; serial1 = &serial1; serial2 = &serial2; serial3 = &serial3; i2c0 = &i2c0; i2c1 = &i2c1; i2c2 = &i2c2; i2c3 = &i2c3; i2c4 = &i2c4; i2c5 = &i2c5; i2c6 = &i2c6; }; };
Error at 'fdt_find_regions': FDT_ERR_BADLAYOUT /aliases node must come before all other nodes Error: FDT_ERR_BADMAGIC
But, fdtgrep can accept the following:
/ { model = "UniPhier PH1-LD20 Reference Board"; compatible = "socionext,ph1-ld20-ref", "socionext,ph1-ld20";
aliases { serial0 = &serial0; serial1 = &serial1; serial2 = &serial2; serial3 = &serial3; i2c0 = &i2c0; i2c1 = &i2c1; i2c2 = &i2c2; i2c3 = &i2c3; i2c4 = &i2c4; i2c5 = &i2c5; i2c6 = &i2c6; };
memory { device_type = "memory"; reg = <0 0x80000000 0 0xc0000000>; };
chosen { stdout-path = "serial0:115200n8"; }; };
Should I really move the "aliases" node? I do not think this restriction is reasonable.