设备树 (DT)是一种由命名节点和属性组成的数据结构,用于描述不可发现的硬件。内核(例如 Android 中使用的 Linux 内核)使用 DT 来支持 Android 设备使用的各种硬件配置。硬件供应商提供自己的设备树源 (DTS)文件,这些文件使用设备树编译器编译为设备树 Blob (DTB)文件。然后引导加载程序将使用这些文件。 DTB 文件包含二进制格式的扁平设备树。
设备树覆盖 (DTO)使中央设备树 blob (DTB) 能够覆盖在设备树上。使用 DTO 的引导加载程序可以维护片上系统 (SoC) DT 并动态覆盖特定于设备的 DT,向树中添加节点并对现有树中的属性进行更改。
Android 9 版本中的更新
在 Android 9 中,引导加载程序在将统一设备树 blob 传递到内核之前不得修改设备树覆盖中定义的属性。
加载设备树
在引导加载程序中加载设备树涉及构建、分区和运行。

创建并刷新设备树 blob:
1a.使用设备树编译器 (
dtc
>) 将设备树源 (.dts
) 编译为设备树 blob (.dtb
)。设备树 blob 被格式化为扁平设备树。 1b.将.dtb
文件闪存到引导加载程序运行时可访问的位置(详细信息如下)。要进行分区,请确定闪存中引导加载程序运行时可访问且可信的位置来放置
.dtb
。位置示例:引导分区 图 2.通过附加到 image.gz
并作为“kernel
”传递给mkbootimg
将.dtb
放入引导分区。独特的分区 图 3.将 .dtb
放入唯一的分区(例如dtb
分区)。要加载设备树 blob 并启动内核:
- 将
.dtb
从存储加载到内存中。 - 使用加载的DT的内存地址启动内核。
- 将
下一步是什么?
本页详细介绍了加载 DT 的典型引导加载程序工作流程,并提供了常见 DT 术语的列表。本节中的其他页面描述了如何实现引导加载程序支持,如何编译、验证和优化 DTO ,以及如何使用多个 DT 。您还可以获得有关DTO 语法和所需的DTO/DTBO 分区格式的详细信息。
,设备树 (DT)是一种由命名节点和属性组成的数据结构,用于描述不可发现的硬件。内核(例如 Android 中使用的 Linux 内核)使用 DT 来支持 Android 设备使用的各种硬件配置。硬件供应商提供自己的设备树源 (DTS)文件,这些文件使用设备树编译器编译为设备树 Blob (DTB)文件。然后引导加载程序将使用这些文件。 DTB 文件包含二进制格式的扁平设备树。
设备树覆盖 (DTO)使中央设备树 blob (DTB) 能够覆盖在设备树上。使用 DTO 的引导加载程序可以维护片上系统 (SoC) DT 并动态覆盖特定于设备的 DT,向树中添加节点并对现有树中的属性进行更改。
Android 9 版本中的更新
在 Android 9 中,引导加载程序在将统一设备树 blob 传递到内核之前不得修改设备树覆盖中定义的属性。
加载设备树
在引导加载程序中加载设备树涉及构建、分区和运行。

创建并刷新设备树 blob:
1a.使用设备树编译器 (
dtc
>) 将设备树源 (.dts
) 编译为设备树 blob (.dtb
)。设备树 blob 被格式化为扁平设备树。 1b.将.dtb
文件闪存到引导加载程序运行时可访问的位置(详细信息如下)。要进行分区,请确定闪存中引导加载程序运行时可访问且可信的位置来放置
.dtb
。位置示例:引导分区 图 2.通过附加到 image.gz
并作为“kernel
”传递给mkbootimg
将.dtb
放入引导分区。独特的分区 图 3.将 .dtb
放入唯一的分区(例如dtb
分区)。要加载设备树 blob 并启动内核:
- 将
.dtb
从存储加载到内存中。 - 使用加载的DT的内存地址启动内核。
- 将
下一步是什么?
本页详细介绍了加载 DT 的典型引导加载程序工作流程,并提供了常见 DT 术语的列表。本节中的其他页面描述了如何实现引导加载程序支持,如何编译、验证和优化 DTO ,以及如何使用多个 DT 。您还可以获得有关DTO 语法和所需的DTO/DTBO 分区格式的详细信息。
,设备树 (DT)是一种由命名节点和属性组成的数据结构,用于描述不可发现的硬件。内核(例如 Android 中使用的 Linux 内核)使用 DT 来支持 Android 设备使用的各种硬件配置。硬件供应商提供自己的设备树源 (DTS)文件,这些文件使用设备树编译器编译为设备树 Blob (DTB)文件。然后引导加载程序将使用这些文件。 DTB 文件包含二进制格式的扁平设备树。
设备树覆盖 (DTO)使中央设备树 blob (DTB) 能够覆盖在设备树上。使用 DTO 的引导加载程序可以维护片上系统 (SoC) DT 并动态覆盖特定于设备的 DT,向树中添加节点并对现有树中的属性进行更改。
Android 9 版本中的更新
在 Android 9 中,引导加载程序在将统一设备树 blob 传递到内核之前不得修改设备树覆盖中定义的属性。
加载设备树
在引导加载程序中加载设备树涉及构建、分区和运行。

创建并刷新设备树 blob:
1a.使用设备树编译器 (
dtc
>) 将设备树源 (.dts
) 编译为设备树 blob (.dtb
)。设备树 blob 被格式化为扁平设备树。 1b.将.dtb
文件闪存到引导加载程序运行时可访问的位置(详细信息如下)。要进行分区,请确定闪存中引导加载程序运行时可访问且可信的位置来放置
.dtb
。位置示例:引导分区 图 2.通过附加到 image.gz
并作为“kernel
”传递给mkbootimg
将.dtb
放入引导分区。独特的分区 图 3.将 .dtb
放入唯一的分区(例如dtb
分区)。要加载设备树 blob 并启动内核:
- 将
.dtb
从存储加载到内存中。 - 使用加载的DT的内存地址启动内核。
- 将
下一步是什么?
本页详细介绍了加载 DT 的典型引导加载程序工作流程,并提供了常见 DT 术语的列表。本节中的其他页面描述了如何实现引导加载程序支持,如何编译、验证和优化 DTO ,以及如何使用多个 DT 。您还可以获得有关DTO 语法和所需的DTO/DTBO 分区格式的详细信息。