I'm working with TS-4900, an embedded 'Computer on Module' plugged into a baseboard, running Yocto Linux. It uses U-Boot to start, and supposedly basing on the model of the baseboard it chooses the right dtb file to start, and possibly if it fails to locate the right one it falls back to a 'generic' one for my module.
But how/where does it determine the right one? How can I tell which .dtb was used, or set which one should be used?
Below are the boot messages of U-Boot.
U-Boot 2014.10-g3ac6ec3 (Jan 29 2015 - 17:20:15) CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz Reset cause: POR Board: TS-4900 Revision: C Watchdog enabled I2C: ready DRAM: 1 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 SF: Detected N25Q64 with page size 256 Bytes, erase size 4 KiB, total 8 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: using phy at 7 FEC [PRIME] Press Ctrl+C to abort autoboot in 1 second(s) (Re)start USB... USB0: Port not available. USB1: USB EHCI 1.00 scanning bus 1 for devices... 2 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found No storage devices, perhaps not 'usb start'ed..? Booting from the eMMC ... ** File not found /boot/boot.ub ** ** File not found /boot/imx6dl-ts4900-13.dtb ** Booting default device tree 42507 bytes read in 196 ms (210.9 KiB/s) 118642 bytes read in 172 ms (672.9 KiB/s) ICE40 FPGA reloaded successfully 4609784 bytes read in 337 ms (13 MiB/s) ## Booting kernel from Legacy Image at 12000000 ... Image Name: Linux-3.10.17-1.0.0-technologic+ Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4609720 Bytes = 4.4 MiB Load Address: 10008000 Entry Point: 10008000 Verifying Checksum ... OK ## Flattened Device Tree blob at 18000000 Booting using the fdt blob at 0x18000000 EHCI failed to shut down host controller. Loading Kernel Image ... OK Using Device Tree in place at 18000000, end 1800d60a Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 (Kernel startup commences...)