Utilizza più DT

Molti fornitori di SoC e ODM supportano l'utilizzo di più device Tree (DT) su un dispositivo, abilitare un'immagine per alimentare più SKU o configurazioni. In questi casi, Il bootloader identifica l'hardware e carica il DT corrispondente in fase di runtime:

Figura 1. Overlay ad albero dei dispositivi (DTO) multipli nel bootloader.

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

Configura

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

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

Il bootloader dovrebbe essere in grado di:

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

Deve essere selezionato un solo DT principale da utilizzare durante il runtime. Più DT overlay possono essere selezionati, ma devono essere compatibili con il DT principale scelto. Utilizzo più overlay può aiutare a evitare di memorizzare un overlay per scheda all'interno del DTBO e abilitare il bootloader per determinare il sottoinsieme degli overlay richiesti in base all'ID scheda (o possibilmente tramite un'analisi delle periferiche). Per Ad esempio, la scheda A potrebbe richiedere l'aggiunta di dispositivi dagli overlay 1, 3 e 5, mentre La scheda B potrebbe richiedere l'aggiunta di dispositivi dagli overlay 1, 4 e 5.

Partizione

Per eseguire il partizionamento, determina una posizione attendibile e accessibile dal runtime del bootloader nella memoria flash per memorizzare i DTB e i DTBO (il bootloader deve essere in grado questi file nel processo di corrispondenza). Tieni presente che i DTB e i DTBO non nella stessa partizione. Se i tuoi DTB/DTBO sono nel Partizione dtb/dtbo, utilizza la struttura e l'intestazione della tabella dettagliato in DTB e DTBO partizione standard.

Esegui in bootloader

Per l'esecuzione:

  1. Identifica il SoC e carica il file .dtb corrispondente spazio di archiviazione in memoria.
  2. Identifica la lavagna e carica il corrispondente .dtbo di spazio di archiviazione in memoria.
  3. Sovrapponi .dtb con .dtbo da unire DT.
  4. Avvia il kernel in base all'indirizzo di memoria del DT unito.