Utilizza più DT

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

Figura 1. Più overlay dell'albero del dispositivo (DTO) nel bootloader.

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

Configura

Per aggiungere il supporto di più DT al modello DTO, configura un elenco di DT principali e un altro elenco di DT in overlay.

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

Il bootloader deve essere in grado di:

  • Leggi l'ID SoC e seleziona il DT principale corrispondente.
  • Leggi l'ID scheda e seleziona di conseguenza l'insieme di DT in overlay.

È necessario selezionare un solo DT principale da utilizzare in fase di runtime. È possibile selezionare più DT in overlay, ma devono essere compatibili con il DT principale scelto. L'utilizzo di più overlay può contribuire 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 scheda (o eventualmente mediante il rilevamento delle periferiche). Ad esempio, la scheda A potrebbe richiedere i dispositivi aggiunti dagli overlay 1, 3 e 5, mentre la scheda B potrebbe richiedere i dispositivi aggiunti dagli overlay 1, 4 e 5.

Partizione

Per eseguire la partizione, determina una posizione attendibile e accessibile in fase di runtime del bootloader nella memoria flash per memorizzare i DTB e i DTBO (il bootloader deve essere in grado di individuare questi file nella procedura di corrispondenza). Tieni presente che i DBT e i DTBO non possono essere presenti nella stessa partizione. Se i tuoi DTB/DTBO si trovano nella tabella dtb/dtbo, utilizza la struttura della tabella e il formato della tabella descritti in Formato della tabella DTB e DTBO.

Esegui nel bootloader

Per eseguire:

  1. Identifica il SoC e carica il file .dtb corrispondente dalla memoria archiviazione nella memoria.
  2. Identifica la scheda e carica il corrispondente.dtbo dalla memoria di archiviazione nella memoria.
  3. Sovrapponi .dtb a .dtbo per ottenere un tabella di dati unita.
  4. Avvia il kernel in base all'indirizzo di memoria del DT unito.