Wielu dostawców układów SoC i producentów OEM obsługuje na urządzeniu wiele drzew urządzeń (DT), co umożliwia stosowanie jednego obrazu do obsługi wielu SKU lub konfiguracji. W takich przypadkach bootloader identyfikuje sprzęt i wczytuje odpowiedni DT w czasie działania:
Rysunek 1. Wiele nakładek drzewa urządzenia (DTO) w programie rozruchowym.
Uwaga: używanie wielu wersji testowych nie jest obowiązkowe.
Skonfiguruj
Aby dodać obsługę wielu DT-ów do modelu DTO, skonfiguruj listę głównych DT-ów i kolejną listę DT-ów nakładki.
Rysunek 2. Implementacja DTO w czasie wykonywania dla wielu DT.
Program rozruchowy powinien umożliwiać:
- Przeczytaj identyfikator SoC i wybierz odpowiedni główny DT.
- Przeczytaj identyfikator tablicy i odpowiednio wybierz zestaw DT.
Do użycia w czasie wykonywania należy wybrać tylko 1 główny DT. Można wybrać wiele plików DT z nakładką, ale muszą być one zgodne z wybranym głównym plikiem DT. Użycie wielu nakładek może uchronić przed przechowywaniem jednej nakładki na płytkę w partycji DTBO i umożliwić programowi rozruchowemu określenie podzbioru wymaganych nakładek na podstawie identyfikatora płytki (lub ewentualnie przez sprawdzenie urządzeń peryferyjnych). Na przykład tablica A może wymagać urządzeń dodanych przez nakładki 1, 3 i 5, a tablica B – urządzeń dodanych przez nakładki 1, 4 i 5.
Partycja
Aby utworzyć partycję, określ zaufane miejsce w pamięci flash, które będzie dostępne dla bootloadera w czasie działania, aby przechowywać w nim DTB i DTBO (bootloader musi mieć możliwość znalezienia tych plików w procesie dopasowywania). Pamiętaj, że tabele DTB i DTBO nie mogą znajdować się w tej samej partycji. Jeśli tabele DTB/DTBO znajdują się w partycji dtb
/dtbo
, użyj struktury tabeli i formatu nagłówka zgodnie ze szczegółowymi informacjami podanymi w formatach partycji tabeli DTB i DTBO.
Uruchom w programie rozruchowym
Aby uruchomić:
- Zidentyfikuj SoC i załaduj odpowiedni plik .dtb z pamięci masowej do pamięci.
- Zidentyfikuj tablicę i załaduj odpowiednią
.dtbo
z magazynu do pamięci. - Nakładanie
.dtb
na.dtbo
w celu utworzenia scalonego drzewa danych. - Rozpoczęcie działania rdzenia z adresem pamięci scalonego DT.