Nakładki drzewa urządzeń

Drzewo urządzeń (DT) to struktura danych z nazwanymi węzłami i właściwościami, które opisują niewykrywalny sprzęt. Systemy operacyjne, takie jak jądro Linux używane w systemie Android, używają DTs do obsługi szerokiej gamy konfiguracji sprzętowych używanych przez urządzenia z systemem Android. Dostawcy sprzętu dostarczają własne pliki źródłowe DT, które Linux następnie kompiluje do pliku Device Tree Blob (DTB) używanego przez program ładujący.

Nakładka drzewo urządzenie (DTO) umożliwia centralną drzewo urządzenie blob (DTB) być nałożona na drzewie urządzeń. Program ładujący używający DTO może utrzymywać ID systemu na chipie (SoC) i dynamicznie nakładać ID specyficzne dla urządzenia, dodając węzły do ​​drzewa i wprowadzając zmiany we właściwościach w istniejącym drzewie.

Ta strona zawiera szczegółowe informacje na temat typowego przepływu pracy programu ładującego służącego do ładowania identyfikatora i zawiera listę typowych terminów dotyczących identyfikatora. Inne strony w tej sekcji opisano, jak wdrożyć bootloadera wsparcie dla DTO , jak skompilować , sprawdzić i zoptymalizować realizację DTO i jak korzystać z wielu DTS . Można również uzyskać szczegółowe informacje na temat składni DTO i wymagana partycja DTO / DTBO formatowania .

Aktualizacje w wersji Androida 9

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

Ładowanie drzewa urządzeń

Ładowanie drzewa urządzeń w bootloaderze obejmuje budowanie, partycjonowanie i uruchamianie.

Rysunek 1. Typowa implementacja na drzewie urządzeń załadunku bootloadera.
  1. Budować:
    • Użyj kompilatora drzewo urządzenie ( dtc ) skompilować źródła drzewo urządzenie ( .dts ) do blob drzewa urządzenie ( .dtb ), sformatowany jako spłaszczony drzewie urządzeń.
    • Flash .dtb plik do lokalizacji wykonawczego dostępnym bootloadera (szczegóły poniżej).
  2. Do partycji, określić bootloadera wykonania inwalidzkim i zaufanych lokalizacji w pamięci flash umieścić .dtb . Przykładowe lokalizacje:
    Partycja rozruchowa
    Rysunek 2. Umieścić .dtb w partycji rozruchowej przez dołączenie do image.gz i przechodzącej jako „ kernel ” do mkbootimg .
    Unikalna partycja
    Rysunek 3. Umieścić .dtb w unikalnym przegrody (np dtb partycji).
  3. Biegać:
    • Załaduj .dtb z pamięci do pamięci.
    • Uruchom jądro podając adres pamięci załadowanego identyfikatora.

Terminologia

W tej sekcji zastosowano następujące terminy drzewa urządzeń:

DT Drzewo urządzeń
DTB Obiekt BLOB drzewa urządzeń
DTBO Obiekt BLOB drzewa urządzeń dla nakładki
DTC Kompilator drzewa urządzeń
DTO Nakładka drzewa urządzeń
DTS Źródło drzewa urządzeń
FDT Spłaszczonej Device Drzewo, format binarny zawarty w .dtb plik blob