Implementieren von DTOs

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Das Implementieren von DTO umfasst das Aufteilen der Gerätestruktur, das Erstellen, Partitionieren und Ausführen. Nachdem Sie über eine funktionierende Implementierung verfügen, müssen Sie auch die Kompatibilität zwischen den beiden DTs aufrechterhalten und eine Strategie zur Gewährleistung der Sicherheit jeder DT-Partition festlegen.

Dividieren der DT

Beginnen Sie damit, den Gerätebaum in zwei (2) Teile zu unterteilen:

  • Haupt-DT . Der Nur-SoC-Teil und die Standardkonfigurationen, die vom SoC-Anbieter bereitgestellt werden.
  • Überlagerung DT . Die gerätespezifischen Konfigurationen, bereitgestellt von ODM/OEM.

Nach dem Aufteilen der Gerätebäume müssen Sie die Kompatibilität zwischen Haupt-BMK und Overlay-BMK sicherstellen, damit durch Zusammenführen von Haupt-BMK und Overlay-BMK ein vollständiges BMK des Betriebsmittels entsteht. Einzelheiten zu DTO-Format und -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:

  1. Kompilieren Sie die Haupt-DT .dts -Datei in .dtb -Datei.
  2. Flashen Sie die .dtb -Datei in eine Bootloader-Runtime-zugängliche Partition (siehe unten).

So erstellen Sie das Overlay-DT:

  1. Kompilieren Sie Overlay-DT .dts in .dtbo -Datei. Während dieses Dateiformat das gleiche ist wie die .dtb -Datei, die als vereinfachter Gerätebaum formatiert ist, unterscheidet es sich durch die andere Dateierweiterung vom Haupt-DT.
  2. Flashen Sie die .dtbo -Datei in eine Bootloader-Runtime-zugängliche Partition (wie unten beschrieben).

Einzelheiten zum Kompilieren mit DTC und zum Überprüfen von DTO-Ergebnissen auf dem Host finden Sie unter Kompilieren und Überprüfen .

Partitionieren von DTs

Bestimmen Sie einen zur Bootloader-Laufzeit zugänglichen und vertrauenswürdigen Speicherort im Flash-Speicher, um .dtb und .dtbo .

Beispielorte für das Haupt-BMK:

  • Teil der Boot-Partition, an den Kernel angehängt ( image.gz ).
  • Separate DT-Blobs ( .dtb ) in einer dedizierten Partition ( dtb ).

Beispielpositionen für das Overlay-DT:

Eindeutige Partition
Abbildung 1. Legen Sie .dtbo in eine eindeutige Partition, z. B. dtbo Partition.
ODM-Partition
Abbildung 2. Legen Sie .dtbo in odm Partition (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 über dem Haupt-DT-BLOB erforderlich sind. In der Regel sind 8 MB mehr als genug und lassen 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
Abbildung 3. DTBO-Partition A/B, Beispiel 1.
Beispiel 2
Abbildung 4. DTBO-Partition A/B, Beispiel 2.

Läuft im Bootloader

Laufen:

Abbildung 5. Typische Laufzeitimplementierung für Gerätebaum-Overlay im Bootloader.
  1. Laden .dtb aus dem Speicher in den Speicher.
  2. Laden .dtbo aus dem Speicher in den Speicher.
  3. Überlagern .dtb mit .dtbo , um ein zusammengeführtes DT zu sein.
  4. 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 getrennt haben, müssen Sie die beiden Teile in Zukunft kompatibel zueinander halten, einschließlich:

  • BMK-Definition im Haupt-BMK (zB 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 ein "Alias"-Label, das 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 der DTB/DTBO sicher, unverändert und unbeschädigt ist. Sie können jede Lösung verwenden, um DTB/DTBO zu sichern, z. B. Boot-Image-Signatur in VBoot 1.0 oder 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 durch Hardware geschützten Vertrauensanker 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 odm -Partition teilen).

Einzelheiten finden Sie unter Verifizierter Start .