
2016-03-07 12:31 GMT+09:00 Simon Glass sjg@chromium.org:
Hi Masahiro,
On 6 March 2016 at 20:07, Masahiro Yamada yamada.masahiro@socionext.com wrote:
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:
Crashes?
Yes.
I applied your patch, but fdtgrep still would not work.
Please try this.
$ git clone git://git.denx.de/u-boot-uniphier.git $ cd u-boot-uniphier $ git checkout -b for-simon origin/for-simon $ make uniphier_ld20_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # $ make CROSS_COMPILE=aarch64-linux-gnu- scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config.h UPD include/config.h GEN include/autoconf.mk GEN include/autoconf.mk.dep GEN spl/include/autoconf.mk CHK include/config/uboot.release UPD include/config/uboot.release CHK include/generated/version_autogenerated.h UPD include/generated/version_autogenerated.h CHK include/generated/timestamp_autogenerated.h UPD include/generated/timestamp_autogenerated.h CC lib/asm-offsets.s CHK include/generated/generic-asm-offsets.h UPD include/generated/generic-asm-offsets.h CC arch/arm/lib/asm-offsets.s CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h HOSTCC tools/gen_eth_addr HOSTCC tools/img2srec HOSTCC tools/mkenvimage.o HOSTCC tools/os_support.o WRAP tools/lib/crc32.c HOSTCC tools/lib/crc32.o HOSTLD tools/mkenvimage HOSTCC tools/aisimage.o HOSTCC tools/atmelimage.o WRAP tools/common/bootm.c HOSTCC tools/common/bootm.o HOSTCC tools/default_image.o WRAP tools/lib/fdtdec_common.c HOSTCC tools/lib/fdtdec_common.o WRAP tools/lib/fdtdec.c HOSTCC tools/lib/fdtdec.o HOSTCC tools/fit_common.o HOSTCC tools/fit_image.o HOSTCC tools/gpimage.o HOSTCC tools/gpimage-common.o WRAP tools/common/image-fit.c HOSTCC tools/common/image-fit.o HOSTCC tools/image-host.o WRAP tools/common/image.c HOSTCC tools/common/image.o HOSTCC tools/imagetool.o HOSTCC tools/imximage.o HOSTCC tools/kwbimage.o WRAP tools/lib/md5.c HOSTCC tools/lib/md5.o HOSTCC tools/lpc32xximage.o HOSTCC tools/mxsimage.o HOSTCC tools/omapimage.o HOSTCC tools/pblimage.o HOSTCC tools/pbl_crc32.o WRAP tools/lib/rc4.c HOSTCC tools/lib/rc4.o HOSTCC tools/rkcommon.o HOSTCC tools/rkimage.o HOSTCC tools/rksd.o HOSTCC tools/rkspi.o HOSTCC tools/socfpgaimage.o WRAP tools/lib/sha1.c HOSTCC tools/lib/sha1.o WRAP tools/lib/sha256.c HOSTCC tools/lib/sha256.o WRAP tools/common/hash.c HOSTCC tools/common/hash.o HOSTCC tools/ublimage.o HOSTCC tools/zynqimage.o WRAP tools/lib/libfdt/fdt.c HOSTCC tools/lib/libfdt/fdt.o WRAP tools/lib/libfdt/fdt_ro.c HOSTCC tools/lib/libfdt/fdt_ro.o WRAP tools/lib/libfdt/fdt_rw.c HOSTCC tools/lib/libfdt/fdt_rw.o WRAP tools/lib/libfdt/fdt_strerror.c HOSTCC tools/lib/libfdt/fdt_strerror.o WRAP tools/lib/libfdt/fdt_wip.c HOSTCC tools/lib/libfdt/fdt_wip.o WRAP tools/lib/libfdt/fdt_region.c HOSTCC tools/lib/libfdt/fdt_region.o HOSTCC tools/dumpimage.o HOSTLD tools/dumpimage HOSTCC tools/mkimage.o HOSTLD tools/mkimage HOSTCC tools/proftool HOSTCC tools/relocate-rela HOSTCC tools/fdtgrep.o HOSTLD tools/fdtgrep LD arch/arm/cpu/built-in.o CC arch/arm/cpu/armv8/cpu.o CC arch/arm/cpu/armv8/generic_timer.o CC arch/arm/cpu/armv8/cache_v8.o AS arch/arm/cpu/armv8/exceptions.o AS arch/arm/cpu/armv8/cache.o AS arch/arm/cpu/armv8/tlb.o AS arch/arm/cpu/armv8/transition.o CC arch/arm/cpu/armv8/fwcall.o LD arch/arm/cpu/armv8/built-in.o AS arch/arm/cpu/armv8/start.o AS arch/arm/lib/crt0_64.o AS arch/arm/lib/relocate_64.o CC arch/arm/lib/bootm-fdt.o CC arch/arm/lib/bootm.o CC arch/arm/lib/sections.o CC arch/arm/lib/stack.o AS arch/arm/lib/ccn504.o AS arch/arm/lib/gic_64.o CC arch/arm/lib/interrupts_64.o CC arch/arm/lib/reset.o CC arch/arm/lib/cache.o LD arch/arm/lib/built-in.o AR arch/arm/lib/lib.a CC arch/arm/mach-uniphier/board_early_init_f.o CC arch/arm/mach-uniphier/cpu_info.o CC arch/arm/mach-uniphier/print_misc_info.o CC arch/arm/mach-uniphier/dram_init.o CC arch/arm/mach-uniphier/board_common.o CC arch/arm/mach-uniphier/board_early_init_r.o CC arch/arm/mach-uniphier/board_late_init.o CC arch/arm/mach-uniphier/reset.o LD arch/arm/mach-uniphier/arm64/built-in.o CC arch/arm/mach-uniphier/boot-mode/boot-mode.o CC arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.o CC arch/arm/mach-uniphier/boot-mode/cmd_pinmon.o LD arch/arm/mach-uniphier/boot-mode/built-in.o LD arch/arm/mach-uniphier/clk/built-in.o LD arch/arm/mach-uniphier/dram/built-in.o LD arch/arm/mach-uniphier/pinctrl/built-in.o CC arch/arm/mach-uniphier/boards.o CC arch/arm/mach-uniphier/soc_info.o CC arch/arm/mach-uniphier/micro-support-card.o LD arch/arm/mach-uniphier/built-in.o CC cmd/boot.o CC cmd/bootm.o CC cmd/help.o CC cmd/version.o CC cmd/source.o CC cmd/bdinfo.o CC cmd/console.o CC cmd/echo.o CC cmd/elf.o CC cmd/exit.o CC cmd/fat.o CC cmd/fdt.o CC cmd/flash.o CC cmd/gpio.o CC cmd/i2c.o CC cmd/itest.o CC cmd/load.o CC cmd/mem.o CC cmd/mmc.o CC cmd/nand.o CC cmd/net.o CC cmd/pcmcia.o CC cmd/setexpr.o CC cmd/time.o CC cmd/test.o CC cmd/usb.o CC cmd/nvedit.o CC cmd/disk.o LD cmd/built-in.o CC common/init/board_init.o LD common/init/built-in.o CC common/main.o CC common/exports.o CC common/hash.o CC common/cli_hush.o CC common/autoboot.o CC common/board_f.o CC common/board_r.o CC common/board_info.o CC common/bootm.o CC common/bootm_os.o CC common/env_attr.o CC common/env_callback.o CC common/env_flags.o CC common/env_mmc.o CC common/fdt_support.o CC common/usb.o CC common/usb_hub.o CC common/usb_storage.o CC common/flash.o CC common/splash.o CC common/env_common.o CC common/console.o CC common/dlmalloc.o CC common/malloc_simple.o CC common/image.o CC common/image-fdt.o CC common/memsize.o CC common/stdio.o CC common/cli_simple.o CC common/cli.o CC common/cli_readline.o CC common/command.o CC common/s_record.o CC common/xyzModem.o LD common/built-in.o CC disk/part.o CC disk/part_dos.o LD disk/built-in.o LD drivers/adc/built-in.o CC drivers/block/disk-uclass.o LD drivers/block/built-in.o CC drivers/clk/clk-uclass.o CC drivers/clk/clk_fixed_rate.o CC drivers/clk/uniphier/clk-uniphier-core.o CC drivers/clk/uniphier/clk-uniphier-mio.o LD drivers/clk/uniphier/built-in.o LD drivers/clk/built-in.o CC drivers/core/device.o CC drivers/core/lists.o CC drivers/core/root.o CC drivers/core/uclass.o CC drivers/core/util.o CC drivers/core/device-remove.o CC drivers/core/simple-bus.o CC drivers/core/dump.o LD drivers/core/built-in.o CC drivers/crypto/fsl/sec.o LD drivers/crypto/fsl/built-in.o LD drivers/crypto/rsa_mod_exp/built-in.o LD drivers/crypto/built-in.o LD drivers/dfu/built-in.o LD drivers/hwmon/built-in.o CC drivers/input/input.o CC drivers/input/key_matrix.o LD drivers/input/built-in.o LD drivers/memory/built-in.o CC drivers/misc/i2c_eeprom.o LD drivers/misc/built-in.o CC drivers/pcmcia/tqm8xx_pcmcia.o LD drivers/pcmcia/built-in.o CC drivers/pinctrl/pinctrl-uclass.o CC drivers/pinctrl/pinctrl-generic.o LD drivers/pinctrl/nxp/built-in.o LD drivers/pinctrl/uniphier/built-in.o LD drivers/pinctrl/built-in.o LD drivers/pwm/built-in.o CC drivers/rtc/date.o LD drivers/rtc/built-in.o LD drivers/soc/built-in.o LD drivers/sound/built-in.o LD drivers/thermal/built-in.o LD drivers/timer/built-in.o LD drivers/tpm/built-in.o LD drivers/twserial/built-in.o LD drivers/video/bridge/built-in.o LD drivers/video/built-in.o LD drivers/watchdog/built-in.o LD drivers/built-in.o LD drivers/dma/built-in.o CC drivers/gpio/gpio-uclass.o CC drivers/gpio/gpio-uniphier.o LD drivers/gpio/built-in.o CC drivers/i2c/i2c-uclass.o CC drivers/i2c/i2c-uniphier.o CC drivers/i2c/i2c-uniphier-f.o LD drivers/i2c/built-in.o CC drivers/mmc/mmc-uclass.o CC drivers/mmc/mmc.o CC drivers/mmc/uniphier-sd.o CC drivers/mmc/mmc_write.o LD drivers/mmc/built-in.o CC drivers/mtd/mtdcore.o CC drivers/mtd/mtd_uboot.o CC drivers/mtd/cfi_flash.o LD drivers/mtd/built-in.o CC drivers/mtd/nand/nand.o CC drivers/mtd/nand/nand_bbt.o CC drivers/mtd/nand/nand_ids.o CC drivers/mtd/nand/nand_util.o CC drivers/mtd/nand/nand_ecc.o CC drivers/mtd/nand/nand_base.o CC drivers/mtd/nand/nand_timings.o CC drivers/mtd/nand/denali.o LD drivers/mtd/nand/built-in.o LD drivers/mtd/onenand/built-in.o LD drivers/mtd/spi/built-in.o CC drivers/net/smc911x.o LD drivers/net/built-in.o LD drivers/net/phy/built-in.o LD drivers/pci/built-in.o LD drivers/power/built-in.o LD drivers/power/battery/built-in.o LD drivers/power/fuel_gauge/built-in.o LD drivers/power/mfd/built-in.o LD drivers/power/pmic/built-in.o LD drivers/power/regulator/built-in.o CC drivers/serial/serial-uclass.o CC drivers/serial/serial_uniphier.o LD drivers/serial/built-in.o CC drivers/spi/spi.o LD drivers/spi/built-in.o LD drivers/usb/dwc3/built-in.o LD drivers/usb/emul/built-in.o LD drivers/usb/eth/built-in.o LD drivers/usb/gadget/built-in.o LD drivers/usb/gadget/udc/built-in.o CC drivers/usb/host/xhci.o CC drivers/usb/host/xhci-mem.o CC drivers/usb/host/xhci-ring.o CC drivers/usb/host/xhci-uniphier.o LD drivers/usb/host/built-in.o LD drivers/usb/musb-new/built-in.o LD drivers/usb/musb/built-in.o LD drivers/usb/phy/built-in.o LD drivers/usb/ulpi/built-in.o CC fs/fs.o CC fs/fat/fat_write.o CC fs/fat/file.o LD fs/fat/built-in.o LD fs/built-in.o CC lib/libfdt/fdt.o CC lib/libfdt/fdt_ro.o CC lib/libfdt/fdt_rw.o CC lib/libfdt/fdt_strerror.o CC lib/libfdt/fdt_sw.o CC lib/libfdt/fdt_wip.o CC lib/libfdt/fdt_empty_tree.o CC lib/libfdt/fdt_addresses.o CC lib/libfdt/fdt_region.o LD lib/libfdt/built-in.o CC lib/zlib/zlib.o LD lib/zlib/built-in.o CC lib/crc7.o CC lib/crc8.o CC lib/crc16.o CC lib/fdtdec_common.o CC lib/fdtdec.o CC lib/gunzip.o CC lib/initcall.o CC lib/lmb.o CC lib/ldiv.o CC lib/net_utils.o CC lib/qsort.o CC lib/rc4.o CC lib/strmhz.o CC lib/list_sort.o CC lib/hashtable.o CC lib/errno.o CC lib/display_options.o CC lib/crc32.o CC lib/ctype.o CC lib/div64.o CC lib/hang.o CC lib/linux_compat.o CC lib/linux_string.o CC lib/membuff.o CC lib/slre.o CC lib/string.o CC lib/time.o CC lib/rand.o CC lib/vsprintf.o CC lib/panic.o CC lib/strto.o LD lib/built-in.o CC net/checksum.o CC net/arp.o CC net/bootp.o CC net/eth_legacy.o CC net/eth_common.o CC net/net.o CC net/nfs.o CC net/ping.o CC net/tftp.o LD net/built-in.o LD test/built-in.o CC test/dm/cmd_dm.o LD test/dm/built-in.o CC examples/standalone/stubs.o LD examples/standalone/libstubs.o CC examples/standalone/hello_world.o LD examples/standalone/hello_world CC examples/standalone/smc911x_eeprom.o LD examples/standalone/smc911x_eeprom OBJCOPY examples/standalone/hello_world.srec OBJCOPY examples/standalone/smc911x_eeprom.srec OBJCOPY examples/standalone/hello_world.bin OBJCOPY examples/standalone/smc911x_eeprom.bin LDS u-boot.lds LD u-boot OBJCOPY u-boot.srec OBJCOPY u-boot-nodtb.bin start=$(aarch64-linux-gnu-nm u-boot | grep __rel_dyn_start | cut -f 1 -d ' '); end=$(aarch64-linux-gnu-nm u-boot | grep __rel_dyn_end | cut -f 1 -d ' '); tools/relocate-rela u-boot-nodtb.bin 0x84000000 $start $end DTC arch/arm/dts/uniphier-ph1-ld20-ref.dtb DTC arch/arm/dts/uniphier-ph1-ld4-ref.dtb DTC arch/arm/dts/uniphier-ph1-ld6b-ref.dtb DTC arch/arm/dts/uniphier-ph1-pro4-ace.dtb DTC arch/arm/dts/uniphier-ph1-pro4-ref.dtb DTC arch/arm/dts/uniphier-ph1-pro4-sanji.dtb DTC arch/arm/dts/uniphier-ph1-pro5-4kbox.dtb DTC arch/arm/dts/uniphier-ph1-sld3-ref.dtb DTC arch/arm/dts/uniphier-ph1-sld8-ref.dtb DTC arch/arm/dts/uniphier-proxstream2-gentil.dtb DTC arch/arm/dts/uniphier-proxstream2-vodka.dtb SHIPPED dts/dt.dtb CAT u-boot-dtb.bin COPY u-boot.bin SYM u-boot.sym CFG u-boot.cfg LD spl/arch/arm/mach-uniphier/arm64/built-in.o LD spl/arch/arm/mach-uniphier/bcu/built-in.o CC spl/arch/arm/mach-uniphier/boot-mode/boot-mode.o CC spl/arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.o CC spl/arch/arm/mach-uniphier/boot-mode/cmd_pinmon.o LD spl/arch/arm/mach-uniphier/boot-mode/built-in.o CC spl/arch/arm/mach-uniphier/dram/umc-ld20.o LD spl/arch/arm/mach-uniphier/dram/built-in.o LD spl/arch/arm/mach-uniphier/early-clk/built-in.o LD spl/arch/arm/mach-uniphier/early-pinctrl/built-in.o CC spl/arch/arm/mach-uniphier/init/init.o CC spl/arch/arm/mach-uniphier/init/init-ld20.o LD spl/arch/arm/mach-uniphier/init/built-in.o CC spl/arch/arm/mach-uniphier/memconf/memconf.o CC spl/arch/arm/mach-uniphier/memconf/memconf-pxs2.o LD spl/arch/arm/mach-uniphier/memconf/built-in.o LD spl/arch/arm/mach-uniphier/pll/built-in.o CC spl/arch/arm/mach-uniphier/sbc/sbc-savepin.o LD spl/arch/arm/mach-uniphier/sbc/built-in.o CC spl/arch/arm/mach-uniphier/boards.o CC spl/arch/arm/mach-uniphier/soc_info.o CC spl/arch/arm/mach-uniphier/micro-support-card.o LD spl/arch/arm/mach-uniphier/built-in.o CC spl/arch/arm/cpu/armv8/cpu.o CC spl/arch/arm/cpu/armv8/generic_timer.o CC spl/arch/arm/cpu/armv8/cache_v8.o AS spl/arch/arm/cpu/armv8/exceptions.o AS spl/arch/arm/cpu/armv8/cache.o AS spl/arch/arm/cpu/armv8/tlb.o AS spl/arch/arm/cpu/armv8/transition.o CC spl/arch/arm/cpu/armv8/fwcall.o LD spl/arch/arm/cpu/armv8/built-in.o AS spl/arch/arm/cpu/armv8/start.o LD spl/arch/arm/cpu/built-in.o AS spl/arch/arm/lib/crt0_64.o CC spl/arch/arm/lib/spl.o CC spl/arch/arm/lib/sections.o CC spl/arch/arm/lib/stack.o AS spl/arch/arm/lib/ccn504.o AS spl/arch/arm/lib/gic_64.o CC spl/arch/arm/lib/interrupts_64.o CC spl/arch/arm/lib/reset.o CC spl/arch/arm/lib/cache.o LD spl/arch/arm/lib/built-in.o AR spl/arch/arm/lib/lib.a CC spl/common/spl/spl.o CC spl/common/spl/spl_nor.o CC spl/common/spl/spl_nand.o CC spl/common/spl/spl_mmc.o LD spl/common/spl/built-in.o CC spl/common/init/board_init.o LD spl/common/init/built-in.o CC spl/common/env_common.o CC spl/common/console.o CC spl/common/dlmalloc.o CC spl/common/malloc_simple.o CC spl/common/image.o CC spl/common/image-fdt.o CC spl/common/memsize.o CC spl/common/stdio.o CC spl/common/cli_simple.o CC spl/common/cli.o CC spl/common/cli_readline.o CC spl/common/command.o CC spl/common/s_record.o CC spl/common/xyzModem.o LD spl/common/built-in.o CC spl/cmd/nvedit.o CC spl/cmd/disk.o LD spl/cmd/built-in.o CC spl/drivers/clk/clk-uclass.o CC spl/drivers/clk/clk_fixed_rate.o CC spl/drivers/clk/uniphier/clk-uniphier-core.o CC spl/drivers/clk/uniphier/clk-uniphier-mio.o LD spl/drivers/clk/uniphier/built-in.o LD spl/drivers/clk/built-in.o CC spl/drivers/core/device.o CC spl/drivers/core/lists.o CC spl/drivers/core/root.o CC spl/drivers/core/uclass.o CC spl/drivers/core/util.o CC spl/drivers/core/simple-bus.o CC spl/drivers/core/dump.o LD spl/drivers/core/built-in.o CC spl/drivers/mmc/mmc-uclass.o CC spl/drivers/mmc/mmc.o CC spl/drivers/mmc/uniphier-sd.o LD spl/drivers/mmc/built-in.o CC spl/drivers/mtd/nand/denali_spl.o LD spl/drivers/mtd/nand/built-in.o CC spl/drivers/pinctrl/pinctrl-uclass.o CC spl/drivers/pinctrl/pinctrl-generic.o LD spl/drivers/pinctrl/nxp/built-in.o LD spl/drivers/pinctrl/uniphier/built-in.o LD spl/drivers/pinctrl/built-in.o CC spl/drivers/serial/serial-uclass.o CC spl/drivers/serial/serial_uniphier.o LD spl/drivers/serial/built-in.o LD spl/drivers/built-in.o LD spl/dts/built-in.o LD spl/fs/built-in.o CC spl/lib/libfdt/fdt.o CC spl/lib/libfdt/fdt_ro.o CC spl/lib/libfdt/fdt_rw.o CC spl/lib/libfdt/fdt_strerror.o CC spl/lib/libfdt/fdt_sw.o CC spl/lib/libfdt/fdt_wip.o CC spl/lib/libfdt/fdt_empty_tree.o CC spl/lib/libfdt/fdt_addresses.o CC spl/lib/libfdt/fdt_region.o LD spl/lib/libfdt/built-in.o CC spl/lib/fdtdec_common.o CC spl/lib/fdtdec.o CC spl/lib/hashtable.o CC spl/lib/errno.o CC spl/lib/display_options.o CC spl/lib/crc32.o CC spl/lib/ctype.o CC spl/lib/div64.o CC spl/lib/hang.o CC spl/lib/linux_compat.o CC spl/lib/linux_string.o CC spl/lib/membuff.o CC spl/lib/slre.o CC spl/lib/string.o CC spl/lib/time.o CC spl/lib/rand.o CC spl/lib/vsprintf.o CC spl/lib/panic.o CC spl/lib/strto.o LD spl/lib/built-in.o LDS spl/u-boot-spl.lds LD spl/u-boot-spl OBJCOPY spl/u-boot-spl-nodtb.bin FDTGREP spl/u-boot-spl.dtb Error at 'fdt_find_regions': FDT_ERR_BADLAYOUT /aliases node must come before all other nodes Error: FDT_ERR_BADMAGIC make[1]: *** [spl/u-boot-spl.dtb] Error 1 make: *** [spl/u-boot-spl] Error 2