设备树叠加层

设备树 (DT)是一种由命名节点和属性组成的数据结构,用于描述不可发现的硬件。内核(例如 Android 中使用的 Linux 内核)使用 DT 来支持 Android 设备使用的各种硬件配置。硬件供应商提供自己的设备树源 (DTS)文件,这些文件使用设备树编译器编译为设备树 Blob (DTB)文件。然后引导加载程序将使用这些文件。 DTB 文件包含二进制格式的扁平设备树

设备树覆盖 (DTO)使中央设备树 blob (DTB) 能够覆盖在设备树上。使用 DTO 的引导加载程序可以维护片上系统 (SoC) DT 并动态覆盖特定于设备的 DT,向树中添加节点并对现有树中的属性进行更改。

DTBO用于覆盖的设备树 Blob

Android 9 版本中的更新

在 Android 9 中,引导加载程序在将统一设备树 blob 传递到内核之前不得修改设备树覆盖中定义的属性。

加载设备树

在引导加载程序中加载设备树涉及构建、分区和运行。

图 1.在引导加载程序中加载设备树的典型实现。
  1. 创建并刷新设备树 blob:

    1a.使用设备树编译器 ( dtc >) 将设备树源 ( .dts ) 编译为设备树 blob ( .dtb )。设备树 blob 被格式化为扁平设备树。 1b.将.dtb文件闪存到引导加载程序运行时可访问的位置(详细信息如下)。

  2. 要进行分区,请确定闪存中引导加载程序运行时可访问且可信的位置来放置.dtb 。位置示例:

    引导分区
    图 2.通过附加到image.gz并作为“ kernel ”传递给mkbootimg.dtb放入引导分区。
    独特的分区
    图 3..dtb放入唯一的分区(例如dtb分区)。
  3. 要加载设备树 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,向树中添加节点并对现有树中的属性进行更改。

DTBO用于覆盖的设备树 Blob

Android 9 版本中的更新

在 Android 9 中,引导加载程序在将统一设备树 blob 传递到内核之前不得修改设备树覆盖中定义的属性。

加载设备树

在引导加载程序中加载设备树涉及构建、分区和运行。

图 1.在引导加载程序中加载设备树的典型实现。
  1. 创建并刷新设备树 blob:

    1a.使用设备树编译器 ( dtc >) 将设备树源 ( .dts ) 编译为设备树 blob ( .dtb )。设备树 blob 被格式化为扁平设备树。 1b.将.dtb文件闪存到引导加载程序运行时可访问的位置(详细信息如下)。

  2. 要进行分区,请确定闪存中引导加载程序运行时可访问且可信的位置来放置.dtb 。位置示例:

    引导分区
    图 2.通过附加到image.gz并作为“ kernel ”传递给mkbootimg.dtb放入引导分区。
    独特的分区
    图 3..dtb放入唯一的分区(例如dtb分区)。
  3. 要加载设备树 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,向树中添加节点并对现有树中的属性进行更改。

DTBO用于覆盖的设备树 Blob

Android 9 版本中的更新

在 Android 9 中,引导加载程序在将统一设备树 blob 传递到内核之前不得修改设备树覆盖中定义的属性。

加载设备树

在引导加载程序中加载设备树涉及构建、分区和运行。

图 1.在引导加载程序中加载设备树的典型实现。
  1. 创建并刷新设备树 blob:

    1a.使用设备树编译器 ( dtc >) 将设备树源 ( .dts ) 编译为设备树 blob ( .dtb )。设备树 blob 被格式化为扁平设备树。 1b.将.dtb文件闪存到引导加载程序运行时可访问的位置(详细信息如下)。

  2. 要进行分区,请确定闪存中引导加载程序运行时可访问且可信的位置来放置.dtb 。位置示例:

    引导分区
    图 2.通过附加到image.gz并作为“ kernel ”传递给mkbootimg.dtb放入引导分区。
    独特的分区
    图 3..dtb放入唯一的分区(例如dtb分区)。
  3. 要加载设备树 blob 并启动内核:

    • .dtb从存储加载到内存中。
    • 使用加载的DT的内存地址启动内核。

下一步是什么?

本页详细介绍了加载 DT 的典型引导加载程序工作流程,并提供了常见 DT 术语的列表。本节中的其他页面描述了如何实现引导加载程序支持,如何编译、验证和优化 DTO ,以及如何使用多个 DT 。您还可以获得有关DTO 语法和所需的DTO/DTBO 分区格式的详细信息。