The device tree is a data structure that describes the hardware components available on a system. The Linux kernel queries the device tree to know what drivers to load during boot.
Device tree file types
Device tree files are located at arch/arm/boot/dts/
and can have two extensions:
-
.dtsi
files are device tree source include files. They describe hardware that is common to several platforms which include these files on their.dts
files. -
.dts
files are device tree source files. They describe one specific platform.
ConnectCore 6 system-on-module
The ConnectCore 6 is a system-on-module (SOM) solution that integrates:
-
NXP i.MX6 system-on-chip featuring many interfaces such as UART, CAN, SPI, and I2C
-
DDR3 memory
-
eMMC memory
-
PMIC chip
-
Optional Wi-Fi chip
-
Optional Bluetooth chip
-
Optional Kinetis chip
The ConnectCore 6 system-on-module needs to be soldered to a carrier board.
For this reason, there is not a single .dts
file for it.
Instead, its hardware features are collected into .dtsi
files that can be included by a final platform .dts
.
Since the ConnectCore 6 system-on-module is offered in different variants, multiple .dtsi
files have been defined to describe the hardware inside:
File | Description |
---|---|
Common hardware for ConnectCore 6 system-on-chip (SOC) variants with either Quad/Dual CPU or Solo/DualLite CPU |
|
ConnectCore 6 system-on-module variant with Quad/Dual CPU and Wi-Fi (no Bluetooth) |
|
ConnectCore 6 system-on-module variant with Quad/Dual CPU, Wi-Fi, and Bluetooth |
|
ConnectCore 6 system-on-module variant with Solo/DualLite CPU and Wi-Fi (no Bluetooth) |
|
ConnectCore 6 system-on-module variant with Solo/DualLite CPU, Wi-Fi, and Bluetooth |
ConnectCore 6 SBC
The ConnectCore 6 SBC is a carrier board assembling the ConnectCore 6 system-on-module. The carrier board assembles additional hardware like a video port, Ethernet PHY, audio chip, PCIe minicard, microSD card holder, user LEDs, and so on.
As a final platform, the carrier board has a .dts
file that includes one of the ConnectCore 6 system-on-module .dtsi
files.
Include files
The SBC can assemble different variants of the ConnectCore 6 system-on-module, so the common hardware of the SBC is also described in several .dtsi
files:
File | Description |
---|---|
Common hardware for ConnectCore 6 SBC assembling a Quad/Dual or Solo/DualLite ConnectCore 6 system-on-module |
|
Common hardware for ConnectCore 6 SBC assembling a Quad/Dual ConnectCore 6 system-on-module |
|
Common hardware for ConnectCore 6 SBC assembling a Solo/DualLite ConnectCore 6 system-on-module |
The last two files include the common file imx6qdl-ccimx6sbc.dtsi
.
Final platform files
The final platforms are described in board-specific .dts
files:
File | Digi product smart part number | CPU family | Wi-Fi | Bluetooth |
---|---|---|---|---|
CC-SB-WMX-J97C |
Quad/Dual |
✓ |
✓ |
|
CC-SB-WMX-L87C |
Quad/Dual |
✓ |
✓ |
|
CC-SB-WMX-L76C |
DualLite/Solo |
✓ |
✓ |
Graphical representation
The following graphic illustrates the composition of a .dts
file.
Device tree selection during boot process
Digi Embedded Yocto builds the different device tree files (.dts
) for different boards and SOM variants into binary device tree blobs (.dtb
).
The device tree blobs are placed inside the linux partition along with the kernel binary.
The bootloader uses the To learn how to create a device tree for your custom carrier board and using a custom board ID, see Add a new custom machine. |