Superpositions d'arborescence de périphériques

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 du matériel non détectable. Les systèmes d'exploitation, tels que le noyau Linux utilisé dans Android, utilisent les DT pour prendre en charge un large éventail 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.

Un recouvrement d'arbre de dispositif (DTO) permet une goutte d'arbre de dispositif central (DTB) à superposer sur l'arbre du dispositif. Un chargeur de démarrage utilisant DTO peut maintenir le système sur puce (SoC) DT et superposer dynamiquement un DT spécifique au périphérique, 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 typique du chargeur de démarrage pour le chargement d'un DT et fournit une liste de termes DT courants. D' autres pages de cette section décrivent comment mettre en œuvre bootloader soutien DTO , comment compiler , vérifier et optimiser votre implémentation de DTO , et comment utiliser plusieurs delirium tremens . Vous pouvez également obtenir des détails sur la syntaxe DTO et nécessaire partition DTO / DTBO mise en forme .

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 de l'arborescence des périphériques avant de transmettre le blob de l'arborescence des périphériques unifiée au noyau.

Chargement d'une arborescence de périphériques

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. Mise en œuvre typique pour arbre de dispositif de chargement dans bootloader.
  1. Construire:
    • Utiliser le compilateur de l' arbre de l' appareil ( dtc ) pour compiler la source de l' arbre de dispositif ( .dts ) dans une goutte d'arbre de dispositif ( .dtb ), mis en forme comme un arbre de dispositif aplati.
    • Flashez le .dtb fichier dans un emplacement d'exécution accessible bootloader (voir les détails ci - dessous).
  2. Pour partition, déterminer une durée d' exécution accessible et emplacement approuvé bootloader en mémoire flash pour mettre .dtb . Exemples d'emplacements :
    Partition de démarrage
    Figure 2. Mettez .dtb dans la partition de démarrage en annexant à image.gz et en passant comme « kernel » à mkbootimg .
    Partition unique
    Figure 3. Mettre .dtb dans une partition unique , (par exemple dtb partition).
  3. Courir:
    • Charger .dtb de stockage en mémoire.
    • Démarrez le noyau en fonction de l'adresse mémoire du DT chargé.

Terminologie

Cette section utilise les termes suivants de l'arborescence des périphériques :

DT Arborescence des appareils
DTB Blob de l'arborescence des périphériques
DTBO Blob de l'arborescence des périphériques pour la superposition
DTC Compilateur d'arborescence de périphériques
DTO Superposition de l'arborescence des périphériques
DTS Source de l'arborescence des périphériques
FDT Dispositif aplaties Arbre, un format binaire contenu dans un .dtb fichier blob