1、背景介绍

目前模块上采用了两片Tsi721 RapidIO芯片,需要在模块间实现RapidIO数据传输,为此,需要在湖南麒麟系统下适配RapidIO驱动。

 

2、驱动加载

首先确保在系统下已经能够找到Tsi721设备,在终端中输入lspci

 

可以看到两片Tsi721已经能够找到了。

 

然后从IDT github官网上面 https://github.com/RapidIO 下载驱动和测试工具,如下图所示,下载这两个即可。

 

其中第一个是驱动,第二个是测试工具

因为我们使用的是湖南麒麟,驱动原来是适配redhat7.4的,所以需要把rionet.c中使用redhat7.4的地方改掉

 

修改第513行

 

然后make即可

 

Make执行之后进入对应内核名称的文件夹,执行insmod操作

insmod rapidio.ko  hdid=1,2

insmod tsi721_mport.ko

insmod rio_mport_cdev.ko

 

执行lsmod | grep rapidio就能看到驱动已经正确加载。

3、测试工具编译

为了编译测试工具,需要将驱动中的头文件拷贝到内核头文件目录下。

 

将include下.h文件拷贝到/usr/include/linux目录下

 

然后进入RRMAP文件夹下,执行make操作

 

编译结束后能看到可执行程序

 

运行一个查询程序,可以查到当前节点的设备ID

 

80ab0038就是从寄存器中读出来的值了,证明驱动已经可以正常工作。

 

Logo

惟楚有才,于斯为盛。欢迎来到长沙!!! 茶颜悦色、臭豆腐、CSDN和你一个都不能少~

更多推荐