Zynq-Linux移植学习-通过PCIE访问8750桥片EP节点MEM空间

1、背景介绍

       公司搭建pcie调试平台,想要通过pcie桥片使各个pcie设备通过pcie桥片实现mem空间互相访问。由于zynq7000系列只能例化出一个pcie核,所以采用的方式是:zynq例化出pcie 的RC IP核,

通过8750pcie桥片,访问ep pcie设备(这里我们用的是pcie转sata接口板)。

        这里的fpga逻辑工程搭建xilinx官方有标准的流程。具体参考

Zynq PCI Express Root Complex design in Vivado - FPGA Developer

Xilinx PCIe Root Port - Xilinx Wiki - Confluence

xilinx wiki 里面 的Xilinx_Answer_71494_ZC706_KC705.pdf 里面描述了很多相关问题。

我这里遇到的具体的问题就是 ,由于class code 没有手动输入,选择默认。导致后面无法给ep设备分配BAR空间。具体报错为Bar: no space for [mem size 0x100000000]

                                                failed to assign [mem size 0x1000].

 

2、8750桥片设置

        上边步骤完成,点对点pcie mem空间数据可以正常写入和读取。

        下面主要说一下8750桥片的配置。通过上面配置我们可以正常访问到桥片。并且RC枚举的时候将桥片的每一个port都认为是一个ep设备。如下图所示

00:00.0 PCI bridge: Xilinx Corporation Device 7124
01:00.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
02:00.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
02:01.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
02:02.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
02:04.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
02:08.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
02:09.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
02:0a.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab)
06:00.0 SATA controller: Marvell Technology Group Ltd. Device 9215 (rev 11)

00:00.0 为我的RC,06:00.0为SATA设备。因为SATA设备是挂在8750桥片上,所以如果想访问SATA设备必须要通过8750桥片。注意桥片枚举完成之后的配置空间中的command 是0x100140即io访问和mem访问方式都被关闭掉。如下

01:00.0 PCI bridge: PLX Technology, Inc. Device 8750 (rev ab) (prog-if 00 [Normal decode])
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 

 这时我们需要手动的将i/o,mem打开

我们可以通过RC的CTL BAR空间访问所有bus上的devices的配置空间,并进行读写操作。

我这里的配置空间是0x80000000.所以01:00:00的配置空间地址是0x80100000.

root@xxx:~# devmem 0x80100004     
0x00100140
root@xxx:~# devmem 0x80100004 0x100147

设置完成之后我们就可以通过桥片访问sata设备了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值