赞
踩
在做Android8时,发现在dts中引入了dto。设备树叠加层(DTO)可让主要的设备树(DTB)叠加到设备树上。使用DTO的引导程序可以维护系统芯片(SOC)DT,并动态叠加针对特定设备的DT,从而向树中添加节点并对先用树中的属性进行更改。也就是SOC的设备节点作为DTB,其他设备作为DTO,DTO可以对DTB中的节点进行引用和修改。实现DTO包括分割设备树,编译,分区和运行。
分割DT
首先将设备树分割成两部分:
主DT。由SOC供应商提供的SOC公用部分和默认配置。
叠加DT。由原始设计制造商(ODM)/原始设备制造商(OEM)提供的设备专属配置。
编译主DT和叠加DT
要编译主DT,请执行以下操作:
将朱.dts编译为.dtb文件。
将.dtb文件刷写到引导加载程序在运行时可访问的分区。
要编译叠加DT,请执行以下操作:
将叠加DT .dts编译为.dtbo文件。虽然文件格式与已格式化为扁平化设备树的.dtb文件相同,但是用不同的文件扩展名可以将其与主DT分开来。
将.dtbo文件刷写到引导加载程序在运行时可访问的分区。
对DT进行分区
在闪存中确定加载程序在运行时可访问和可信的位置以放入.dtb和.dtbo。
朱DT的实例位置:
引导分区的一部分,已附加到内核(image.gz)
单独的DT blob(.dtb),位于专用的(dtb)中。
在引导加载程序中运行
将 .dtb 从存储加载到内存中
将 .dtbo 从存储加载到内存中
用 .dtbo 叠加 .dtb 以形成合并的 DT
启动内核(已给定合并 DT
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。