A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Usar vários DTs
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Muitos fornecedores de SoC e ODMs oferecem suporte ao uso de várias árvores de dispositivos (DTs, na sigla em inglês) em um dispositivo,
permitindo que uma imagem alimente várias SKUs ou configurações. Nesses casos, o
bootloader identifica o hardware e carrega o DT correspondente no momento da execução:

Figura 1. Várias sobreposições da árvore de dispositivos (DTOs, na sigla em inglês) no carregador de inicialização.
Observação:o uso de vários DTs não é obrigatório.
Configurar
Para adicionar suporte a várias DTs ao modelo de DTO, configure uma lista de DTs principais
e outra lista de DTs de sobreposição.

Figura 2. Implementação de DTO de execução para vários DTs.
O carregador de inicialização precisa:
- Leia o ID do SoC e selecione o DT principal correspondente.
- Leia o ID do tabuleiro e selecione o conjunto de DTs de sobreposição de acordo.
Somente um DT principal deve ser selecionado para uso no tempo de execução. Várias DTs de sobreposição
podem ser selecionadas, mas precisam ser compatíveis com a DT principal escolhida. O uso
de várias sobreposições pode ajudar a evitar o armazenamento de uma sobreposição por placa na partição
DTBO e permitir que o carregador de inicialização determine o subconjunto de sobreposições necessárias
com base no ID da placa (ou possivelmente sondando os periféricos). Por
exemplo, a placa A pode precisar dos dispositivos adicionados pelas sobreposições 1, 3 e 5, enquanto
a placa B pode precisar dos dispositivos adicionados pelas sobreposições 1, 4 e 5.
Partição
Para particionar, determine um local confiável e acessível no tempo de execução do carregador de inicialização
na memória flash para armazenar os DTBs e DTBOs. O carregador de inicialização precisa localizar
esses arquivos no processo de correspondência. Os DTBs e DTBOs não podem
existir na mesma partição. Se os DTBs/DTBOs estiverem na
partição dtb
/dtbo
, use a estrutura de tabela e o formato de cabeçalho
detalhados em Formato de partição de DTB e DTBO.
Executar no carregador de inicialização
Para executar:
- Identifique o SoC e carregue o .dtb correspondente do
armazenamento para a memória.
- Identifique a placa e carregue o
.dtbo
correspondente do armazenamento para a memória.
- Sobreponha o
.dtb
com o .dtbo
para que seja um DT
mesclado.
- Inicia o kernel com o endereço de memória do DT mesclado.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]