Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Korzystanie z wielu DT
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
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.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-26 UTC."],[],[],null,["# Use multiple DTs\n\nMany SoC vendors and ODMs support the use of multiple device trees (DTs) on a device,\nenabling one image to power multiple SKUs or configurations. In such cases, the\nbootloader identifies the hardware and loads the corresponding DT at runtime:\n\n**Figure 1.** Multiple device tree overlays (DTOs) in bootloader.\n\n**Note:** Using multiple DTs isn't mandatory.\n\nSet up\n------\n\nTo add support for multiple DTs to the DTO model, set up a list of main DTs\nand another list of overlay DTs.\n\n**Figure 2.** Runtime DTO implementation for multiple DTs.\n\nThe bootloader should be able to:\n\n- Read the SoC ID and select the corresponding main DT.\n- Read the board ID and select the set of overlay DTs accordingly.\n\nOnly one main DT should be selected for use at runtime. Multiple overlay DTs\nmay be selected but they must be compatible with the chosen main DT. Using\nmultiple overlays can help avoid storing one overlay per board within the DTBO\npartition and enable the bootloader to determine the subset of required overlays\nbased on the board ID (or possibly by probing the peripherals). For\nexample, Board A may need the devices added by the overlays 1, 3, and 5 while\nBoard B may need the devices added by the overlays 1, 4, and 5.\n\nPartition\n---------\n\nTo partition, determine a bootloader runtime-accessible and trusted location\nin flash memory to store the DTBs and DTBOs (bootloader must be able to locate\nthese files in the matching process). Keep in mind that DTBs and DTBOs cann't\nexist in the same partition. If your DTBs/DTBOs are in the\n`dtb`/`dtbo` partition, use the table structure and header\nformat detailed in [DTB and DTBO\npartition format](/docs/core/architecture/dto/partitions).\n\nRun in bootloader\n-----------------\n\nTo run:\n\n1. **Identify the SoC** and load the corresponding .dtb from storage into memory.\n2. **Identify the board** and load the corresponding `.dtbo` from storage into memory.\n3. Overlay the `.dtb` with the `.dtbo` to be a merged DT.\n4. Start kernel given the memory address of the merged DT."]]