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 binária de dispositivos, que é o formato esperado pelo kernel do Linux.
Usando referências
O projeto DTC (Device Tree compiler + overlay patches) 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 . Estes documentos descrevem como atualizar o DT principal usando o nó fragment@x
e a sintaxe __overlay__
no DT de sobreposição. Por exemplo:
/ {
fragment@0 {
target = <&some_node>;
__overlay__ {
some_prop = "okay";
...
};
};
};
No entanto, o Google recomenda fortemente que você não use fragment@x
e 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 por dtc
no mesmo objeto acima usando a sintaxe __overlay__
. Essa sintaxe não força você a numerar os fragmentos, permitindo que você leia e grave facilmente DTS de sobreposição. Se o seu dtc
não suportar esse açúcar sintático, use o dtc em 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 etiquetas no TAG principal ... | ... então use os rótulos. |
---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] |
Substituindo
Se a propriedade alvo de referência existir no DT principal, ela será substituída após o DTO; caso contrário, será anexado. Por exemplo:
principal.dts | sobreposição.dts | Resultado mesclado |
---|---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] | /dts-v1/; |
Anexando
Se a propriedade alvo de referência não existir no DT principal, ela será anexada após o DTO. Por exemplo:
principal.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:
principal.dts | sobreposição.dts | Resultado mesclado |
---|---|---|
[my_main_dt.dts] | [my_overlay_dt.dts] | /dts-v1/; |