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 :
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.
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:
- Identifiez le SoC et chargez le .dtb correspondant du stockage vers la mémoire.
- Identifiez la carte et chargez le
.dtbo
correspondant du stockage dans la mémoire. - Superposez le
.dtb
avec le.dtbo
pour obtenir un DT fusionné. - Démarrez le noyau en fonction de l'adresse mémoire du DT fusionné.