Uso de múltiples DT

Muchos proveedores de SoC y ODM admiten el uso de múltiples DT en un dispositivo, lo que permite que una imagen impulse múltiples SKU/configuraciones. En tales casos, el gestor de arranque identifica el hardware y carga el IME correspondiente en tiempo de ejecución:

Figura 1. Superposición de varios árboles de dispositivos en el gestor de arranque.

Nota: El uso de varios DT no es obligatorio.

configurando

Para agregar compatibilidad con varios DT al modelo DTO, configure una lista de DT principales y otra lista de DT superpuestos.

Figura 2. Implementación de DTO en tiempo de ejecución para varios DT.

El gestor de arranque debería poder:

  • Lea el ID de SoC y seleccione el árbol de dispositivos principal correspondiente, y
  • Lea el ID de la placa y seleccione el conjunto de árboles de dispositivos superpuestos según corresponda.

Solo se debe seleccionar un IME principal para su uso en tiempo de ejecución. Se pueden seleccionar varios IME superpuestos, pero deben ser compatibles con el IME principal elegido. El uso de varias superposiciones puede ayudar a evitar el almacenamiento de una superposición por placa dentro de la partición DTBO y permitir que el gestor de arranque determine el subconjunto de superposiciones requeridas en función de la identificación de la placa (o posiblemente probando los periféricos). Por ejemplo, la placa A puede necesitar los dispositivos agregados por las superposiciones 1, 3 y 5, mientras que la placa B puede necesitar los dispositivos agregados por las superposiciones 1, 4 y 5.

Fraccionamiento

Para particionar, determine una ubicación confiable y accesible en tiempo de ejecución del cargador de arranque en la memoria flash para almacenar los DTB y DTBO (el cargador de arranque debe poder ubicar estos archivos en el proceso de coincidencia). Tenga en cuenta que los DTB y los DTBO no pueden existir en la misma partición. Si sus DTB/DTBO están en la partición dtb / dtbo , use la estructura de la tabla y el formato de encabezado detallado en Formato de partición DTB/DTBO .

Corriendo en el gestor de arranque

Correr:

  1. Identifique el SoC y cargue el archivo .dtb correspondiente desde el almacenamiento a la memoria.
  2. Identifique la placa y cargue el .dtbo correspondiente desde el almacenamiento a la memoria.
  3. Superponga el .dtb con el .dtbo para que sea un DT fusionado.
  4. Inicie el kernel dada la dirección de memoria del DT fusionado.