Una struttura dei dispositivi (DT) è una struttura di dati di nodi e proprietà denominati che per descrivere l'hardware non rilevabile. Kernel, come il kernel Linux usati in Android, usa i DT per supportare un'ampia gamma di configurazioni hardware da dispositivi Android. I fornitori di hardware forniscono il proprio albero di dispositivi (DTS), che vengono compilati nel file Device Tree blob (DTB) con il compitore ad albero dei dispositivi. Questi file vengono quindi utilizzati bootloader. Il file DTB contiene una struttura dei dispositivi semplificata in formato binario.
Un overlay ad albero dei dispositivi (DTO) consente di sovrapporre un DTB centrale al DT (un blob di albero di dispositivi) per overlay (DTBO)). Un bootloader che utilizza DTO può mantenere il system-on-chip (SoC) DT e sovrapporre dinamicamente un DT specifico per dispositivo, aggiungendo nodi all'albero e apportare modifiche alle proprietà nella struttura esistente.
Aggiornamenti nella release Android 9
In Android 9, il bootloader non deve modificare proprietà definite nei DTO prima di passare il DTB unificato al kernel.
Carica un DT
Il caricamento di un DT nel bootloader comporta la creazione, il partizionamento e l'esecuzione.
Figura 1. Implementazione tipica per il caricamento della struttura ad albero dei dispositivi nel bootloader.
Per creare e eseguire il flashing del DTB:
1a. Utilizza il DTC (
dtc
) per compilare il DTS (.dts
) in un DTB (.dtb
). Il DTB è formattato come DT bidimensionale. 1b. Esegui il flashing del file.dtb
in una posizione accessibile dal runtime del bootloader (dettagli sotto).Per eseguire il partizionamento, determina una posizione attendibile e accessibile dal runtime del bootloader in memoria flash per mettere
.dtb
. Esempi di località:Figura 2. Inserisci .dtb in una partizione di avvio
aggiungendolo a image.gz e passando come
"kernel" a mkbootimg.Figura 3. Inserisci .dtb in una partizione univoca
(ad esempio, partizione dtb).Per caricare il DTB e avviare il kernel:
- Carica
.dtb
dallo spazio di archiviazione in memoria. - Avvia il kernel utilizzando l'indirizzo della memoria del DT caricato.
- Carica
Passaggi successivi
Questa pagina descrive in dettaglio un flusso di lavoro tipico del bootloader per caricare un DT e fornisce un elenco di termini DT comuni. Le altre pagine di questa sezione descrivono come implementare il supporto del bootloader, le istruzioni compilare, verificare e ottimizzare il DTO e come Utilizzare più DT. Puoi anche dettagli sulla sintassi DTO e obbligatorio Formattazione delle partizioni DTO e DTBO.