Mehrere DTs verwenden

Viele SoC-Anbieter und ODMs unterstützen die Verwendung mehrerer Device Trees (DTs) auf einem Gerät. sodass ein Image für mehrere Artikelnummern oder Konfigurationen verwendet werden kann. In solchen Fällen kann das Bootloader identifiziert die Hardware und lädt den entsprechenden DT zur Laufzeit:

Abbildung 1: Mehrere Device Tree Overlays (DTOs) im Bootloader.

Hinweis: Die Verwendung mehrerer DTs ist nicht obligatorisch.

Einrichten

Erstellen Sie eine Liste mit Haupt-DTs, um dem DTO-Modell Unterstützung für mehrere DTs hinzuzufügen. und eine weitere Liste mit Overlay-DTs.

Abbildung 2: Laufzeit-DTO-Implementierung für mehrere DTs.

Der Bootloader sollte Folgendes können:

  • Lesen Sie die SoC-ID und wählen Sie den entsprechenden Haupt-DT aus.
  • Lesen Sie die Board-ID und wählen Sie den entsprechenden Satz von Overlay-DTs aus.

Zur Laufzeit darf nur ein Haupt-DT ausgewählt werden. Mehrere Overlay-DTs ausgewählt sein, müssen aber mit dem gewählten Haupt-DT kompatibel sein. Mit Durch mehrere Overlays kann vermieden werden, dass ein Overlay pro Board innerhalb der DTBO-Datei gespeichert wird. Partition und aktivieren Sie den Bootloader, um die Teilmenge der erforderlichen Overlays zu ermitteln. basierend auf der Board-ID (oder ggf. durch Prüfen der Peripheriegeräte). Für Beispiel: Board A benötigt die von den Overlays 1, 3 und 5 hinzugefügten Geräte, während Board B benötigt möglicherweise die Geräte, die von den Overlays 1, 4 und 5 hinzugefügt wurden.

Partition

Zum Partitionieren einen vertrauenswürdigen, über die Laufzeit zugänglichen Bootloader bestimmen in den Flash-Speicher ein, um die DTBs und DTBOs zu speichern (Bootloader muss diese Dateien beim Abgleich.) DTBs und DTBOs können in derselben Partition vorhanden sind. Wenn sich Ihre DTBs/DTBOs im dtb/dtbo-Partition mit der Tabellenstruktur und -überschrift verwenden im Format DTB und DTBO Partitionsformat.

Im Bootloader ausführen

So führen Sie Folgendes aus:

  1. Ermitteln Sie das SoC und laden Sie die entsprechende .dtb-Datei aus in den Arbeitsspeicher ein.
  2. Identifizieren Sie das Board und laden Sie das entsprechende .dtbo von Speicher in Arbeitsspeicher.
  3. .dtb mit .dtbo überlagern, um zusammengeführt zu werden DT.
  4. Startet den Kernel mit der Speicheradresse des zusammengeführten DT.