RapidIO在Linux上的适配和测试过程
调试环境:
系统:Kylin4.0.2,默认内核4.4.58。
硬件:2台包含RapiIO的测试板卡,一块测试底板。
驱动及测试软件(可在github上面下载开源驱动及测试程序):kernel-rapidio:rapidio内核驱动程序,版本为 1.2.0。
riosocket:rapidio网卡驱动程序,可将rapidio设备虚拟化为网卡,版本为:1.3.0。
RapidIO_RRMAP:rapidio的文件传输,RDMA等应用程序,版本为:1.2.1。
说明:RapidIO测试环境采用两块VPX主板通过SRIO x4互联,一块作为Master,一块作为Slave。每个步骤表明“同时”表示Master、Slave端都需要执行;“Master”表示秩序Master端执行;“Slave”表示秩序Master端执行
1. kernel-rapidIO
1.1 驱动编译安装——同时
直接解压缩编译即可:
$ tar xvf kernel-rapidio-1.2.
steam怎么安装$ ln -s kernel-rapidio-1.2.0 kernel-rapidio 创建连接为了后面riosocket 安装时依赖
$ cd kernel-rapidio
$ make -j8
$ sudo make install
不报错即可。
如果需要看调试信息,编译之前先通过修改Makefile文件打开调试选项:
RAPIDIO_ENABLE_RX_TX_PORTS := TRUE
RAPIDIO_DMA_ENGINE := TRUE
法人代表的责任RAPIDIO_DEBUG := TRUE
RAPIDIO_ENUM_BASIC := TRUE
RAPIDIO_MPORT_CDEV := TRUE
TSI721_PCIE_GEN3_WORKAROUND := TRUE
把RAPIDIO_DEBUG的值由FALSE改为TRUE,重新编译、安装即可。
1.2 枚举/发现配置
kernel-rapidio安装时,会安装一个f文件到
/etc/modprobe.d/目录下,该文件在rapidio驱动加载时调用,用于配置驱动模块的加载参数。
1. rapidio.ko加载后把相关内核模块都加载,则将上面红字体文本行前的“#”去掉,即取消改行的注释,启用改行指令——Master options rapidio hdid=1,-1
softdep rapidio post: idt_gen2 idt_gen3 idtcps tsi57x tsi568 tsi721_mport rio_mport_cdev rio_cm rio-scan
这样,启动枚举/发现过程的方式,需要在命令行下输入下面命令(先不要执行):
$ sudo su吴君如电影
# echo -1 > /sys/bus/rapidio/scan
2. 加载rio-scan驱动时,再将相关内核模块加载进内核,则将上面蓝字体文本行前的“#”去掉,即取消改行的注释,启用改行指令——Slave
options rapidio hdid=-1,2
softdep rio-scan pre: idt_gen2 idt_gen3 idtcps tsi57x
这样,启动枚举/发现过程的方式,需要输入如下命令(先不要执行):
$ sudo modprobe rio-scan scan=1
注意:options rapidio hdid=1,2,3,4 如果配置1,2,代表有2个rapidio 控制器,如果配置1,2,3,4表示有4个rapidio控制器。
Mast options rapidio hdid=1,2 slave options rapidio hdid=-1,-2 表示两路都枚举
1.3 枚举/发现
教师职业道德基本内容两端安装完上述驱动并配置好后,执行:
先在Master端:
$ sudo su
# echo -1 > /sys/bus/rapidio/scan
然后再Slave端:
$ sudo modprobe rio-scan scan=1
Master先执行,Slave后执行,但两者之间的时间间隔不能过长,最好在1s内完成。
通过上面枚举发现过程后,在两端通过命令可以到rapidio设备,VPX板子为例:
$ ls /sys/bus/rapidio/devices/ Master
00:e:0001
肌研极润洗面奶
$ ls /sys/bus/rapidio/devices/ Slave
01:e:0002
就能到“00:e:0001”和“01:e:0002”这两个设备
如果枚举/发现失败,必须重启系统再次尝试。
2. riosocket——同时
2.1. 编译安装
$ tar xvf riosocket-1.3.
$ cd riosocket-1.3.0/riosocket-basic/
$ make -j8文件夹隐藏了怎么恢复
$ sudo make install
安装时,会安装一个f文件到/etc/modprobe.d/目录,内
容为:
# cat /etc/modprobe.f
# Configure RapidIO Socket module loading
options riosocket rio_phys_mem=0x40000000
rio_phys_size=0x10000000
是将系统物理内存地址0x40000000(1G)开始的0x10000000(256MB)作为rapidIO设备的DMA使用buffer。
将其改为:
# Configure RapidIO Socket module loading
options riosocket rio_phys_mem=0x240000000
rio_phys_size=0x10000000
连接调试串口,重启,按“ESC”键进入uboot命令行模式。输入如下命令:
# setenv bootargs console=ttyS0,115200 earlyprintk=uart8250-
32bit,0x28001000 root=/dev/sda2 initrd=0x95000000,16M rootwait rw KEYBOARDTYPE=pc KEYTABLE=us memmap=256m$9G
# setenv scsidevs 0
# save
# boot
2.2.使用
系统启动后,先执行rapidio的枚举/发现过程,再加载riosocket.ko 驱动:
$ sudo su
# echo -1 > /sys/bus/rapidio/scan
# modprobe riosocket
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论