Usar várias DTs

Muitos fornecedores de SoC e ODMs aceitam o uso de várias árvores de dispositivos (DTs, na sigla em inglês) em um dispositivo, permitindo que uma imagem seja usada em várias SKUs ou configurações. Nesses casos, os o carregador de inicialização identifica o hardware e carrega a DT correspondente no tempo de 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:não é obrigatório usar várias DTs.

Configurar

Para adicionar suporte a várias DTs ao modelo de DTO, configure uma lista das principais DTs e outra lista de DTs de sobreposição.

Figura 2. Implementação de DTO no ambiente de execução para várias DTs.

O carregador de inicialização precisa ser capaz de:

  • Leia o ID do SoC e selecione a DT principal correspondente.
  • Leia o ID da placa e selecione o conjunto de DTs de sobreposição corretamente.

Apenas uma DT principal deve ser selecionada para uso no tempo de execução. Várias DTs de sobreposição podem ser selecionados, mas devem ser compatíveis com a transferência de dados principal escolhida. Usando várias sobreposições podem ajudar a evitar o armazenamento de uma sobreposição por placa dentro do DTBO e ativar o carregador de inicialização para determinar o subconjunto de sobreposições necessárias com base no ID da placa (ou talvez analisando os periféricos). Para 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 pelo ambiente de execução do carregador de inicialização na memória flash para armazenar DTBs e DTBOs (o carregador de inicialização deve ser capaz de localizar esses arquivos no processo de correspondência). Lembre-se de que DTBs e DTBOs não podem na mesma partição. Se seus DTBs/DTBOs estiverem no dtb/dtbo, use o cabeçalho e a estrutura da tabela formato detalhado em DTB e DTBO formato de partição.

Executar no carregador de inicialização

Para executar:

  1. Identifique o SoC e carregue o .dtb correspondente do armazenamento na memória.
  2. Identifique o quadro e carregue o .dtbo do armazenamento para a memória.
  3. Sobreponha o .dtb com o .dtbo que vai ser mesclado TD.
  4. Iniciar kernel de acordo com o endereço de memória da DT mesclada.