Дерево устройств (DT) — это структура данных именованных узлов и свойств, описывающих необнаружимое оборудование. Ядра, такие как ядро Linux, используемое в Android, используют DT для поддержки широкого спектра аппаратных конфигураций, используемых устройствами под управлением Android. Поставщики оборудования предоставляют свои собственные исходные файлы дерева устройств (DTS) , которые компилируются в файл blob дерева устройств (DTB) с помощью компилятора дерева устройств . Эти файлы затем используются загрузчиком. Файл DTB содержит плоское дерево устройств в двоичном формате.
Наложение дерева устройств (DTO) позволяет накладывать центральный DTB на DT ( объект дерева устройств для наложения (DTBO) ). Загрузчик, использующий DTO, может поддерживать DT системы на кристалле (SoC) и динамически накладывать DT для конкретного устройства, добавляя узлы в дерево и внося изменения в свойства в существующем дереве.
Обновления в версии Android 9
В Android 9 загрузчик не должен изменять свойства, определенные в DTO, перед передачей унифицированного DTB ядру.
Загрузите ОУ
Загрузка DT в загрузчик включает в себя сборку, разбиение на разделы и запуск.
Рисунок 1. Типичная реализация загрузки дерева устройств в загрузчик.
Чтобы создать и прошить DTB:
1а. Используйте DTC (
dtc
) для компиляции DTS (.dts
) в DTB (.dtb
). DTB отформатирован как плоское DT. 1б. Запишите файл.dtb
в место, доступное во время выполнения загрузчика (подробно описано ниже).Для разделения определите доступное и надежное место загрузчика во флэш-памяти для размещения
.dtb
. Примеры мест:Рис. 2. Поместите .dtb в загрузочный раздел с помощью
добавление в image.gz и передача как
«ядро» в mkbootimg.Рисунок 3. Поместите .dtb в уникальный раздел.
(например, раздел dtb).Чтобы загрузить DTB и запустить ядро:
- Загрузите
.dtb
из хранилища в память. - Запустите ядро, используя адрес памяти загруженного DT.
- Загрузите
Что дальше?
На этой странице подробно описан типичный рабочий процесс загрузчика для загрузки DT и представлен список общих терминов DT. На других страницах этого раздела описывается, как реализовать поддержку загрузчика , как компилировать , проверять и оптимизировать DTO и как использовать несколько DT . Вы также можете получить подробную информацию о синтаксисе DTO и необходимом форматировании разделов DTO и DTBO .