AVB(二):DTO 支持

简介: AVB(二):DTO 支持

设备树叠加层 (DTO) 扩展了现有的扁平化设备树 (FDT) 实现,让用户空间可以通过加载用于修改原始数据的额外叠加层 FDT,在运行时修改内核中的初始设备树数据。

Android 不要求在运行时从用户空间更新 DT blob,而是建议供应商借助 libfdt 或 libufdt 在引导加载程序中添加设备树补丁程序。

1、Android DTO 支持

Android 对 DTO 的支持因 Android 版本而异:

  • 1、Android 7.x 及更低版本不要求提供设备树支持,也没有针对供应商如何将 DT blob 传递给内核或在何处存储这些 blob 提供建议。
  • 2、Android 8.x 建议提供设备树支持,以将内核的板专属部分和仅限 SoC 访问的部分区分开来。
  • 3、Android 9 及更高版本要求必须存在设备树 blob 叠加层 (DTBO) 分区并且至少应用一个 DTO

2、DTO 分区要求

大多数 Android 设备都会在构建时将 DT blob 附加到内核,而引导加载程序会从内核加载 blob

不过,由于 DT blob 被视为系统芯片 (SoC) 内核的一部分,因此 Android 对如何构建或存储 DT blob 没有特定要求。

设备可以将 DT blob 附加到内核,也可以将 blob 存储在单独的分区中;唯一的要求是引导加载程序应该知道如何加载以及从何处加载 DT blob。

如需支持 DTO,设备应具备以下条件:

  • 1、每个内核映像都应具有一个适用于板专属 DT 叠加层的 DTBO 分区,并且引导加载程序必须知道从何处以及如何加载 SoC 专属 DTB。分区大小取决于编译 SoC 内核所需的更改量;选择分区大小时需要为未来更新留出空间,通常,8 MB 大小的分区已绰绰有余。
  • 2、针对 A/B 设备更新了 DTO 分区。恢复内核与 Android 内核相同,但分区必须针对 A/B 设备设置,因为这样才可以通过无线下载 (GOTA) 更新进行更新。分区大小取决于设备以及主 SoC 内核 DT Blob 上所需的更改数量。

3、DTO 引导加载程序要求

要支持 DTO,引导加载程序应具备以下条件:

  • 1、知道如何以及从何处(考虑使用 A/B 设备的启动槽)以供应商独有的方式加载 SoC 专属 DT blob(通常是从内核映像的末端提取,因为 blob 会附加到内核)。
  • 2、知道如何以及从何处以供应商独有的方式加载叠加层 DT Blob。
  • 3、将组合设备树传递给内核之前,使用叠加层修补主 DT blob。
目录
相关文章
|
1月前
|
存储 传感器 JSON
Rockchip系列之VendorStorage 新增framework封装VendorStorageManager访问(4)
Rockchip系列之VendorStorage 新增framework封装VendorStorageManager访问(4)
24 0
|
前端开发 JavaScript 测试技术
配置config和封装storage
最近在学习Vue3,现在来说一下自己的学习感受,并且分享一些小知识点。
|
Java
Java通用方法 -- 唯一识别码(universally unique identifier)(UUID)实现
提供通用唯一识别码(universally unique identifier)(UUID)实现
126 0
|
存储 API 数据库
Entity Framework 约定
Entity Framework 约定
126 0
|
JSON 数据格式
OData metadata 定义中,entity type key 的作用是什么
OData metadata 定义中,entity type key 的作用是什么
127 0
OData metadata 定义中,entity type key 的作用是什么
SAP Cloud for Customer 2102版本如何使用Key User Tool创建扩展字段 - extension field
SAP Cloud for Customer 2102版本如何使用Key User Tool创建扩展字段 - extension field
SAP Cloud for Customer 2102版本如何使用Key User Tool创建扩展字段 - extension field

热门文章

最新文章