Utilizzo di più DT

Molti fornitori di SoC e ODM supportano l'uso di più DT su un dispositivo, consentendo a un'immagine di alimentare più SKU/configurazioni. In questi casi, il bootloader identifica l'hardware e carica il DT corrispondente in fase di esecuzione:

Figura 1. Più alberi di dispositivi sovrapposti nel bootloader.

Nota: l'utilizzo di più DT non è obbligatorio.

Impostare

Per aggiungere il supporto per più DT al modello DTO, impostare un elenco di DT principali e un altro elenco di DT sovrapposti.

Figura 2. Implementazione DTO di runtime per più DT.

Il bootloader dovrebbe essere in grado di:

  • Leggere l'ID SoC e selezionare l'albero del dispositivo principale corrispondente, e
  • Leggi l'ID della scheda e seleziona di conseguenza il set di alberi dei dispositivi in ​​overlay.

È necessario selezionare un solo DT principale da utilizzare in fase di esecuzione. È possibile selezionare più DT sovrapposti, ma devono essere compatibili con il DT principale scelto. L'uso di più overlay può aiutare a evitare di memorizzare un overlay per scheda all'interno della partizione DTBO e consentire al bootloader di determinare il sottoinsieme di overlay richiesti in base all'ID della scheda (o eventualmente sondando le periferiche). Ad esempio, la scheda A potrebbe aver bisogno dei dispositivi aggiunti dagli overlay 1, 3 e 5 mentre la scheda B potrebbe aver bisogno dei dispositivi aggiunti dagli overlay 1, 4 e 5.

Partizionamento

Per partizionare, determinare una posizione attendibile e accessibile al runtime del bootloader nella memoria flash per archiviare i DTB e i DTBO (il bootloader deve essere in grado di individuare questi file nel processo di abbinamento). Tieni presente che DTB e DTBO non possono esistere nella stessa partizione. Se i tuoi DTB/DTBO si trovano nella partizione dtb / dtbo , usa la struttura della tabella e il formato dell'intestazione dettagliati in DTB/DTBO Partition Format .

In esecuzione nel bootloader

Correre:

  1. Identificare il SoC e caricare il .dtb corrispondente dall'archivio in memoria.
  2. Identificare la scheda e caricare il .dtbo corrispondente dalla memoria alla memoria.
  3. Sovrapponi il .dtb con il .dtbo per essere un DT unito.
  4. Avvia il kernel dato l'indirizzo di memoria del DT unito.