Mettre en œuvre des organisations de trafic de drogue

L'implémentation de superpositions d'arborescence d'appareils (DTO) implique de diviser l'arborescence d'appareils, de construire, le partitionnement et l'exécution. Une fois que vous disposez d'une implémentation fonctionnelle, vous devez également gérer la compatibilité entre les deux DT et déterminer une stratégie pour garantir la sécurité de chaque partition DT.

Diviser le DT

Commencez par diviser le transfert de données en deux parties:

  • Main DT (Transfert de données principal). La partie SoC uniquement et les configurations par défaut, fournis par le fournisseur de SoC.
  • Superposition de transfert de données. Les configurations spécifiques à l'appareil, fournies par ODM/OEM.

Après avoir divisé les DT, vous devez vous assurer de la compatibilité entre les DT et DT superposée, de sorte que la fusion de DT principale et de DT de superposition donne un résultat complet DT de l'appareil. Pour en savoir plus sur le format et les règles d'une DTO, consultez Syntaxe DTO. Pour en savoir plus sur plusieurs DT, voir Transfert de données multiples.

Création de tables de transfert principales et de superposition

Pour créer la DT principale:

  1. Compilez le fichier DT principal .dts dans un fichier .dtb.
  2. Flasher le fichier .dtb dans une partition accessible à l'environnement d'exécution du bootloader (détaillé dans la section [Partition DTs](#partition)).

Pour créer la DT superposée:

  1. Compilez le DT .dts de superposition dans un fichier .dtbo. Alors que ce format de fichier est identique au fichier .dtb formaté en tant que DT aplatie, l'extension de fichier différente la distingue de la DT principale.
  2. Flasher le fichier .dtbo dans une partition accessible à l'environnement d'exécution du bootloader (détaillé dans la section [Partition DTs](#partition)).

Pour plus de détails sur la compilation avec le DTC et la vérification des résultats DTO sur l'hôte, voir Compilez et vérifiez.

DT de partition

Déterminer un emplacement fiable et accessible à l'exécution du bootloader dans Flash pour placer .dtb et .dtbo.

Exemples d'emplacements pour le transfert de données principal:

  • Partie de la partition de démarrage ajoutée au noyau (image.gz)
  • Séparer les blobs de transfert de données (.dtb) dans une partition dédiée (dtb)

Exemples d'emplacements pour le transfert de données de superposition:

Figure 1 : Placez le fichier .dtbo dans une partition unique, telle qu’une partition dtbo.

Figure 2. Placez le fichier .dtbo dans une partition odm (faites-le uniquement si votre bootloader dispose la possibilité de charger des données à partir du système de fichiers d'une partition odm).

Remarque:La taille du fichier la partition DT superposée dépend de l'appareil et de la quantité de modifications nécessaires sur en haut du blob principal du transfert de données. En règle générale, 8 Mo sont plus que suffisant et permettent se développer à l'avenir si nécessaire.

Pour les appareils compatibles avec mises à jour automatiques (A/B), effectuez des tests A/B Partitions DT principale et DT superposée:

Figure 3. Partition A/B DTBO, exemple 1.

Figure 4. Partition A/B DTBO, exemple 2.

Exécuter dans le bootloader

Pour exécuter cette commande:

Figure 5. Implémentation d'exécution typique pour DTO dans le bootloader.

  1. Charger .dtb de l'espace de stockage dans la mémoire
  2. Charger .dtbo de l'espace de stockage dans la mémoire
  3. Superposez .dtb avec .dtbo pour en faire un DT fusionné.
  4. Démarrage du noyau en fonction de l'adresse mémoire du transfert de données fusionné.

Maintenir la compatibilité

Le DTB principal (du fournisseur de SoC) est traité comme une surface d'API pour les DTBO. Après séparer le DT en une partie commune SoC et une partie spécifique à l'appareil, vous devez veiller à ce que les deux parties soient compatibles à l'avenir, y compris:

  • Définition DT dans la DT principale. Par exemple, les nœuds, les propriétés étiquettes. Tout changement de définition dans le transfert de données principal peut déclencher des modifications en superposition DT. Par exemple, pour corriger un nom de nœud dans le transfert de données principal, définissez un « alias » ajouter une étiquette correspond au nom d'origine du nœud (pour éviter le changement de DT superposé).
  • Superposition de l'emplacement du magasin de transfert de données Par exemple, le nom de la partition, .

Assurer la sécurité

Le bootloader doit s'assurer que le DTB ou DTBO est sécurisé, non modifié et non corrompu. Vous pouvez utiliser n'importe quelle solution pour sécuriser DTB ou DTBO, par exemple, Image de démarrage signature dans VBoot 1.0 ou AVB Pied de page HASH (VBoot 2.0).

  • Si DTB ou DTBO se trouve dans une partition unique, vous pouvez ajouter cette partition au de confiance d'AVB. La chaîne de confiance commence par une racine matérielle protégée et est transmis au bootloader, qui vérifie l'intégrité et l'authenticité de la partition DTB ou DTBO.
  • Si DTB ou DTBO se trouve dans une partition existante (telle que odm partition), cette partition doit se trouver dans la chaîne de confiance d'AVB. (partition DTBO pourrait partager une clé publique avec la partition odm).

Pour en savoir plus, consultez la section Validation Démarrage.