Superpositions d'arborescence de périphériques

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

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.

Figure 1. Implémentation typique pour le chargement de l'arborescence des périphériques dans le chargeur de démarrage.
  1. 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).
  2. 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, partition dtb ).
  3. Courir:
    • Chargez .dtb du stockage dans la mémoire.
    • Démarrez le noyau à partir de l'adresse mémoire de la DT chargée.

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