赞
踩
Device Tree简介
一、概念
1、Device Tree 是一种描述硬件的数据结构,可以把嵌入式系统资源抽象成一颗树形结构,可以直观查看系统资源分布;内核可以识别这棵树,并根据它展开出Linux内核的platfrom_device等。
2、Device Tree 改变了原来用hardcode方式将HW配置信息嵌入到内核代码的方法,消除了arch/arm下大量的冗余编码。使得各个厂商可以更专注于driver开发,开发流程遵从mainline kernel的规范。
二、术语介绍
1、FDT: 嵌入式PowerPC中,为了适应内核发展&&嵌入式PowerPC平台的千变万化,推出了Standard for Embedded Power Architecture Platfrom Requirements(ePAPR)标准,吸收了Open Firmware的优点,在U-boot引入了扁平化设备树FDT接口,使用一个单独的FDT blob对象将系统硬件信息传递给内核。
2、DTS: (Device Tree Source File)设备树源码文件,包含用户配置信息。
对于32bit Arm架构,dts文件存放在 arch/arm/boot/dts路径下。
对于64bit Arm架构,dts文件存放在 arch/arm64/boot/dts路径下。
DTB: (Device Tree Blob File)设备树二进制文件,它是DTS被DTC编译后二进制格式的Device Tree描述,可由Linux内核解
析,并为设备驱动提供硬件配置信息。
三、如何配置
1、一个完整的配置可以包括两个部分:
a. soc级配置文件:定义了SOC级配置,如设备时钟、中断等资源;
b. board级配置文件:定义了板级配置,包含一些板级差异信息。
c.sys_config.fex配置文件(可以存在,也可以不存在),优先级比board级配置、soc级配置都高。
2、配置文件说明
a. dtb文件,依赖于xxxwlpl-${board}.dts,而xxxwlpl-${board}.dtsi又包含xxxwlpl.dtsi,当board级配置文件跟soc级配置文件出现相同节点属性时,Board级配置文件的属性值会去覆盖soc级的相同属性值。
b.xxxwlpl-soc.dts文件跟xxxwlpl-tl.dts与xxxwlpl-perfl.dts一样,都属于board配置文件。该配置文件定义为一种通用的board配置文件,主要为了防止在移植新的方案时,没有在内核arch/arm/boot/dts目录下定义方案的board级配置文件。如果出现这样的情况,内核编译的时候,就会采取xxxwlpl-soc.dts作为该方案的board级配置文件。
3、配置sys_config.fex
4、配置devicetree
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。