Наложения дерева устройств

Дерево устройств (DT) — это структура данных именованных узлов и свойств, описывающих необнаруживаемое оборудование. Ядра, такие как ядро ​​Linux, используемое в Android, используют DT для поддержки широкого спектра конфигураций оборудования, используемых устройствами на базе Android. Поставщики оборудования предоставляют собственные файлы исходного кода дерева устройств (DTS) , которые компилируются в файл BLOB-объекта дерева устройств (DTB) с помощью компилятора дерева устройств . Затем эти файлы используются загрузчиком. Файл DTB содержит сплющенное дерево устройств в двоичном формате.

Наложение дерева устройств (DTO) позволяет накладывать центральный DTB на DT ( блок-объект дерева устройств для наложения (DTBO) ). Загрузчик, использующий DTO, может поддерживать DT системы на кристалле (SoC) и динамически накладывать DT, специфичный для устройства, добавляя узлы в дерево и внося изменения в свойства в существующем дереве.

Обновления в версии Android 9

В Android 9 загрузчик не должен изменять свойства, определенные в DTO, перед передачей унифицированного DTB ядру.

Загрузить DT

Загрузка DT в загрузчик включает в себя сборку, разбиение на разделы и запуск.

Рисунок 1. Типичная реализация загрузки дерева устройств в загрузчике.

  1. Чтобы создать и прошить DTB:

    1a. Используйте DTC ( dtc ) для компиляции DTS ( .dts ) в DTB ( .dtb ). DTB отформатирован как сплющенный DT. 1b. Прошейте файл .dtb в доступное для загрузчика место (подробнее см. ниже).

  2. Для разбиения на разделы определите доступное для времени выполнения загрузчика и доверенное место во флэш-памяти для размещения .dtb . Примеры мест:

    Рисунок 2. Поместите .dtb в загрузочный раздел с помощью
    добавление к image.gz и передача как
    «ядро» в mkbootimg.

    Рисунок 3. Поместите .dtb в уникальный раздел
    (например, раздел dtb).

  3. Чтобы загрузить DTB и запустить ядро:

    • Загрузить .dtb из хранилища в память.
    • Запустить ядро, используя адрес памяти загруженного DT.

Что дальше?

На этой странице подробно описывается типичный рабочий процесс загрузчика для загрузки DT и приводится список общих терминов DT. На других страницах этого раздела описывается, как реализовать поддержку загрузчика , как компилировать , проверять и оптимизировать ваш DTO и как использовать несколько DT . Вы также можете получить подробную информацию о синтаксисе DTO и требуемом форматировании разделов DTO и DTBO .