Superposiciones del árbol de dispositivos

Un árbol de dispositivos (DT) es una estructura de datos de nodos y propiedades con nombre que describen el hardware no detectable. Kernels, como el kernel Linux en Android, usan DT para admitir una amplia variedad de configuraciones de hardware utilizadas en dispositivos con tecnología Android. Los proveedores de hardware suministran su propio árbol de dispositivos archivos fuente (DTS), que se compilan en el archivo de BLOB del árbol de dispositivos (DTB) con el compilador de árbol de dispositivos Luego, el editor usa estos archivos bootloader. El archivo DTB contiene un árbol de dispositivos plano con formato binario.

Una superposición del árbol de dispositivos (DTO) permite que una DTB central se superponga a la DT (un BLOB del árbol de dispositivos para la superposición (DTBO)). Un bootloader que usa DTO puede mantener el sistema en chip (SoC) y se superponen de forma dinámica a un DT específico para un dispositivo, lo que agrega nodos al árbol. y hacer cambios en las propiedades del árbol existente.

Actualizaciones en la versión de Android 9

En Android 9, el bootloader no debe modificar el propiedades definidas en las DTO antes de pasar la DTB unificada al kernel.

Carga una DT

La carga de un DT en el bootloader implica compilar, particionar y ejecutar.

Figura 1: Implementación típica para la carga del árbol de dispositivos en el bootloader.

  1. Para crear la DTB y escribirla en la memoria flash, haz lo siguiente:

    1a. Usa el DTC (dtc) para compilar DTS (.dts) en una DTB (.dtb). La DTB tiene el formato de una DT acoplada. 1b. Escribe el archivo .dtb en la memoria flash de una ubicación accesible desde el tiempo de ejecución del bootloader (se detallan a continuación).

  2. Para particionar, determina una ubicación de confianza y accesible para el tiempo de ejecución del bootloader en la memoria flash para colocar .dtb. Ejemplos de ubicaciones:

    Figura 2: Coloca .dtb en una partición de inicio. Para ello,
    agrega a image.gz y pasa como
    “kernel” a mkbootimg.

    Figura 3: Coloca .dtb en una partición única
    (por ejemplo, una partición de dtb).

  3. Para cargar la DTB y, luego, iniciar el kernel:

    • Carga .dtb del almacenamiento en la memoria.
    • Inicia el kernel con la dirección de memoria de la DT cargada.

¿Qué sigue?

En esta página, se detalla un flujo de trabajo típico del bootloader para cargar un DT y se proporciona una lista de términos comunes de la DT. En otras páginas de esta sección, se describe cómo implementar compatibilidad con el bootloader, cómo compilar, verificar y cómo optimizar tu DTO y cómo usar varios DT. Puedes También puedes obtener detalles sobre la sintaxis de DTO y obligatorio. Formateo de particiones DTO y DTBO.