Gerätestruktur-Overlays

Eine Gerätestruktur (Device Tree, DT) ist eine Datenstruktur aus benannten Knoten und Attributen, die nicht auffindbare Hardware beschreiben. Kernel wie der Linux-Kernel die in Android verwendet werden, nutzen Sie DTs, um eine breite Palette von verwendeten Hardwarekonfigurationen zu unterstützen. von Android-Geräten. Hardwareanbieter stellen ihre eigene Gerätestruktur bereit Quelldateien (DTS), die in die Device Tree Blob (DTB)-Datei kompiliert sind mithilfe des Gerätebaum-Compilers. Diese Dateien werden dann vom Bootloader. Die DTB-Datei enthält eine binär formatierte abgeflachte Gerätestruktur.

Ein Device Tree Overlay (DTO) ermöglicht es, eine zentrale DTB auf der DT zu überlagern (ein Gerätebaum-BLOB) für Overlay (DTBO)). Ein Bootloader mit DTO kann den System-on-Chip (SoC) DT und überlagern dynamisch einen gerätespezifischen DT, wodurch Knoten zur Baumstruktur hinzugefügt werden und Änderungen an den Eigenschaften in der vorhandenen Struktur vornehmen.

Updates in der Android 9-Version

Unter Android 9 darf der Bootloader den Parameter Eigenschaften, die in den DTOs definiert wurden, bevor der einheitliche DTB an den Kernel übergeben wird.

Datenübertragung laden

Das Laden eines DT in den Bootloader umfasst das Erstellen, Partitionieren und Ausführen.

Abbildung 1: Typische Implementierung zum Laden der Gerätestruktur im Bootloader.

  1. So erstellen Sie die DTB und flashen sie:

    1a. Verwenden Sie den DTC (dtc), um DTS (.dts) in eine DTB (.dtb) zu kompilieren. Die DTB ist als Flattened DT formatiert. 1b. Datei .dtb in einen über die Bootloader-Laufzeit zugänglichen Speicherort flashen (Details siehe unten).

  2. Zum Partitionieren einen vertrauenswürdigen, über die Laufzeit zugänglichen Bootloader bestimmen im Flash-Speicher, um .dtb zu speichern. Beispieladressen:

    Abbildung 2: Fügen Sie .dtb in eine Bootpartition ein, indem Sie
    "image.gz" an "image.gz" anhängen und
    "kernel" übergeben. zu mkbootimg führen.

    Abbildung 3: Speichern Sie die Datei .dtb in einer eindeutigen Partition
    (z. B. dtb-Partition).

  3. So laden Sie den DTB und starten den Kernel:

    • .dtb aus dem Speicher in den Arbeitsspeicher laden.
    • Starten Sie den Kernel mithilfe der Speicheradresse des geladenen DT.

Wie geht es weiter?

Auf dieser Seite wird ein typischer Bootloader-Workflow zum Laden eines DT beschrieben und eine Liste gebräuchlicher DT-Begriffe. Auf anderen Seiten in diesem Abschnitt wird beschrieben, wie Sie Bootloader-Unterstützung implementieren kompilieren, verifizieren und Ihr DTO optimieren und wie Sie mehrere DTs verwenden. Sie können Informationen zur DTO-Syntax und erforderlich DTO- und DTBO-Partitionsformatierung.