Utilisation de plusieurs DT

De nombreux fournisseurs de SoC et ODM prennent en charge l'utilisation de plusieurs DT sur un appareil, permettant à une image d'alimenter plusieurs SKU/configurations. Dans de tels cas, le chargeur de démarrage identifie le matériel et charge la DT correspondante au moment de l'exécution :

Figure 1. Plusieurs arborescences de périphériques se superposent dans le chargeur de démarrage.

Remarque : L'utilisation de plusieurs DT n'est pas obligatoire.

Mise en place

Pour ajouter la prise en charge de plusieurs DT au modèle DTO, configurez une liste de DT principales et une autre liste de DT superposées.

Figure 2. Implémentation du Runtime DTO pour plusieurs DT.

Le chargeur de démarrage doit être capable de :

  • Lisez l'ID SoC et sélectionnez l'arborescence principale des appareils correspondante, et
  • Lisez l'ID de la carte et sélectionnez l'ensemble des arborescences de périphériques de superposition en conséquence.

Une seule DT principale doit être sélectionnée pour être utilisée au moment de l'exécution. Plusieurs DT superposées peuvent être sélectionnées mais elles doivent être compatibles avec la DT principale choisie. L'utilisation de plusieurs superpositions peut éviter de stocker une superposition par carte dans la partition DTBO et permettre au chargeur de démarrage de déterminer le sous-ensemble de superpositions requises en fonction de l'ID de la carte (ou éventuellement en sondant les périphériques). Par exemple, la carte A peut avoir besoin des appareils ajoutés par les superpositions 1, 3 et 5, tandis que la carte B peut avoir besoin des appareils ajoutés par les superpositions 1, 4 et 5.

Partitionnement

Pour partitionner, déterminez un emplacement fiable et accessible au moment de l'exécution du chargeur de démarrage dans la mémoire flash pour stocker les DTB et les DTBO (le chargeur de démarrage doit être capable de localiser ces fichiers dans le processus de correspondance). Gardez à l’esprit que les DTB et les DTBO ne peuvent pas exister dans la même partition. Si vos DTB/DTBO se trouvent dans la partition dtb / dtbo , utilisez la structure de table et le format d'en-tête détaillés dans Format de partition DTB/DTBO .

Exécuté dans le chargeur de démarrage

Courir:

  1. Identifiez le SoC et chargez le .dtb correspondant du stockage vers la mémoire.
  2. Identifiez la carte et chargez le .dtbo correspondant du stockage dans la mémoire.
  3. Superposez le .dtb avec le .dtbo pour obtenir un DT fusionné.
  4. Démarrez le noyau en fonction de l'adresse mémoire du DT fusionné.