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 Plus system-on-module

The ConnectCore 6 Plus is a system-on-module (SOM) solution that integrates:

  • NXP {cpu-family} system-on-chip featuring many interfaces such as UART, CAN, SPI, and I2C

  • DDR3 memory

  • eMMC memory

  • PMIC chip

  • Optional Wi-Fi + Bluetooth chip

  • Optional Kinetis chip

The ConnectCore 6 Plus 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 Plus system-on-module is offered in different variants, multiple .dtsi files have been defined to describe the hardware inside:

File Description

imx6qp-ccimx6.dtsi

Common hardware for ConnectCore 6 Plus system-on-module variants with QuadPlus/DualPlus CPU

imx6qp-ccimx6-wb.dtsi

ConnectCore 6 Plus system-on-module variant with QuadPlus/DualPlus CPU, Wi-Fi, and Bluetooth

ConnectCore 6 Plus SBC

The ConnectCore 6 Plus SBC is a carrier board assembling the ConnectCore 6 Plus 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 Plus system-on-module .dtsi files.

Include files

The SBC can assemble different variants of the ConnectCore 6 Plus system-on-module, so the common hardware of the SBC is described in a .dtsi file:

File Description

imx6qp-ccimx6qpsbc.dtsi

Common hardware for ConnectCore 6 Plus SBC

Final platform files

The final platforms are described in board-specific .dts files:

File Digi product smart part number CPU family Wi-Fi Bluetooth

imx6qp-ccimx6qpsbc-id160.dts

CC-WMX-KK8D-TN

QuadPlus

Graphical representation

The following graphic illustrates the composition of a .dts file.

ConnectCore 6 Plus device tree files

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 board_id variable to determine which device tree blob to use when booting the system. See Carrier board version and ID.

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.