Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Используйте несколько ОУ
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Многие поставщики SoC и ODM поддерживают использование нескольких деревьев устройств (DT) на устройстве, что позволяет одному образу использовать несколько SKU или конфигураций. В таких случаях загрузчик идентифицирует оборудование и загружает соответствующее ОУ во время выполнения:

Рисунок 1. Несколько наложений дерева устройств (DTO) в загрузчике.
Примечание. Использование нескольких ОУ не является обязательным.
Настраивать
Чтобы добавить поддержку нескольких ОУ в модель DTO, настройте список основных ОУ и еще один список наложенных ОУ.

Рисунок 2. Реализация DTO во время выполнения для нескольких DT.
Загрузчик должен уметь:
- Считайте идентификатор SoC и выберите соответствующее основное ОУ.
- Прочтите идентификатор платы и выберите соответствующий набор наложенных ОУ.
Для использования во время выполнения следует выбирать только одно главное ОУ. Можно выбрать несколько наложенных ОУ, но они должны быть совместимы с выбранным основным ОУ. Использование нескольких наложений может помочь избежать хранения одного наложения на каждую плату в разделе DTBO и позволить загрузчику определить подмножество необходимых наложений на основе идентификатора платы (или, возможно, путем проверки периферийных устройств). Например, плате A могут потребоваться устройства, добавленные наложениями 1, 3 и 5, а плате B могут потребоваться устройства, добавленные наложениями 1, 4 и 5.
Раздел
Для разделения определите доступное и надежное расположение загрузчика во флэш-памяти для хранения DTB и DTBO (загрузчик должен иметь возможность находить эти файлы в процессе сопоставления). Имейте в виду, что DTB и DTBO не могут существовать в одном разделе. Если ваши DTB/DTBO находятся в разделе dtb
/ dtbo
, используйте структуру таблицы и формат заголовка, подробно описанные в разделе Формат раздела DTB и DTBO .
Запустить в загрузчике
Для запуска:
- Определите SoC и загрузите соответствующий .dtb из хранилища в память.
- Определите плату и загрузите соответствующий
.dtbo
из хранилища в память. - Наложите
.dtb
на .dtbo
, чтобы получить объединенное DT. - Запустите ядро по адресу памяти объединенного DT.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 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."]]