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/arm64/boot/dts/digi/ 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 8X system-on-module

The ConnectCore 8X is a system-on-module (SOM) solution that integrates:

  • NXP i.MX8QXP system-on-chip featuring many interfaces such as UART, CAN, SPI, and I2C

  • LPDDR4 memory

  • eMMC memory

  • PMIC chip

  • Crypto-authentication chip

  • Optional Wi-Fi + Bluetooth chip

  • Micro Controller Assist (MCA) chip

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

File Description

ccimx8x.dtsi

Common hardware for ConnectCore 8X system-on-module (SOM) variants

ccimx8x-wb.dtsi

ConnectCore 8X system-on-module variant with Wi-Fi and Bluetooth

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

ConnectCore 8X SBC Express and ConnectCore 8X SBC Pro

The ConnectCore 8X SBC Express and ConnectCore 8X SBC Pro are carrier boards assembling the ConnectCore 8X system-on-module. Both boards assemble additional hardware such as Ethernet PHY, microSD card holder, user LEDs and so on.

As final platforms, both boards have .dts files that include one of the ConnectCore 8X system-on-module .dtsi files.

Include files

Both the SBC Express and the SBC Pro boards can assemble different variants of the ConnectCore 8X system-on-module, so the common hardware for the carrier boards is described in a board-specific .dtsi file:

File Description

ccimx8x-sbc-express.dtsi

Common hardware for ConnectCore 8X SBC Express

ccimx8x-sbc-pro.dtsi

Common hardware for ConnectCore 8X SBC Pro

Final platform files

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

File Digi product smart part number Wi-Fi Bluetooth

ccimx8qxp-sbc-express-id129.dts

CC-WMX8-EXPRESS

ccimx8qxp-sbc-pro-id135.dts

CC-WMX8-KIT

The device tree files without ID number are not linked to any Digi product. They correspond to:

  • ccimx8qxp-sbc-express-wb.dts: generic device tree file for an SBC Express with a Wi-Fi + Bluetooth i.MX8QXP SOM

  • ccimx8qxp-sbc-express.dts: generic device tree file for an SBC Express with a non-wireless i.MX8QXP SOM

  • ccimx8qxp-sbc-pro-wb.dts: generic device tree file for an SBC Pro with a Wi-Fi + Bluetooth i.MX8QXP SOM

  • ccimx8qxp-sbc-pro.dts: generic device tree file for an SBC Pro with a non-wireless i.MX8QXP SOM

  • ccimx8dx-sbc-pro-wb.dts: generic device tree file for an SBC Pro with a Wi-Fi + Bluetooth i.MX8DX SOM

  • ccimx8dx-sbc-pro.dts: generic device tree file for an SBC Pro with a non-wireless i.MX8DX SOM

Graphical representation

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

ConnectCore 8X SBC Pro 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.