A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Usa varios DT
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Muchos proveedores de SoC y ODM admiten el uso de varios árboles de dispositivos (DT) en un dispositivo, lo que permite que una imagen alimente varios SKU o parámetros de configuración. En esos casos, el bootloader identifica el hardware y carga el DT correspondiente durante el tiempo de ejecución:

Figura 1: Varias superposiciones del árbol de dispositivos (DTO) en el bootloader
Nota: No es obligatorio usar varios DT.
Configurar
Para agregar compatibilidad con varios DT al modelo de DTO, configura una lista de DT principales y otra lista de DT superpuestos.

Figura 2: Implementación de DTO de tiempo de ejecución para varios DT
El bootloader debe poder hacer lo siguiente:
- Lee el ID de SoC y selecciona el DT principal correspondiente.
- Lee el ID de la placa y selecciona el conjunto de DT de superposición según corresponda.
Solo se debe seleccionar un DT principal para usarlo durante el tiempo de ejecución. Se pueden seleccionar varios DT de superposición, pero deben ser compatibles con el DT principal elegido. El uso de varias superposiciones puede ayudar a evitar el almacenamiento de una superposición por placa dentro de la partición de DTBO y permitir que el bootloader determine el subconjunto de superposiciones requeridas según el ID de la placa (o posiblemente a través de la comprobación de los periféricos). Por ejemplo, el tablero A puede necesitar los dispositivos que agregaron las superposiciones 1, 3 y 5, mientras que el tablero B puede necesitar los dispositivos que agregaron las superposiciones 1, 4 y 5.
Partición
Para particionar, determina una ubicación confiable y accesible durante el tiempo de ejecución del bootloader en la memoria flash para almacenar los DTB y DTBO (el bootloader debe poder ubicar estos archivos en el proceso de coincidencia). Ten en cuenta que los DTB y los DTBO no pueden
existir en la misma partición. Si tus DTB o DTBO están en la partición dtb
/dtbo
, usa la estructura de la tabla y el formato de encabezado que se detalla en Formato de partición de DTB y DTBO.
Ejecutar en el bootloader
Para ejecutarlo, haz lo siguiente:
- Identifica el SoC y carga el .dtb correspondiente del almacenamiento en la memoria.
- Identifica la placa y carga el
.dtbo
correspondiente del almacenamiento en la memoria.
- Superpone el
.dtb
con el .dtbo
para que sea un DT combinado.
- Inicia el kernel con la dirección de memoria del DT fusionado.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-26 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-26 (UTC)"],[],[],null,["# Use multiple DTs\n\nMany SoC vendors and ODMs support the use of multiple device trees (DTs) on a device,\nenabling one image to power multiple SKUs or configurations. In such cases, the\nbootloader identifies the hardware and loads the corresponding DT at runtime:\n\n**Figure 1.** Multiple device tree overlays (DTOs) in bootloader.\n\n**Note:** Using multiple DTs isn't mandatory.\n\nSet up\n------\n\nTo add support for multiple DTs to the DTO model, set up a list of main DTs\nand another list of overlay DTs.\n\n**Figure 2.** Runtime DTO implementation for multiple DTs.\n\nThe bootloader should be able to:\n\n- Read the SoC ID and select the corresponding main DT.\n- Read the board ID and select the set of overlay DTs accordingly.\n\nOnly one main DT should be selected for use at runtime. Multiple overlay DTs\nmay be selected but they must be compatible with the chosen main DT. Using\nmultiple overlays can help avoid storing one overlay per board within the DTBO\npartition and enable the bootloader to determine the subset of required overlays\nbased on the board ID (or possibly by probing the peripherals). For\nexample, Board A may need the devices added by the overlays 1, 3, and 5 while\nBoard B may need the devices added by the overlays 1, 4, and 5.\n\nPartition\n---------\n\nTo partition, determine a bootloader runtime-accessible and trusted location\nin flash memory to store the DTBs and DTBOs (bootloader must be able to locate\nthese files in the matching process). Keep in mind that DTBs and DTBOs cann't\nexist in the same partition. If your DTBs/DTBOs are in the\n`dtb`/`dtbo` partition, use the table structure and header\nformat detailed in [DTB and DTBO\npartition format](/docs/core/architecture/dto/partitions).\n\nRun in bootloader\n-----------------\n\nTo run:\n\n1. **Identify the SoC** and load the corresponding .dtb from storage into memory.\n2. **Identify the board** and load the corresponding `.dtbo` from storage into memory.\n3. Overlay the `.dtb` with the `.dtbo` to be a merged DT.\n4. Start kernel given the memory address of the merged DT."]]