Die Implementierung von DTO umfasst das Teilen des Gerätebaums, das Erstellen, Partitionieren und Ausführen. Nachdem Sie über eine funktionierende Implementierung verfügen, müssen Sie außerdem die Kompatibilität zwischen den beiden DTs aufrechterhalten und eine Strategie zur Gewährleistung der Sicherheit jeder DT-Partition festlegen.
Teilen des DT
Teilen Sie zunächst den Gerätebaum in zwei (2) Teile:
- Haupt-DT . Der Nur-SoC-Teil und die vom SoC-Anbieter bereitgestellten Standardkonfigurationen.
- DT überlagern . Die gerätespezifischen Konfigurationen, bereitgestellt von ODM/OEM.
Nach der Aufteilung der Gerätebäume müssen Sie die Kompatibilität zwischen Haupt-BMK und Overlay-BMK sicherstellen, damit durch die Zusammenführung von Haupt-BMK und Overlay-BMK ein vollständiges BMK für das Gerät entsteht. Einzelheiten zum DTO-Format und zu den Regeln finden Sie unter DTO-Syntax . Einzelheiten zu mehreren Gerätebäumen finden Sie unter Mehrere DTs .
Erstellen von Haupt- und Overlay-DTs
So erstellen Sie das Haupt-DT:
- Kompilieren Sie die Haupt-DT
.dts
in eine.dtb
Datei. - Flashen Sie
.dtb
Datei in eine Bootloader-Laufzeit-zugängliche Partition (siehe unten).
So erstellen Sie das Overlay-DT:
- Kompilieren Sie Overlay-DT
.dts
in eine.dtbo
Datei. Obwohl dieses Dateiformat mit der als abgeflachter Gerätebaum formatierten.dtb
Datei identisch ist, unterscheidet es sich durch die andere Dateierweiterung vom Haupt-DT. - Flashen Sie
.dtbo
Datei in eine Bootloader-Laufzeitpartition, auf die zugegriffen werden kann (wie unten beschrieben).
Einzelheiten zum Kompilieren mit DTC und zum Überprüfen der DTO-Ergebnisse auf dem Host finden Sie unter Kompilieren und Überprüfen .
Partitionierung von DTs
Bestimmen Sie einen zur Bootloader-Laufzeit zugänglichen und vertrauenswürdigen Speicherort im Flash-Speicher, um .dtb
und .dtbo
abzulegen.
Beispielstandorte für die Haupt-DT:
- Teil der Boot-Partition, an den Kernel angehängt (
image.gz
). - Separate DT-Blobs (
.dtb
) in einer dedizierten Partition (dtb
).
Beispielstandorte für das Overlay-DT:
Einzigartige Partition |
---|

.dtbo
in einer eindeutigen Partition ab, z. B. dtbo
Partition. ODM-Partition |
---|

.dtbo
in die odm
Partition einfügen (tun Sie dies nur, wenn Ihr Bootloader in der Lage ist, Daten aus dem Dateisystem der odm
Partition zu laden).Hinweis: Die Größe der Overlay-DT-Partition hängt vom Gerät und der Menge der Änderungen ab, die zusätzlich zum Haupt-DT-Blob erforderlich sind. Normalerweise sind 8 MB mehr als ausreichend und bieten bei Bedarf Raum für zukünftiges Wachstum.
Für Geräte, die nahtlose (A/B) Updates unterstützen, A/B die Haupt-DT- und Overlay-DT-Partitionen:
Beispiel 1 |
---|

Beispiel 2 |
---|

Läuft im Bootloader
Laufen:

- Laden Sie
.dtb
vom Speicher in den Speicher. - Laden Sie
.dtbo
vom Speicher in den Speicher. - Überlagern Sie
.dtb
mit.dtbo
, um ein zusammengeführtes DT zu erhalten. - Starten Sie den Kernel mit der Speicheradresse des zusammengeführten DT.
Kompatibilität wahren
Der Haupt-DTB (vom SoC-Anbieter) wird als API-Oberfläche für DTBOs behandelt. Nachdem Sie den Gerätebaum in einen SoC-gemeinsamen Teil und einen gerätespezifischen Teil unterteilt haben, müssen Sie die beiden Teile in Zukunft miteinander kompatibel halten, einschließlich:
- BMK-Definition im Haupt-BMK (z. B. Knoten, Eigenschaften, Labels) . Jede Definitionsänderung im Haupt-DT könnte Änderungen im Overlay-DT auslösen. Um beispielsweise einen Knotennamen im Haupt-DT zu korrigieren, definieren Sie eine „Alias“-Beschriftung, die dem ursprünglichen Knotennamen zugeordnet ist (um die Änderung des Overlay-DT zu vermeiden).
- Overlay-DT-Speicherort (z. B. Partitionsname, Speicherformat) .
Sicherheit gewährleisten
Der Bootloader muss sicherstellen, dass das DTB/DTBO sicher, unverändert und unbeschädigt ist. Sie können jede Lösung zum Sichern von DTB/DTBO verwenden, zum Beispiel die Boot-Image-Signatur in VBoot 1.0 oder die AVB-HASH-Fußzeile (VBoot 2.0).
- Wenn sich DTB/DTBO in einer eindeutigen Partition befindet, können Sie diese Partition zur Vertrauenskette von AVB hinzufügen. Die Vertrauenskette beginnt bei einem hardwaregeschützten Vertrauensstamm und geht zum Bootloader, der die Integrität und Authentizität der DTB/DTBO-Partition überprüft.
- Wenn sich DTB/DTBO in einer vorhandenen Partition befindet (z. B. der
odm
Partition), sollte sich diese Partition in der Vertrauenskette von AVB befinden. (Die DTBO-Partition könnte einen öffentlichen Schlüssel mit derodm
Partition teilen.)
Einzelheiten finden Sie unter Verifizierter Start .