查看: 829|回复: 0

【HiKey】Device Tree

[复制链接]

该用户从未签到

发表于 2016-9-26 09:13:35 | 显示全部楼层 |阅读模式
分享到:

  • 写这篇文章的缘由:
   进入ARM64位后,device tree就被作为一个强制的选项加入到内核当中,工作的很大一部分时间也都花在了修改device tree上
所以在使用基于ARM64的硬件设备开发时,很有必要对device tree有所了解,这里将简单介绍驱动是如何使用device tree的
Device Tree是用于描述硬件信息的,所以DeviceTree里的内容基本上是来源于芯片手册(datasheet)

  • 举例说明:
下面先举例简单说明部分内容的来源(下面内容是基于HiKey开发板来编写的,原理都能通用)
下面的内容是来源于hikey所使用的device tree文件(hi6220-hikey.dts)
uart@f8015000 {
   compatible = "arm,pl011", "arm,primecell";
   reg = <0x0 0xf8015000 0x0 0x1000>;
   interrupts = <0x0 0x24 0x4>;
   clocks = <0xe 0x28>;
   clock-names = "apb_pclk";
   status = "ok";
};
可以看到这是一个描述板卡上串口信息的内容,格式如下
node_name@register_address {
   compatible = "compatible_name";
};
node_name只是一个标识,@后面寄存器地址
register_address 可以在芯片hi6220手册找到,入下图描述


reg = <> 这里面也是用于描述UART控制器的寄存器的起始地址及其长度
interrupts 表示中断信息
clocks 描述它的时钟源
这些信息在开发板上也可以通过proc下的节点来看到
所有的device tree里的信息都在/proc/device-tree下
root@hikey:/proc/device-tree/smb/uart@f8015000 # ls -l
-r--r--r-- root  root  9 1970-01-01 00:02 clock-names
-r--r--r-- root  root  8 1970-01-01 00:02 clocks
-r--r--r-- root  root  24 1970-01-01 00:02 compatible
-r--r--r-- root  root  12 1970-01-01 00:02 interrupts
-r--r--r-- root  root  5 1970-01-01 00:02 name
-r--r--r-- root  root  16 1970-01-01 00:02 reg
-r--r--r-- root  root  3 1970-01-01 00:02 status
其中name,compatible是文本类接口给的可以用cat来查看的
如果想要查看其它信息,比如clocks,需要使用查看二进制的工具查看(这里就用到上一篇文章的busybox了)
root@hikey:/proc/device-tree/smb/uart@f8015000 # busybox hexdump clocks
0000000 0000 0e00 0000 2800
0000008
可以看到值和上面device tree里描述的一致
查看reg信息
root@hikey:/proc/device-tree/smb/uart@f8015000 # busybox hexdump reg
0000000 0000 0000 01f8 0050 0000 0000 0000 0010
0000010
这样就方便开发的时候检查是否有修改正确device tree文件以便调试
其它设备的信息都和上面的例子一样
这里先简答介绍一下,后续将从零开始写一个device tree来用于hi6220,以便详细的了解device tree的编写以及HiKey开发板硬件的信息,未完待续
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

手机版|小黑屋|与非网

GMT+8, 2024-4-26 17:45 , Processed in 0.117621 second(s), 18 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.