【问题记录】如何打包两个dtb文件

   日期:2024-12-26    作者:b1255573 移动:http://mip.riyuangf.com/mobile/quote/33333.html

在项目开发过程中,可能会遇到多个项目使用同一个源码仓库,并且代码是高度复用的,如果在不同的项目中只是代码存在一些差异,会有很好的解决方式去区分,但可能在不同的项目中设备树存在差异性,这个时候会相对来说比较难处理,本文目的就是以RK平台上的芯片为示例来实现将两个项目的dtb文件和内核文件一起打包,并根据不同的设备参数传递不同的设备树给内核进行解析。

【问题记录】如何打包两个dtb文件


 
 
 
 
 
 

目的:将XEPU和EPU项目的dtb文件打包进新的内核升级包。
前提:XEPU和EPU中设备树的源文件(.dts)都是存在的。

 

可以通过make ARCH=xxx rockchip/xxxx.dtb自行测试单独编译dts文件

 

这个脚本会调用打包工具并将打包的文件传递进去。

 
 
 

dtb文件是在启动内核之前将dtb文件传递给内核进行解析的,在EPU和XEPU中如何能将对应的dtb文件传递给相应的设备,这就需要一个标识,可以选择HWID来进行区分EPU和XEPU。

因为HWID是存放在EEPROM内的,所以需要在uboot下编写EEPROM的读操作,由于代码较多,获取HWID代码如下

 
 
 

可以看到 XEPU_DTB_FILE 、 EPU_DTB_FILE 与打包工具中的FDT_PATH_XEPU、FDT_PATH_EPU是对应的,因为最后在检索时就是根据此值来进行区分。
另外,定义了全局指针变量dtb_file是为了传递获取到的具体设备的索引值。在何处会用到呢,必定是在对设备树进行检索时。需要修改代码,将获取到的实际索引值传递进去。


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号