Nakładki drzewa urządzeń

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Drzewo urządzeń (DT) to struktura danych nazwanych węzłów i właściwości opisujących niewykrywalny sprzęt. Jądra, takie jak jądro Linuksa używane w systemie Android, używają identyfikatorów ID do obsługi szerokiej gamy konfiguracji sprzętowych używanych przez urządzenia z systemem Android. Dostawcy sprzętu dostarczają własne pliki Device Tree Source (DTS) , które są kompilowane do pliku Device Tree Blob (DTB) za pomocą kompilatora drzewa urządzeń . Pliki te są następnie używane przez program ładujący. Plik DTB zawiera spłaszczone drzewo urządzeń w formacie binarnym.

Nakładka drzewa urządzeń (DTO) umożliwia nałożenie centralnego obiektu blob drzewa urządzeń (DTB) na drzewo urządzeń. Bootloader korzystający z DTO może utrzymywać DT system-on-chip (SoC) i dynamicznie nakładać DT specyficzne dla urządzenia, dodając węzły do ​​drzewa i wprowadzając zmiany we właściwościach w istniejącym drzewie.

DTBO Blob drzewa urządzeń dla nakładki

Aktualizacje w wydaniu Androida 9

W systemie Android 9 program ładujący nie może modyfikować właściwości zdefiniowanych w nakładkach drzewa urządzeń przed przekazaniem ujednoliconego obiektu blob drzewa urządzeń do jądra.

Ładowanie drzewa urządzeń

Ładowanie drzewa urządzeń w programie ładującym obejmuje budowanie, partycjonowanie i uruchamianie.

Rysunek 1. Typowa implementacja ładowania drzewa urządzeń w bootloaderze.
  1. Aby utworzyć i sflashować obiekt blob drzewa urządzeń:

    1a. Użyj kompilatora drzewa urządzeń ( dtc >), aby skompilować źródło drzewa urządzeń ( .dts ) do obiektu blob drzewa urządzeń ( . .dtb ). Obiekt blob drzewa urządzeń jest sformatowany jako spłaszczone drzewo urządzeń. 1b. Prześlij plik .dtb do lokalizacji dostępnej dla środowiska uruchomieniowego programu ładującego (szczegóły poniżej).

  2. Aby podzielić na partycje, określ dostępną i zaufaną lokalizację programu ładującego w pamięci flash, aby umieścić .dtb . Przykładowe lokalizacje:

    Partycja rozruchowa
    Rysunek 2. Umieść .dtb w partycji rozruchowej, dołączając image.gz i przekazując jako „ kernel ” do mkbootimg .
    Unikalna partycja
    Rysunek 3. Umieść .dtb na unikalnej partycji (np. partycji dtb ).

  3. Aby załadować obiekt blob drzewa urządzeń i uruchomić jądro:

    3a. Załaduj .dtb z magazynu do pamięci. 3b. Uruchom jądro, używając adresu pamięci załadowanego DT.

Co dalej?

Ta strona zawiera szczegółowe informacje o typowym przepływie pracy modułu ładującego do ładowania DT i zawiera listę typowych terminów DT. Inne strony w tej sekcji opisują, jak zaimplementować obsługę bootloadera , jak kompilować , weryfikować i optymalizować DTO oraz jak używać wielu DT . Możesz także uzyskać szczegółowe informacje na temat składni DTO i wymaganego formatowania partycji DTO/DTBO .