O formato Device Tree Source (DTS) é uma representação textual de uma árvore de dispositivos. O Device Tree Compiler (DTC) processa esse formato em uma árvore de dispositivos binários, que é a forma esperada pelo kernel do Linux.
Usando referências
O projeto DTC (Compilador de Árvore de Dispositivos + patches de sobreposição) descreve o formato DTS em dtc-format.txt e manual.txt . O formato e as regras do DTO são descritos em dt-object-internal.txt . Esses documentos descrevem como atualizar o DT principal usando o nó fragment@x
e a sintaxe __overlay__
no overlay DT. Por exemplo:
/ {
fragment@0 {
target = <&some_node>;
__overlay__ {
some_prop = "okay";
...
};
};
};
No entanto, o Google recomenda enfaticamente que você não use fragment@x
e a sintaxe __overlay__
e, em vez disso, use a sintaxe de referência. Por exemplo:
&some_node {
some_prop = "okay";
...
};
A sintaxe de referência é compilada pelo dtc
no mesmo objeto que o acima usando a sintaxe __overlay__
. Essa sintaxe não força você a numerar os fragmentos, permitindo que você leia e grave DTS de sobreposição facilmente. Se o seu dtc
não suporta este açúcar sintático, use o dtc no AOSP .
Usando rótulos
Para permitir referências indefinidas a nós não presentes no momento da compilação, o arquivo DT .dts
de sobreposição deve ter uma tag /plugin/
em seu cabeçalho. Por exemplo:
/dts-v1/;
/plugin/;
A partir daqui, você pode direcionar os nós a serem sobrepostos usando uma referência, que é um caminho de nó absoluto prefixado com um e comercial (&). Por exemplo, para node@0
no DT principal:
Definir rótulos no DT principal ... | ... em seguida, use os rótulos. |
---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] |
Substituindo
Se a propriedade de destino de referência existir no DT principal, ela será substituída após o DTO; caso contrário, é anexado. Por exemplo:
main.dts | sobreposição.dts | Resultado mesclado |
---|---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] | /dts-v1/; |
Anexando
Se a propriedade de destino de referência não existir no DT principal, ela será anexada após o DTO. Por exemplo:
main.dts | sobreposição.dts | Resultado mesclado |
---|---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] | /dts-v1/; |
Nós filhos
Exemplos de sintaxe de nó filho:
main.dts | sobreposição.dts | Resultado mesclado |
---|---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] | /dts-v1/; |