解密设备树

时间:2014-04-03 13:27:14

标签: linux linux-device-driver embedded-linux device-tree

以下是我从嵌入式Linux内核中的设备树中提取的摘录。 这就是我现在理解的方式:

1)aemif接口位于物理地址0x30000000

2)aemif驱动程序位于名为davinci_aemif.c的文件中,它使用名为aemif的时钟

3)aemif上有2个设备,一个是cs2,另一个是nand(我不认为这个假设是正确的)

现在提出问题:

1)reg = <0x21000a00 0x100>;行在做什么?位于aemif的{​​{1}}如何在0x30000000处拥有地址空间?

2)为什么0x21000a00定义cs2而非cs2@30000000

3)cs2@1,0行在做什么?

4)有关如何设置信号线(ta,rhold,rstrobe等)的任何解释都会有所帮助。

reg = <0x2 0x0 0x8000000 0x6 0x0 0x100>;

1 个答案:

答案 0 :(得分:1)

您的设备树显然是错误的。

1 / reg = <0x21000a00 0x100>;通知aemif实际位于0x21000a00并且有32个寄存器(0x100 / 4),因此单位地址必须为0x21000a00aemif@21000a00

2 /再次,单位地址必须与reg属性匹配,你在cs2中没有reg属性..

3 / reg = <0x2 0x0 0x8000000 0x6 0x0 0x100>; reg是指节点父节点的range属性。在这里,它可以解释为:   - 从范围0x2开始,偏移量为0x0(即0x30000000),大小为0x8000000   - 范围0x6,偏移量0x0,大小0x100

4 /你必须看看驾驶员是否拥有&#34; ti,davinci-cs&#34;兼容的字符串,我不能帮助,因为它没有主线。