Flat Devicetree

With BSP Revision 0109 the Linux kernel version changed from 3.16.7 to 4.1 The devicetree source & blob files for kernel 3.16.7 are not compatible to kernel 4.1 and vice versa.

BSP Rev. ≤ 0105

Naming convention

Device Tree Blobs
Several device tree blobs (.dtb files) are built by default, the resulting files are named as follows:
imx6<q|dl>-mba6x-<hdmi|lvds|multi|pd>.dtb
When building an sd card image, the HDMI enabled device tree blob is used by default.

Module (CPU) type
imx6q TQMa6Q | TQMa6D
imx6dl TQMa6DL | TQMa6S
Module revision
mba6x TQMa6x Rev.02xx Variant B | TQMa6x Rev.01xx
Display interface
hdmi HDMI only
lvds LVDS only
pd parallel display only
multi HDMI + LVDS + parallel display


Dependency matrix
File Module Starterkit
Mainboard
i.MX6Q i.MX6D i.MX6DL i.MX6S Revision 010x Revision 020x Ethernet Patch
imx6qdl-tqma6x.dtsi
imx6q-tqma6x.dtsi
imx6dl-tqma6x.dtsi
imx6qdl-mba6x.dtsi included
imx6q-mba6x.dts included
imx6dl-mba6x.dts included


Dependency graph

<graphviz dot> digraph “FDT_dependencies” {

rankdir=BT
node [shape=box style=filled]

{ /* level graph */ node[shape=none, width=0, height=0, label=“” style=invis]; edge[dir=none style=invis]; 1 → 2 → 3 → 4 → 5 → 6; }

subgraph FSL {
  node [fillcolor="#E66A08" fontcolor="#FFFFFF"]
  "imx6q.dtsi";
  "imx6dl.dtsi";
  "imx6qdl.dtsi";
}
subgraph TQM {
  node [fillcolor="#1D8EC6" fontcolor="#FFFFFF"]
  "imx6qdl-tqma6x.dtsi";
  "imx6q-tqma6q.dtsi";
  "imx6dl-tqma6s.dtsi";
}
subgraph MB {
  node [fillcolor="#8F8F8F" fontcolor="#FFFFFF"]
  "imx6qdl-mba6x.dtsi";
  "imx6q-mba6x.dts" [shape=oval color="#FF0000"];
  "imx6dl-mba6x.dts" [shape=oval color="#FF0000"];
}
{rank=same; 6; "imx6q.dtsi"; "imx6dl.dtsi"}
{rank=same; 5; "imx6qdl-tqma6x.dtsi"}
{rank=same; 4; "imx6q-tqma6q.dtsi"; "imx6dl-tqma6s.dtsi"}
{rank=same; 3; "imx6qdl-mba6x.dtsi"}
{rank=same; 2; "imx6q-mba6x.dts"; "imx6dl-mba6x.dts"}
{rank=same; 1; "imx6q-mba6x-hdmi.dts"; "imx6dl-mba6x-hdmi.dts" }

{"imx6q.dtsi" "imx6dl.dtsi"} -> "imx6qdl.dtsi";
"imx6q-tqma6q.dtsi" -> {"imx6qdl-tqma6x.dtsi" "imx6q.dtsi"};
"imx6dl-tqma6s.dtsi" -> {"imx6qdl-tqma6x.dtsi" "imx6dl.dtsi"};
"imx6q-mba6x.dts" -> {"imx6qdl-mba6x.dtsi" "imx6q-tqma6q.dtsi"};
"imx6dl-mba6x.dts" -> {"imx6qdl-mba6x.dtsi" "imx6dl-tqma6s.dtsi"};

"imx6q-mba6x-hdmi.dts" -> "imx6q-mba6x.dts";
"imx6dl-mba6x-hdmi.dts" -> "imx6dl-mba6x.dts";

}

</graphviz> <HTML>

CPU specific files

Module specific files

Baseboard specific files

</HTML>

BSP Rev. ≥ 0109

Naming convention

Device Tree Blobs
Several device tree blobs (.dtb files) are built by default, the resulting files are named as follows:
imx6<q|dl>-mba6<a|b>-<hdmi|lvds|multi|pd>.dtb
When building an sd card image, the HDMI enabled device tree blob is used by default.

Flat Image Tree (FIT)
Additionaly a FIT image (*.itb) is generated, which contains all device trees in a single file.

To select an individual DTB from this FIT you have to set the U-Boot variables fdt_type and fitfdt_part accordingly.

