- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DeviceTree简介.doc
简介
主要功能是不在代码中硬编码设备信息,而是用专门的文件来描述。整个系统的设备节点会形成一个树,设备节点里可以设置属性。官网在?。入门指南请参考/Device_Tree_Usage?。Linux上一些状况请参考kernel/Document/devicetree/,其中bindings子目录描述各种设备的devicetree的描述方法,各厂商的各类设备的描述方法都可能不同。
?MSM8974 上DeviceTree简介?
设备描述源文件放在kernel/arch/arm/boot/dts/下后缀是.dts或.dtsi,一般.dtsi是被其它文件包含的,只用dtc编译.dts文件。Build时会用dtc命令把需要的设备描述文件编译成.dtb文件,并放到到bootimage的某个地方。对设备描述的解析处理实现主要在kernel/drivers/of/目录中,需要配置CONFIG_OF。启动过程中,bootloader(默认是bootable/bootloader/lk)会根据机器硬件信息选择合适的devicetree装入内存,把地址等相关信息传给kernel。kernel中,会根据传入的信息创建设备。
版本声明和包含其它文件
一般.dts文件会先进行版本申明,如下面的第一行。.dts或.dtsi文件也可能包含其它.dtsi文件,如下面的3/4行。
/dts-v1/;
/include/ msm8974-v2.2.dtsi
/include/ msm8974-mtp.dtsi
关于取地址符号的使用
如经常碰到类似下面的写法。没找到相关文档说明(看源码来理解也很费劲)。作用应该是对之前定义过的设备(例子中是soc)进行补充描述。
soc {
android_usb@fe8050c8 {
compatible = qcom,android-usb;
reg = 0xfe8050c8 0xc8;
qcom,android-usb-swfi-latency = 1;
};
......
};
哪些文件被编入二进制映像
有两种方式使用DT。第一种可包含多个dtb,编入dt.img,放入boot.img。第二种只包含一个dtb,直接追加到kernelimage后面,放入boot.img。dtc编译在kernel/AndroidKernel.mk中定义。先用定义DTS_NAMES变量,它的每个entry(记为DTS_NAME变量,下面的$$arch)中可能有arch和rev两部分,和.config中相关配置有关,用下面方法找出。
while () {
$$a = $$1 if /CONFIG_ARCH_((?:MSM|QSD|MPQ)[a-zA-Z0-9]+)=y/;
$$r = $$1 if /CONFIG_MSM_SOC_REV_(?!NONE)(\w+)=y/;
$$arch = $$arch.lc($$a$$r ) if /CONFIG_ARCH_((?:MSM|QSD|MPQ)[a-zA-Z0-9]+)=y/
} print $$arch;
得到上述DTS_NAMES变量,用$(DTS_NAME)*.dts方式去kernel/arch/arm/boot/dts/下匹配。见下面的定义,其中cat命令就是生成带DT的kernelimage。
define append-dtb
mkdir -p $(KERNEL_OUT)/arch/arm/boot;\
$(foreach DTS_NAME, $(DTS_NAMES), \
$(foreach d, $(DTS_FILES), \
$(DTC) -p 1024 -O dtb -o $(call DTB_FILE,$(d)) $(d); \
cat $(KERNEL_ZIMG) $(call DTB_FILE,$(d)) $(call ZIMG_FILE,$(d));))
endef
如,msm8974的MR2的ES1版中,DTS_NAMES变量的值为msm8974 msmsamarium,会编入的文件有。
msm8974pro-ab-cdp.dts msm8974pro-ac-mtp.dts msm8974-v1-mtp.dts msm8974-v2.0-1-fluid.dts msm8974-v2.2-fluid.dts msmsamarium-sim.dts
msm8974pro-ab-fluid.dts msm8974-v1-cdp.dts msm8974-v1-rumi.dts msm8974-v2.0-1-liquid.dts msm8974-v2.2-liquid.dts
msm
您可能关注的文档
最近下载
- 涉农专业班级建设方案(班主任能力比赛).pdf VIP
- 人教(2019)A版最新教材高中数学课后习题答案大全.pdf VIP
- colorgate v8快速操作手册中文.pdf VIP
- 第5课 共同保卫伟大祖国 课件中华民族大团结.ppt VIP
- 部编版四年级上册语文第一单元大单元教学设计.docx VIP
- 给水排水工程顶管技术规程CECS_246:2008.pdf VIP
- 2024年信息科技中考考试题库及答案3.pdf VIP
- 《土木工程施工48课时》课程教学大纲.doc VIP
- Unit 3 My week第2课时 Story time(教学课件)英语译林版三起四年级上册(新教材).ppt
- 01企税 答案 V3.8企业所得税年度(A类)网上申报教学版案例01-20211008.xlsx VIP
文档评论(0)