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/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 |
---|---|
Common hardware for ConnectCore 8X system-on-module (SOM) variants |
|
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 Pro
The ConnectCore 8X SBC Pro is a carrier board assembling the ConnectCore 8X 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 8X system-on-module .dtsi files.
Include files
The SBC Pro board can assemble different variants of the ConnectCore 8X system-on-module, so the common hardware for the carrier board is described in a board-specific .dtsi file:
File | Description |
---|---|
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 |
---|---|---|---|
CC-WMX8-KIT |
✓ |
✓ |
The device tree files without ID number are not linked to any Digi product. They correspond to:
|
Graphical representation
The following graphic illustrates the composition of a .dts file.
Device tree selection during boot process
Digi Embedded for Android 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 boot 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 [{XREF_hw_r_carrier-board-v-id}]. |