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

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

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

Обновления в 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 и передача в качестве
    "kernel" to mkbootimg.

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

  3. Для загрузки DTB и запуска ядра:

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

Что дальше?

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