What is the difference between .dts
file and .dtsi
file? Is there a difference when generating device tree blobs? When to use one or the other?
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.
The "phandle" property is a 32-bit value that uniquely identifies a node. You are free to use whatever values or system of values, internal pointers, or whatever to generate these, the only requirement is that every node for which you provide that property has a unique value for it.
Device Tree Compiler, dtc, takes as input a device-tree in a given format and outputs a device-tree in another format for booting kernels on embedded systems. Typically, the input format is "dts", a human readable source format, and creates a "dtb", or binary format as output.
A: U-boot allows the user to load a Device Tree Overlay and apply it on the base Device Tree Blob just before booting Linux, thus making it transparent for Linux (Linux will see just one Device Tree Blob like it expects).
Here, as explained by Thomas Petazzoni and as point out in one of the comments by @mc110, you can find that:
.dts
<- files for board-level definitions.dtsi
<- files for included files, generally containing SoC-level
definitions (the i in dtsi stands for Include)However, once the .dtb
was created with a Device Tree Compiler, if you try to come back again obtaining a text file, only one big file will be created with all the information coming from all the /include/
files.
Note that the i at the end of dtsi stands for include ( observed by @0andriy in one of the comments).
Note also that:
.dts
<- Device Tree Source.dtb
<- Devide Tree Blob.dtsi
<- Device Tree Source IncludeIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With