Gerätebaum-Overlays

Ein Gerätebaum (DT) ist eine Datenstruktur von benannten Knoten und Eigenschaften, die nicht auffindbare Hardware beschreiben. Betriebssysteme wie der in Android verwendete Linux-Kernel verwenden DTs, um eine breite Palette von Hardwarekonfigurationen zu unterstützen, die von Android-betriebenen Geräten verwendet werden. Hardwarehersteller liefern ihre eigenen DT-Quelldateien, die Linux dann in die vom Bootloader verwendete Device Tree Blob (DTB)-Datei kompiliert.

Eine Gerätestruktur overlay (DTO) ermöglicht ein zentraler Gerätebaum BLOB (DTB) auf der Gerätestruktur sein überlagert. Ein Bootloader, der DTO verwendet, kann den System-on-Chip (SoC) DT verwalten und einen gerätespezifischen DT dynamisch überlagern, indem er Knoten zum Baum hinzufügt und Änderungen an den Eigenschaften im bestehenden Baum vornimmt.

Diese Seite beschreibt einen typischen Bootloader-Workflow zum Laden eines DT und enthält eine Liste gängiger DT-Begriffe. Weitere Seiten in diesem Abschnitt wird beschrieben , wie Bootloader Unterstützung für DTO zu implementieren , wie zu kompilieren , überprüfen und Ihre DTO Implementierung zu optimieren , und wie man mehrere DTs verwenden . Sie können auch Details bekommen DTO Syntax und erforderlich DTO / DTBO Partition formatieren .

Updates in Android 9-Version

In Android 9 darf der Bootloader die in den Gerätebaum-Overlays definierten Eigenschaften nicht ändern, bevor der einheitliche Gerätebaum-Blob an den Kernel übergeben wird.

Laden eines Gerätebaums

Das Laden eines Gerätebaums im Bootloader umfasst das Erstellen, Partitionieren und Ausführen.

Abbildung 1. typische Implementierung für Beladeeinrichtung Baum im Bootloader.
  1. Bauen:
    • Verwenden der Gerätestruktur Compiler ( dtc ) Gerätebaum Quelle (zu kompilieren .dts ) in einen Gerätebaum BLOB ( .dtb ), formatiert als abgeflachte Gerätestruktur.
    • Flashen des .dtb Datei in einen Bootloader - Laufzeit zugänglichen Ort (siehe unten).
  2. Um Partition bestimmt eine Bootloader Laufzeit zugänglich und vertrauenswürdige Stelle im Flash - Speicher abgelegt werden soll .dtb . Beispielstandorte:
    Bootpartition
    Abbildung 2. Setzen Sie .dtb in Boot - Partition durch Anhängen an image.gz und vorbei als „ kernel “ zu mkbootimg .
    Einzigartige Partition
    Abbildung 3. Setzen Sie .dtb in einer einzigartigen Partition (zB dtb Partition).
  3. Laufen:
    • Laden .dtb aus dem Speicher in dem Speicher.
    • Kernel mit Speicheradresse des geladenen DT starten.

Terminologie

In diesem Abschnitt werden die folgenden Gerätebaumbegriffe verwendet:

DT Gerätebaum
DTB Gerätebaum-Blob
DTBO Gerätebaum-Blob für Overlay
Fehlercode Gerätebaum-Compiler
DTO Gerätebaum-Overlay
DTS Gerätebaumquelle
FDT Abgeflachte Gerätebaum, enthielt ein binäres Format in einer .dtb Blob - Datei