Un albero dei dispositivi (DT) è una struttura di dati di nodi denominati e proprietà che descrivono l'hardware non rilevabile. I sistemi operativi, come il kernel Linux utilizzato in Android, utilizzano DT per supportare un'ampia gamma di configurazioni hardware utilizzate dai dispositivi Android. I fornitori di hardware forniscono i propri file sorgente DT, che Linux compila poi nel file Device Tree Blob (DTB) utilizzato dal bootloader.
Un DTO ( Device Tree Overlay ) consente di sovrapporre un DTB (Central Device Tree blob) all'albero dei dispositivi. Un bootloader che utilizza DTO può mantenere il System-on-chip (SoC) DT e sovrapporre dinamicamente un DT specifico del dispositivo, aggiungendo nodi all'albero e apportando modifiche alle proprietà dell'albero esistente.
Questa pagina descrive un tipico flusso di lavoro del bootloader per il caricamento di un DT e fornisce un elenco di termini DT comuni. Altre pagine in questa sezione descrivono come implementare il supporto del bootloader per DTO , come compilare , verificare e ottimizzare l'implementazione DTO e come utilizzare più DT . È inoltre possibile ottenere dettagli sulla sintassi DTO e sulla formattazione della partizione DTO / DTBO richiesta.
Aggiornamenti nella versione Android 9
In Android 9, il bootloader non deve modificare le proprietà definite negli overlay della struttura ad albero dei dispositivi prima di passare il BLOB della struttura ad albero dei dispositivi unificato al kernel.
Caricamento di un albero dei dispositivi
Il caricamento di un albero dei dispositivi nel bootloader implica la creazione, il partizionamento e l'esecuzione.

- Costruire:
- Utilizzare il compilatore dell'albero dei dispositivi (
dtc
) per compilare l'origine dell'albero dei dispositivi (.dts
) in un.dtb
dell'albero dei dispositivi (.dtb
), formattato come albero dei dispositivi appiattito. -
.dtb
file.dtb
in una posizione accessibile dal runtime del bootloader (descritta di seguito).
- Utilizzare il compilatore dell'albero dei dispositivi (
- Per partizionare, determinare una posizione affidabile e accessibile dal runtime del bootloader nella memoria flash in cui inserire
.dtb
. Località di esempio:Partizione di avvio Figura 2. Mettere .dtb
nella partizione di avvio aggiungendo aimage.gz
e passando come "kernel
" amkbootimg
.Partizione unica Figura 3. Mettere .dtb
in una partizione unica (ad es. Partizionedtb
). - Correre:
- Carica
.dtb
dalla memoria nella memoria. - Avvia il kernel dato l'indirizzo di memoria del DT caricato.
- Carica
Terminologia
Questa sezione utilizza i seguenti termini della struttura ad albero dei dispositivi:
DT | Struttura dei dispositivi |
---|---|
DTB | Blob dell'albero dei dispositivi |
DTBO | Blob dell'albero dei dispositivi per l'overlay |
DTC | Compilatore dell'albero dei dispositivi |
DTO | Sovrapposizione struttura ad albero dei dispositivi |
DTS | Sorgente dell'albero dei dispositivi |
FDT | Struttura dei dispositivi appiattita, un formato binario contenuto in un file .dtb |