bootloader
引导内核时,
ARM
寄存器
r2
会将
.dtb
的首地址传给内核,内核根据该地址,解析
.dtb
中根节点的
compatible
属性,将该属性与内核中预先定义
machine_desc
结构体的
dt_compat
成员做匹配,得到最匹配的一个
machine_desc
。
一 、
设备树简介
arm-linux
内核在
3.0
版本以后,不再使用板级文件添加设备驱动信息了,而是使用设备树进行添加
.
这样的好处是,对于相同
SOC
芯片的不同板卡,只需更换设备树文件
.dtb
即可实现不同板卡的无差异支持。
二 、
AM5728
设备树继承关系图
am57xx-beagle-x15.dts/dra7-evm.dts
,该文件描述连接到主芯片的设备信息,比如引脚复用信息,
gpio
定义,
i2c
芯片,
spi
芯片等等
它引用了
dra74x.dtsi
文件
dra74x.dtsi
,该文件描述
dra74x/am572x
系列芯片的核心框架,
包括
2
个
cortex a15 cpu
结点,
2
个
c66x dsp
结点,
4
个
maibox
结点
1
个
dss
输出结点
dra74x.dtsi
文件引用了
dra7.dtsi
文件
dra7.dtsi
,该文件描述了
dra7x/am572x/am571x
系列芯片共同的片上资源和总线控制器,比如
5
个
i2c
控制器结点,
10
个
uart
结点,
2
个
ethernet
结点等等
dra7.dtsi
文件引用了
skeleton.dtsi
文件
skeleton.dtsi
,所有
arm
核心设备树文件都包含该
sk
eleton.dtsi
三、
AM5718
设备树继承关系图
am571x-idk.dts
,该文件描述连接到主芯片的设备信息,比如引脚复用,
gpio
定义,
i2c
芯片,
spi
芯片等等
它引用了
dra72x.dtsi
文件
dra72x.dtsi
,该文件描述
dra72x/am571x
系列芯片的核心框架,
包括
1
个
cortex a15 cpu
结点,
1
个
c66x dsp
结点,
2
个
maibox
结点
1
个
dss
输出结点
dra72x.dtsi
文件引用了
dra7.dtsi
文件
dra7.dtsi
,该文件描述了
dra7x/am572x/am571x
系列芯片共同的片上资源和总线控制器,比如
5
个
i2c
结点控制器,
10
个
uart
结点,
2
个
ethernet
结点等
dra7.dtsi
文件引用了
skeleton.dtsi
文件
skeleton.dtsi
,所有
arm
核心设备树文件都包含该
skeleton.dtsi
请教技术,
linux4.1
版本
devicetree
方式怎么做
spi
驱动开发?
请教技术,
linux4.1
版本
devicetree
方式怎么做
IIC
驱动开发?
请教技术,
linux4.1
版本
devicetree
方式怎么做
pcie
驱动开发?
请教技术,
linux4.1
版本
devicetree
方式怎么做复位按键实现?
请教技术,
linux4.1
版本
IIC
定义?
注:
am5728
有
5
个
i2c
控制器,其中
i2c1
和
i2c2
是标准的
i2c
控制器,支持
100KHZ
和
400KHZ
模式
i2c3
,
i2c4
,
i2c5
不仅仅支持标准的
i2c
速率,还支持
HS
模式,即高达
3.4MHZ
的传输速率
因此如果
i2c
芯片的速率是
400KHZ
,则
i2c1 ~ i2c5
都没有问题
如果
i2c
芯片速率高于
400KHZ
,则必须使用
i2c3,i2c4,i2c5
控制器
请教技术,
linux4.1
版本
uart
设备数?