Module (CPU) type
imx6q TQMa6Q | TQMa6D
imx6dl TQMa6DL | TQMa6S
Module revision & variant
mba6a TQMa6x Rev.02xx Variant A & C
mba6b TQMa6x Rev.02xx Variant B | TQMa6x Rev.01xx
Display interface
hdmi HDMI only
lvds LVDS only
pd parallel display only
multi HDMI + LVDS + parallel display


Dependency matrix
File Module Starterkit
Mainboard
i.MX6Q i.MX6D i.MX6DL i.MX6S Revision 010x Revision 020x Ethernet Patch
imx6qdl-tqma6.dtsi
imx6qdl-tqma6a.dtsi
imx6qdl-tqma6b.dtsi
imx6q-tqma6.dtsi
imx6q-tqma6a.dtsi
imx6q-tqma6b.dtsi
imx6dl-tqma6.dtsi
imx6dl-tqma6a.dtsi
imx6dl-tqma6b.dtsi
imx6qdl-mba6.dtsi included
imx6qdl-mba6a.dtsi included
imx6qdl-mba6b.dtsi included
imx6q-mba6.dtsi included
imx6q-mba6a.dts included
imx6q-mba6b.dts included
imx6dl-mba6.dtsi included
imx6dl-mba6a.dts included
imx6dl-mba6b.dts included


Dependency graph

<graphviz dot> digraph “FDT_dependencies” {

rankdir=BT
node [shape=box style=filled]

{ /* level graph */ node[shape=none, width=0, height=0, label=“” style=invis]; edge[dir=none style=invis]; 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9; }

subgraph FSL {
  node [fillcolor="#E66A08" fontcolor="#FFFFFF"]
  "imx6q.dtsi";
  "imx6dl.dtsi";
  "imx6qdl.dtsi";
}
subgraph TQM {
  node [fillcolor="#1D8EC6" fontcolor="#FFFFFF"]
  "imx6qdl-tqma6.dtsi";
  "imx6q-tqma6<a|b>.dtsi";
  "imx6dl-tqma6<a|b>.dtsi";
  "imx6qdl-tqma6<a|b>.dtsi";
}
subgraph MB {
  node [fillcolor="#8F8F8F" fontcolor="#FFFFFF"]
  ordering=out;
  "imx6qdl-mba6.dtsi";
  subgraph MBq {
  rankdir=LR;
  "imx6q-mba6.dtsi";
  "imx6q-mba6<a|b>.dts" [shape=oval color="#FF0000"];
  }
  "imx6qdl-mba6<a|b>.dtsi";
  subgraph MBdl {    
  "imx6dl-mba6<a|b>.dts" [shape=oval color="#FF0000"];
  "imx6dl-mba6.dtsi";
  }
}
{rank=same; 8; "imx6q.dtsi"; "imx6dl.dtsi"}
{rank=same; 7; "imx6qdl-tqma6.dtsi"}
{rank=same; 6; "imx6q-tqma6<a|b>.dtsi"; "imx6dl-tqma6<a|b>.dtsi"}
{rank=same; 5; "imx6qdl-tqma6<a|b>.dtsi"}
{rank=same; 4; "imx6qdl-mba6.dtsi"}
{rank=same; 3; "imx6q-mba6.dtsi"; "imx6q-mba6<a|b>.dts"; "imx6dl-mba6<a|b>.dts"; "imx6dl-mba6.dtsi"}
{rank=same; 2; "imx6qdl-mba6<a|b>.dtsi" }

{"imx6q.dtsi" "imx6dl.dtsi"} -> "imx6qdl.dtsi";
"imx6q-tqma6<a|b>.dtsi" -> {"imx6qdl-tqma6.dtsi" "imx6qdl-tqma6<a|b>.dtsi" "imx6q.dtsi"};
"imx6dl-tqma6<a|b>.dtsi" -> {"imx6qdl-tqma6.dtsi" "imx6qdl-tqma6<a|b>.dtsi" "imx6dl.dtsi"};
"imx6q-mba6<a|b>.dts" -> {"imx6q-tqma6<a|b>.dtsi" "imx6qdl-mba6<a|b>.dtsi" "imx6qdl-mba6.dtsi" "imx6q-mba6.dtsi"};
"imx6dl-mba6<a|b>.dts" -> {"imx6dl-tqma6<a|b>.dtsi" "imx6qdl-mba6<a|b>.dtsi" "imx6qdl-mba6.dtsi" "imx6dl-mba6.dtsi"};

}

</graphviz>
<HTML>

CPU specific files

Module specific files

Baseboard specific files

</HTML>

WORK IN PROGRESS