Ubuntu下petalinux移植中设备树的修改 - ZYNQ7021学习

Device Tree是一种描述硬件的数据结构,由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。在Device Tree中,可描述的信息包括(原先这些信息大多被hard code到kernel中):CPU的数量和类别,内存基地址和大小,总线和桥,外设连接,中断控制器和中断使用情况,GPIO控制器和GPIO使用情况,Clock控制器和Clock使用情况。

通常由.dts文件以文本方式对系统设备树进行描述,经过Device TreeCompiler(dtc)将dts文件转换成二进制文件binary device tree blob(dtb),.dtb文件可由Linux内核解析,有了device tree就可以在不改动Linux内核的情况下,对不同的平台实现无差异的支持,只需更换相应的dts文件,即可满足。

1.下载资源包device-tree-xlnx

  1. 直接进入网站 https://github.com/Xilinx/device-tree-xlnx.git,选择对应的版本下载,我这里下载的是2015.4版本的。
  2. 在ubuntu下使用指令下载对应版本的资源包。
$ git clone https://github.com/Xilinx/device-tree-xlnx.git 
$ cd device-tree-xlnx 
$ git checkout xilinx-v2015.4

2.SDK配置

将device-tree-xlnx文件夹从ubuntu中拷贝到windows中,存放到xilinx安装目录下的SDK\2015.4\data\embeddedsw\lib\bsp文件下。 使用SDK打开第一节建立的工程。然后打开Xilinx Tools->Respositories工具。如图所示。

           

在Repositories中点击New,加载到设备树资源包的目录,然后点击Rescan Repositories,点击Apply,点击OK完成配置,如下图所示。

        

 

3.创建设备树

点击File->New->Xilinx Board Support Package,在弹出的窗口中,输入设备树的名字,并在Board Support Package OS选择device_tree。如图所示。

        

然后弹出Board Support Package Settings窗口,或者打开设备树项目的system.mss文件,点击Modify this BSP’s Settings也可以打开,如图所示。

        

参数说明:

console device 参数用于指定所使用的串口输出设备,在这里我们使用Uart_1。 
boot args 参数用于指定启动时传递给内核的参数。输入下面参数: 
console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0 
console:指定控制台的设备以及波特了 。
root:指定挂载的根文件系统,这里是/dev/mmcblk0p2,当时在创建linaro的sd卡镜像时会特别提示需要在SD卡中创建两个分区,第一个分区是FAT文件系统,存放内核,设备树,BOOT.bin等,而第二个就是存放Linaro文件系统了,这里也就是对应的mmcblk0p2设备。 
rootfstype:制定跟文件系统的类型,这里是ext4 。
rw:rw参数告诉内核以读写方式加载根文件系统。 ro参数告诉内核以只读方式加载根文件系统,以便进行文件系统完整性检查,比如运行fsck。 
earlyprintk:在console设备注册前(也就是printk注册之前)提供对打印函数的支持,这个之前就可以使用early_printk()函数来代替printk()函数 。
rootwait:让内核等待所有设备都被初始化完成后,再去执行root文件系统的挂载工作。这样可以避免根文件系统驱动初始化成功之前就挂载根文件系统。
然后点击”OK”生成设备树文件。

4.petalinux设备树的修改和dtb文件的生成

petalinux设备树的修改

将设备树文件下的system.dts文件复制到Linux下,用gedit打开,与petalinux下的system-top.dts文件进行对比修改,完善自己的设备树功能。修改之后开始就可以继续进行内核移植了。

dtb文件的生成

如果需要完整重新生成设备树,则将整个设备树的文件夹 device_tree_bsp_1 拷贝到ubuntu中。进入该文件夹,打开终端。输入如下指令: 

dtc -I dts -O dtb -o system.dtb system.dts 

就可以生产dtb文件了。

 

 

 

 

 

 

 

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值