Device tree file types

The device tree is a set of text files in the Linux kernel source tree that describe the hardware of a certain platform. They 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

imx6qdl-ccimx6.dtsi

Common hardware for ConnectCore 6 system-on-chip (SOC) variants with either Quad/Dual CPU or Solo/DualLite CPU

imx6q-ccimx6-w.dtsi

ConnectCore 6 system-on-module variant with Quad/Dual CPU and wireless (no Bluetooth)

imx6q-ccimx6-wb.dtsi

ConnectCore 6 system-on-module variant with Quad/Dual CPU, wireless, and Bluetooth

imx6dl-ccimx6-w.dtsi

ConnectCore 6 system-on-module variant with Solo/DualLite CPU and wireless (no Bluetooth)

imx6dl-ccimx6-wb.dtsi

ConnectCore 6 system-on-module variant with Solo/DualLite CPU, wireless, and Bluetooth

Depending on your ConnectCore 6 variant, your final platform .dts file will need to include one of these files.

ConnectCore 6 SBC

The ConnectCore 6 SBC is a carrier board assembling the ConnectCore 6 system-on-module. The SBC assembles additional hardware like HDMI, Ethernet PHY, audio chip, PCIe minicard, microSD card holder, user LEDs, and so on.

As a final platform, the SBC 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

imx6qdl-ccimx6sbc.dtsi

Common hardware for ConnectCore 6 SBC assembling a Quad/Dual or Solo/DualLite ConnectCore 6 system-on-module

imx6q-ccimx6sbc.dtsi

Common hardware for ConnectCore 6 SBC assembling a Quad/Dual ConnectCore 6 system-on-module

imx6dl-ccimx6sbc.dtsi

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 Wireless Bluetooth

imx6q-ccimx6sbc-id129.dts

CC-SB-WMX-J97C

Quad/Dual

imx6q-ccimx6sbc-id130.dts

CC-SB-WMX-L87C

Quad/Dual

imx6dl-ccimx6sbc-id131.dts

CC-SB-WMX-L76C

DualLite/Solo

Graphical representation

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

ConnectCore 6 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.