问题标签 [pci-e]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3353 浏览

fpga - 用于(重新)编程 PCIe 板的 PCIe JTAG

我注意到 PCI 总线有 JTAG 线(即 TCK TDI TDO 等):有没有办法使用该 JTAG 重新编程基于 fpga 的 PCIe 设备?(假设 fpga 的 JTAG 连接到 PCI 线)。

谢谢米歇尔

编辑:因为我看到-1,也许我无法让自己理解......我将尝试更好地解释这种情况。我们有一块 Terasic DE5 (Stratix V FPGA) PCIe 板,它实际上将 PCIe 总线的 JTAG“线”路由到 FPGA。确实,板上焊接了一个 JTAG 端口,但由于机械原因,很难够到和使用。所以我的问题是:是否可以像使用 BLASTER 一样使用 PCI 引脚对 FPGA 进行编程?如果是这样,支持 PCIe JTAG 编程的 linux 基础设施是什么?如果没有机会,有人可以解释我为什么吗?

0 投票
1 回答
181 浏览

windows - 在连接时捕获 PCI-Express,然后在系统中进行仿真

有没有办法在设备连接时捕获设备状态,而不是在 Windows 中模拟它?我购买了一些 PCI Express 设备,这些设备需要插入插槽才能使软件正常工作。但我只有一个插槽,软件无法完全运行,正在插槽中搜索另外 2 张卡。有任何想法吗?谢谢!

0 投票
1 回答
441 浏览

intel - Intel De2i-FPGA 板卡 PCI

嗨,正如标题所示,我有一块 FPGA 板。我想将 2 个 PCI 卡连接到它。该板的框图显示它有两个 PCIe 端口,但该板的图片不包含一个。FPGA的手册提到了PCIe,但板子根本没有。其他 I/O 包括 USB、RS-232 和 SATA。有什么方法可以让我使用某种适配器或转换器将两个 PCI 卡连接到板上吗?这是框图和图片的链接。http://www.systemseng.cornell.edu/intel/team/upload/DE2i-150.pdf

0 投票
3 回答
1837 浏览

linux - PCIe 硬件未按顺序查看 Linux 设备驱动程序 DMA 内存缓冲区

我正在为 Xilinx Virtex 6 PCIe 定制板开发设备驱动程序。在进行 DMA 写入(从主机到设备)时,会发生以下情况:

用户空间应用程序:

内核空间:

设备 pcie TLP 转储(通过 Xilinx 内核后的逻辑分析仪获得):

现在,这种明显的内存排序错误发生的概率很高(0.8 < p < 1),并且排序不匹配发生在传输中的不同随机点。

编辑:请注意,上面的 c4 点表明内核驱动程序没有以正确的顺序填充内存(我想内存控制器用连续内存填充 TLP)。64B 是缓存行大小,这可能与缓存操作有关。

当我禁用内核缓冲区上的缓存时,

错误仍然发生,但很少发生(p < 0.1,取决于传输大小)

这只发生在基于 i7-4770 (Haswell) 的机器上(在 3 台相同的机器上测试,带有 3 个板)。我尝试了内核 2.6.32 (RH6.5)、stock 3.10.28 和 stock 3.13.1,结果相同。

我在基于 i7-610 QM57 的机器和 Xeon 5400 机器上尝试了代码和设备,没有任何问题。

欢迎任何想法/建议。

此致

克劳迪奥

0 投票
0 回答
2078 浏览

c - 如何使用 VxWorks 映射 PCIe 区域?

这是我的第一篇文章 :) 我正在使用 VxWorks 6.9 和 Intel Sandy Bridge 板。我想知道如何在我的应用程序中映射 PCIe 内存区域。PCIe 内存区域是图形内存的一部分,它的物理地址是 0x80000000。

