首页 > 编程知识 正文

dtb反编译dts,dts好还是杜比好

时间:2023-05-03 23:30:03 阅读:42664 作者:787

另一方面,MTK平台从一开始就使用DWS配置GPIO,非常方便直观; 但是,在kernel版本升级过程中使用设备树后,所有硬件信息都是用DTS编写的,但MTK仍然保留DWS。 让我们看看MTK如何将DWS转换为DTSI。

kernel使用的DWS路径: drivers/misc/mediatek/dws/mt 6752/mt 6752 _ 64.dws vendormediatekproprietarycustom mt codegen.DWS也存在,但默认情况下,不使用此dws转换为DTSI的工具kernel-4.14/scripts/drvgen/drvgen.MK核心代码:phony : drvgendrvgen 3360 $ (drv gen _ frv (fk 3360 $ (drv gen _ tool ) $ ) $(DWS_FILE ) $ () ) ) ) 65dobase _ prj=` grep-m1 ' # include [' ].*/cust. dtsi [' ] $ I|sed ' s/# include (dws_path=$(srctree )/$ ) drvgen_path )/$$base_prj.dws; if [ -f $$dws_path ]; then mkdir -p $$prj_path; $(python ) $ ) $(DRVGEN_TOOL ) $ dws _ path $ $ prj _ path $ $ prj _ path cust _ dtsi; fi done最终生成的DTSI文件路径objkernel _ objarcharm 64bootdtsmt 6752 _ 64cust _ dtsi具体是如何生成的

二.生成MTK DTBO,其使用的哪个DTS文件

相关文档: scripts/drvgen/drvgen.mk相关代码my _ dtbo _ id :=0definemk _ dtb oimg _ CFG echo $ (1) $ ) 2; echo'id=$(my_dtbo_id ) ) $ ) 2; ($ ) evalmy_dtbo_id:=$ ) shellecho$$(($ ) (my_dtbo_id ) ) ) ) ) endefdtbo ) ) ) cmp -s $@.tmp $@; then mv $@.tmp $@; else rm $@.tmp; fi由此可见,这里生成了名为objKERNEL_OBJ的DTBOimg.cfg文件,该文件指定DTBO从哪个DTS文件生成dtbo 设备/mediatek/build/tasks/dtbo.MK.kati _ restat 3360 $ (# mkdtimgisfromsystem/libufdt/utils/src$(board_prebuilt_dtboimage ) : private _ tool :=$ (host _ out mkd timg $ (board _ pre built _ dtb oimage ) DTBoimg.CFG$ ) board _ pre build mkd timg $ (board _ pre built _ dtb oimage ) :$(kernel_out )/dtb oimg.CFG $ (hide ) mkdir-p $ (dir $ @ ) ) ) ) 65 IFEQ($(strip$ ) MTK _ dtbo _ upgrade _ from _ ) $ ) notdir $ (board _ pre built _ dtb oimage ) ) odmdtboimage 3360 $ (product _ dtb oimage ) ) odmdtboimage elsedroidcore 33333333 现在,使用mkdtimg工具生成dtboimg.cfg到dtbo.img和MTK DTB DTBO使用的DTS文件

文件: kernel-4.14/scripts/drv gen/drv gen.mkifeq ($ (strip $ (config _ arm 64 )、 y ) main_dt_names3360=$ ) ) ) ) ) ) $ (config _ build _ arm 64 _ appended _ dtb _ image _ names ) ) $ (config _ build _ arm _ appended _ dtb _ image _ names ) ) endififeq ) $(strip$(config_arm64 ), y ) proj _ $ (config _ build _ arm 64 _ dtb _ overlay _ image _ names ) ) elseproj_dt_names:=$ ) subst$_ $ (config _ build _ arm _ dtb _ overlay _ image _ names ) ) endif文件: kernel的config文件config _ build _ arm 65374; apper iatek/mt6752_64'mt6752_64.DTS是用于生成DTBO的ABS _ dtb _ files 3360=$ (abspath $ (add suffix.dtb, $ ) addprefix$(objtree )/arch/$(SRCarch )/boot/dts/() ) ) ) 652 $(proj_dt_names ) ) ABS BBS MTK.dtb($(objtree )/dtb img.CFG : forcerm-f $ @.tmp $ ) Foreachf,$(ABS_dtB2_files ),$ ) callMK_ cmp -s $@.tmp $@; then mv $@.tmp $@; else rm $@.tmp; 名为fi的dtbimg.cfg文件的内容是mtk.dtb的路径其他位置mtk.dtb的定义kenv.MK :1093360 kernel _ dtb _ file :=$ (kernel _ out (/arcarcc dtbifdefboard _ pre built _ dtb image _ dir installed _ MTK _ dtb _ target 3360=$ (-f $ (installed _ MTK _ dtb _ tararget ) then mkdir-p $ (dir $ (installed _ MTK _ dtb _ target ); touch $ (installed _ MTK _ dtb _ target; fi$(installed_MTK_dtb_target ) : $ (installed _ kernel _ target ) mkdir-p $ (dir $ @ CP-f $ ) )。 mt 6752 _ 64objkernel _ objdtb img.CFG ' MTK.dtb路径' outtargetproduct mt 6752 _ 64 _ obj _ packaging MTK.dtb ' MTK.dtb来源:文件: arch/arm 64/boot/makefile dtb _ names 3360=$ (subst $ ) $ ) $(DTB_NAMES ) ) elsedtb_list:=$(dtB-y ) endif dtb _ objs3360=$ (endif dtb ) ) objs 3360

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。