À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Utiliser plusieurs DT
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
De nombreux fournisseurs de SoC et ODM acceptent l'utilisation de plusieurs arborescences d'appareils (DT) sur un appareil, ce qui permet à une image d'alimenter plusieurs SKU ou configurations. Dans ce cas, le bootloader identifie le matériel et charge le DT correspondant au moment de l'exécution:

Figure 1 : Plusieurs superpositions de l'arborescence des appareils (DTO) dans le bootloader.
Remarque:L'utilisation de plusieurs DT n'est pas obligatoire.
Configuration
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 de DTO d'exécution pour plusieurs DT.
Le bootloader doit pouvoir:
- Lisez l'ID du SoC et sélectionnez la DT principale correspondante.
- Lisez l'ID de la carte et sélectionnez l'ensemble de DT de superposition en conséquence.
Vous ne devez sélectionner qu'un seul DT principal à utiliser au moment de l'exécution. Vous pouvez sélectionner plusieurs DT de superposition, mais ils doivent être compatibles avec le DT principal choisi. L'utilisation de plusieurs superpositions peut aider à éviter de stocker une superposition par carte dans la partition DTBO et à permettre au bootloader de déterminer le sous-ensemble des superpositions requises en fonction de l'ID de la carte (ou éventuellement en sondant les périphériques). Par exemple, le tableau A peut avoir besoin des appareils ajoutés par les superpositions 1, 3 et 5, tandis que le tableau B peut avoir besoin des appareils ajoutés par les superpositions 1, 4 et 5.
Partition
Pour partitionner, déterminez un emplacement de confiance accessible au moment de l'exécution du bootloader dans la mémoire flash pour stocker les DTB et les DTBO (le bootloader doit pouvoir localiser ces fichiers dans le processus de mise en correspondance). N'oubliez pas que les DTB et les DTBO ne peuvent pas coexister 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écrits dans la section Format de partition DTB et DTBO.
Exécuter dans le bootloader
Pour exécuter:
- Identifiez le SoC et chargez le fichier .dtb correspondant à partir de l'espace de stockage dans la mémoire.
- Identifiez la carte et chargez le
.dtbo
correspondant à partir du stockage dans la mémoire.
- Superposez
.dtb
à .dtbo
pour obtenir une DT fusionnée.
- Démarrer le noyau en fonction de l'adresse mémoire de la table de données fusionnée.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/26 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/26 (UTC)."],[],[],null,["# Use multiple DTs\n\nMany SoC vendors and ODMs support the use of multiple device trees (DTs) on a device,\nenabling one image to power multiple SKUs or configurations. In such cases, the\nbootloader identifies the hardware and loads the corresponding DT at runtime:\n\n**Figure 1.** Multiple device tree overlays (DTOs) in bootloader.\n\n**Note:** Using multiple DTs isn't mandatory.\n\nSet up\n------\n\nTo add support for multiple DTs to the DTO model, set up a list of main DTs\nand another list of overlay DTs.\n\n**Figure 2.** Runtime DTO implementation for multiple DTs.\n\nThe bootloader should be able to:\n\n- Read the SoC ID and select the corresponding main DT.\n- Read the board ID and select the set of overlay DTs accordingly.\n\nOnly one main DT should be selected for use at runtime. Multiple overlay DTs\nmay be selected but they must be compatible with the chosen main DT. Using\nmultiple overlays can help avoid storing one overlay per board within the DTBO\npartition and enable the bootloader to determine the subset of required overlays\nbased on the board ID (or possibly by probing the peripherals). For\nexample, Board A may need the devices added by the overlays 1, 3, and 5 while\nBoard B may need the devices added by the overlays 1, 4, and 5.\n\nPartition\n---------\n\nTo partition, determine a bootloader runtime-accessible and trusted location\nin flash memory to store the DTBs and DTBOs (bootloader must be able to locate\nthese files in the matching process). Keep in mind that DTBs and DTBOs cann't\nexist in the same partition. If your DTBs/DTBOs are in the\n`dtb`/`dtbo` partition, use the table structure and header\nformat detailed in [DTB and DTBO\npartition format](/docs/core/architecture/dto/partitions).\n\nRun in bootloader\n-----------------\n\nTo run:\n\n1. **Identify the SoC** and load the corresponding .dtb from storage into memory.\n2. **Identify the board** and load the corresponding `.dtbo` from storage into memory.\n3. Overlay the `.dtb` with the `.dtbo` to be a merged DT.\n4. Start kernel given the memory address of the merged DT."]]