Muitos fornecedores de SoC e ODMs suportam o uso de vários DTs em um dispositivo, permitindo que uma imagem alimente vários SKUs/configurações. Nesses casos, o bootloader identifica o hardware e carrega o DT correspondente em tempo de execução:
Nota: O uso de vários DTs não é obrigatório.
Configurando
Para adicionar suporte para múltiplos DTs ao modelo DTO, configure uma lista de DTs principais e outra lista de DTs de sobreposição.
O bootloader deve ser capaz de:
- Leia o SoC ID e selecione a árvore de dispositivos principal correspondente e
- Leia o ID da placa e selecione o conjunto de árvores de dispositivos de sobreposição de acordo.
Apenas um DT principal deve ser selecionado para uso em tempo de execução. Podem ser selecionados vários DTs de sobreposição, mas devem ser compatíveis com o DT principal escolhido. O uso de múltiplas sobreposições pode ajudar a evitar o armazenamento de uma sobreposição por placa na partição DTBO e permitir que o bootloader determine o subconjunto de sobreposições necessárias com base no ID da placa (ou possivelmente testando 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.
Particionamento
Para particionar, determine um local confiável e acessível em tempo de execução do bootloader na memória flash para armazenar os DTBs e DTBOs (o bootloader deve ser capaz de localizar esses arquivos no processo correspondente). Tenha em mente que DTBs e DTBOs não podem existir na mesma partição. Se seus DTBs/DTBOs estiverem na partição dtb
/ dtbo
, use a estrutura da tabela e o formato do cabeçalho detalhados em Formato de partição DTB/DTBO .
Executando no bootloader
Para correr:
- Identifique o SoC e carregue o .dtb correspondente do armazenamento na memória.
- Identifique a placa e carregue o
.dtbo
correspondente do armazenamento na memória. - Sobreponha o
.dtb
ao.dtbo
para formar um DT mesclado. - Inicie o kernel dado o endereço de memória do DT mesclado.