fex是全志在早期平台上使用的板级配置描述文件,其编译出的bin在boot期间传递给内核。这套机制并不被现在的mainline内核支持,全志后期的平台也开始采用和mainline内核相同的设备树机制来向内核传递板级配置。如果能有简便的方法将fex直接转换为设备树文件,将极大地方便早期平台的mainline工作。linux-sunxi的Wiki页面中提到,近期的全志平台的BSP中仍然有fex的存在,并通过BSP中提供的一个特殊版本的dtc编译器编译到设备树。我尝试使这个dtc编译器能独立于BSP中的内核编译出来,然后用它做了一次fex到设备树的转换。中间有很多失败和patch暂时省略。
项目的GitHub仓库在这里
目前的进展是,已知这个编译器是依赖一种特殊的设备树文件工作的,这些依赖在仓库的./dts/目录下。其中最关键的是.${PACK_CHIP}-soc.dtb.dts.tmp文件,似乎包含了那个芯片上所有外设的设备树字段。现在只从BSP中获取到了两个SoC (sun8iw6-A83T, sun8iw15-R311)对应的这种设备树文件。我手上没有这两个芯片的设备,因此转换出来的设备树是否在主线内核上可用暂时存疑;并且想要利用这个编译器转化其他针对芯片的fex的话,应该要手动编写对应的soc.dtb.dts.tmp文件才行。
这是近几天初步的一些成果,我不太熟悉设备树这一块,手上全志的设备也不多,要是有对这项工作感兴趣的大佬参与进来就好了
离线