我正在尝试使用不返回虚拟地址的 vmMap 函数。在这种情况下,我将虚拟地址设置为与物理地址相同的值,但我不知道这是否是好的行为。如何从物理地址获取虚拟地址?如果不存在函数,我必须使用什么虚拟地址?

当我在我的应用程序中映射了该区域时,我正在对该区域的访问进行调整。我正在尝试使用函数 vmStateSet 更改缓存状态,但只能设置 COPYBACK、WRITETHRU 和 DEFAULT(设置其他缓存值失败)。所有缓存状态的吞吐量都很低。在 Intel Sandybridge 中,可以将 MMU 设置为写入组合。我如何在 VxWorks 中做到这一点?

这是我到目前为止所尝试的:

谢谢您的帮助 !!

0 投票
1 回答
1728 浏览

c - 在 ubuntu 上读取、写入、更新 pci 卡上的 eeprom

我试图弄清楚如何在 ubuntu 上使用 c 语言在 pci 网卡上读取、写入和更新 eeprom 的内存地址。

有人可以指出我正确的开始方向吗?谢谢

0 投票
1 回答
580 浏览

pci-e - 需要有关 pci/pcie 驱动程序配置中断的帮助

嗨,我正在为使用 DDI8 mp 接口的串行 PCI/PCIe 卡编写 openserver-6 SCO 操作系统的驱动程序。我在 PCIe 卡上遇到中断时遇到问题。尽管驱动程序在 PCI 卡上正常工作。PCIe 卡是否需要任何不同的配置?

0 投票
0 回答
686 浏览

gpu - 设备之间的直接数据复制

我正在尝试探索跨设备(GPU、NIC、存储等)实现全局 IO 空间的可能性。这可能归结为这个线程中提出的问题——两个 PCI 设备之间的直接通信

我一直在阅读 Nvidia GPUDirect,其中内存区域被固定,物理地址是在 nvidia_p2p_* 调用的帮助下获得的。我无法完全理解如何使用 GPU 的物理地址来对 3rd 方设备的 DMA 控制器进行编程以进行数据传输。我对 GPU 内存不可见这一事实感到困惑,这与 cpu 内存空间不同(这可能是由于我对 dma 控制器编程知识贫乏)。对此的任何指示都会非常有帮助。

此外,许多 PCI 设备根据 PCI BAR 公开内存区域(例如,GPU 公开 256M 的内存区域)。有没有办法知道这个 BAR 内存区域映射到的设备物理地址?BAR 内存区域和通过 nvidia 驱动程序分配给 CUDA 运行时的内存之间是否有任何重叠?

提前致谢。

0 投票
1 回答
561 浏览

embedded - linux内核需要做什么才能通过PCI-E初始化broadcom L2交换机?

我有一个带有 Armada 370 SoC 的定制板,其中一个 Broadcom L2 交换机现在通过 PCI-E 添加到 SoC。
该板在Linux上运行。我只想初始化 L2 开关寄存器。
我只想要非常少的访问权限,以便我可以访问 L2 开关的寄存器(使用使用 /dev/mem 的程序 - 我有应用程序)。
我是新手,我想知道在 PCI-E 驱动程序和 menuconfig 等方面需要做什么。
如果有人能指出一个从头开始解释所有这些东西的资源,我会很高兴,因为我想了解更多。如果我正确地进行内存映射,我是否能够访问寄存器?我还需要做些什么吗?

0 投票
6 回答
8315 浏览

linux-kernel - 如何调试 pci 设备和 linux 驱动程序

我正在用verilog编写一个pci设备并编写它的驱动程序,我可能在硬件设计中插入了一些错误,当我用insmod加载驱动程序时,内核只是卡住并且没有响应。现在我试图找出使我的计算机卡住的最后一个驱动程序代码行。我已将 printk 插入到所有相关函数中,例如 probe 和 init,但没有一个被打印。

当我使用 insmod 时,还有什么其他代码在运行到我的 init 函数之前?(我猜内核卡在那里)