Une arborescence de périphériques (DT) est une structure de données de nœuds nommés et de propriétés qui décrivent le matériel non détectable. Les systèmes d'exploitation, tels que le noyau Linux utilisé dans Android, utilisent des DT pour prendre en charge une large gamme de configurations matérielles utilisées par les appareils Android. Les fournisseurs de matériel fournissent leurs propres fichiers source DT, que Linux compile ensuite dans le fichier Device Tree Blob (DTB) utilisé par le chargeur de démarrage.
Une superposition d'arborescence d'appareils (DTO) permet de superposer un blob d'arborescence d'appareils central (DTB) sur l'arborescence d'appareils. Un chargeur de démarrage utilisant DTO peut maintenir la DT du système sur puce (SoC) et superposer dynamiquement une DT spécifique à l'appareil, en ajoutant des nœuds à l'arborescence et en modifiant les propriétés de l'arborescence existante.
Cette page détaille un flux de travail de chargeur de démarrage typique pour charger une DT et fournit une liste des termes courants de la DT. D'autres pages de cette section décrivent comment implémenter la prise en charge du chargeur de démarrage pour DTO , comment compiler , vérifier et optimiser votre implémentation DTO et comment utiliser plusieurs DT . Vous pouvez également obtenir des détails sur la syntaxe DTO et le formatage de partition DTO/DTBO requis.
Mises à jour dans la version Android 9
Dans Android 9, le chargeur de démarrage ne doit pas modifier les propriétés définies dans les superpositions d'arborescence de périphériques avant de transmettre le blob d'arborescence de périphériques unifié au noyau.
Chargement d'une arborescence d'appareils
Le chargement d'une arborescence de périphériques dans le chargeur de démarrage implique la construction, le partitionnement et l'exécution.

- Construire:
- Utilisez le compilateur d'arborescence de périphériques (
dtc
) pour compiler la source de l'arborescence de périphériques (.dts
) dans un blob d'arborescence de périphériques (.dtb
), formaté comme une arborescence de périphériques aplatie. -
.dtb
le fichier .dtb dans un emplacement accessible au moment de l'exécution du chargeur de démarrage (détaillé ci-dessous).
- Utilisez le compilateur d'arborescence de périphériques (
- Pour partitionner, déterminez un emplacement de confiance et accessible au moment de l'exécution du chargeur de démarrage dans la mémoire flash pour y placer
.dtb
. Exemples d'emplacements :Partition de démarrage Figure 2. Placez .dtb
dans la partition de démarrage en ajoutant àimage.gz
et en passant comme "kernel
" àmkbootimg
.Partition unique Figure 3. Placez .dtb
dans une partition unique (par exemple, partitiondtb
). - Courir:
- Chargez
.dtb
du stockage dans la mémoire. - Démarrez le noyau à partir de l'adresse mémoire de la DT chargée.
- Chargez
Terminologie
Cette section utilise les termes suivants de l'arborescence des périphériques :
DT | Arborescence des appareils |
---|---|
DTB | Objet blob de l'arborescence des appareils |
DTBO | Objet blob de l'arborescence des périphériques pour la superposition |
CPD | Compilateur d'arborescence de périphériques |
DTO | Superposition de l'arborescence des appareils |
DTS | Source de l'arborescence des appareils |
FDT | Flattened Device Tree, un format binaire contenu dans un fichier blob .dtb |