Używanie wielu plików przenoszenia danych

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ć:

  1. Zidentyfikuj SoC i załaduj odpowiedni plik .dtb z pamięci masowej do pamięci.
  2. Zidentyfikuj tablicę i załaduj odpowiednią .dtbo z magazynu do pamięci.
  3. Nakładanie .dtb na .dtbo w celu utworzenia scalonego drzewa danych.
  4. Rozpoczęcie działania rdzenia z adresem pamięci scalonego DT.