问题标签 [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 回答
358 浏览

linux-device-driver - PCI-E Altera 发送-更改-接收故障

帮助解决问题。我有一块 Altera db4kgh15 板。它内置支持pci-e接口。我有一个Linux内核模块,由费用控制。使用下面的功能,我扫描基本寄存器狗并尝试写入寄存器数据。板子应该采用一个 32 位的字并通过加 2 将其发回。但是,我们得到的输出是相同的数字。该项目上的FPGA到主电路模块附ksis自己设计。截图方案和代码模块如下所示。我究竟做错了什么?

}

0 投票
1 回答
1765 浏览

driver - 为什么这个 device_create() 调用不创建 /dev/ 条目?

我正在将平台驱动程序代码移植到 PCIe 变体,但我不明白为什么我没有/dev/显示条目。修改后的平台驱动代码:

如果模块名称是“cz_tdm”,我希望上面的代码会创建一个条目/dev/cz_tdm。至少在我将其编译为平台驱动程序时是这样。

驱动程序枚举得很好,输出lspci显示驱动程序已加载并仔细阅读sysfs显示我的所有属性/sys/devices/virtual/...都在我期望的位置。

是什么赋予了?

0 投票
1 回答
590 浏览

cuda - 访问映射的固定主机(或对等设备)内存是否需要 GPU 复制引擎?

假设 GPU 有一个执行引擎和一个复制引擎。

  1. 当在 CUDA 内核中线程访问主机内存时,它会使复制引擎忙碌吗?因此,它是否会阻止其他流中与设备之间的所有异步内存复制操作?
  2. 如果在 CUDA 内核内部线程访问对等设备内存,是否会使两个设备中的复制引擎都忙?
0 投票
1 回答
295 浏览

linux-kernel - 如果设备节点正在使用中,如何进行正常删除/或不删除的程序

我使用 mknod 命令为 pcie 驱动程序创建了这个设备节点。

在设备节点文件打开(正在使用)时删除驱动程序,系统崩溃。

有没有办法优雅地退出?另外如何处理用户应用程序访问文件在关闭设备节点之前意外终止的情况。

0 投票
0 回答
65 浏览

c - 关于在设备节点上使用 write 系统调用

我在理解以下两个代码案例之间的差异时遇到了问题。案例 1正在按预期工作,而案例 2则没有。

问题陈述:我需要在我的设备文件上写一些 DWORDS 并触发 DMA。DMA 容量为 128*4 字节(128 DWORDS)。所以我想在将 128 个字节写入设备文件描述符后触发 DMA(使用 ioctl)以充分利用容量。我也可以对单个 Dwords 执行此操作。

两种情况的基本区别: 第一种情况的目的是一次将 128 个 DWORDS 写入文件,第二种情况单独写入 DWORDS,并在写入 128 个 DWORDS 后触发 DMA。

两种情况下写入文件的数据是否相同?第二个不工作,所以那里出了点问题。请帮忙。通过不工作,我的意思是 DMA 命令的预期结果没有发生,因此在第二种情况下,文件描述符中的数据与 dma 命令之前的第一种情况不同。

案例1(工作)

案例 2(不工作)

0 投票
0 回答
917 浏览

c - 使用 AER 注入导致 PCIe 错误回调

我试图通过使用 AER 注入在 Linux nvme 驱动程序中引起回调。我修改了 AER 源代码,直接通过模块加载而不是从用户态程序注入错误。

我已经验证我得到了正确的总线、dev 和 fn,并且错误注入成功,但是 nvme 驱动程序的错误处理函数没有收到任何东西。

这是 aer_injection.c 文件的修改

这填写了错误结构

这是 aer_inject() 函数:

这是我试图在 nvme 驱动程序中实现的功能:

内核验证:

正如我们所见,内核消息不是从驱动程序中打印出来的,而是在整个 AER 注入方法中完全执行的。这可能是什么原因?感谢您为混乱的代码格式道歉。

0 投票
4 回答
9394 浏览

pci - 手动解码 pcie 配置空间功能 - 寻找示例

我没有运行操作系统,所以我无法使用 lspci 之类的东西对 pcie 进行解码(我希望 lspci 能够从文件中获取输入!)。

我在下面有一个十六进制转储(这是一个 Xilinx Ultrascale FPGA,但问题是通用的),我试图了解功能从哪里开始以及如何解码 Next Cap 指针以遍历配置空间。根据 Xilinx PG156 第 2-24 页,功能从配置空间开始的 0x80 开始,但 0x80 (0x80030001) 处的值似乎没有意义,下一个指针为零,但显然有更多功能。

我无法在网上或标准中找到关于功能从何处开始的明确答案。

0 投票
1 回答
694 浏览

operating-system - 直接连接到 CPU 的 PCIe 插槽的中断路由

如果我们今天查看 Haswell 架构图,我们可以看到有 PCIe 通道直接连接到 CPU(用于图形)以及其中一些路由到平台控制器集线器(替换南桥):Intel C22X 芯片组图

如果我们查看Intel 8 系列数据表(C222 的规范),我们会发现 Intel C222 包含用于路由传统 INTx 中断的 I/O APIC(第 5.10 章)。我的问题是,如果旧版 INTx 中断请求直接到达 CPU(通过 PCIe 3.0 通道)会发生什么情况。是否必须先将其转发到 C222,或者系统代理中是否还有另一个 I/O APIC,在这种情况下我必须对其进行编程?此外,借助面向定向 I/O 的英特尔虚拟化技术,现在还有一个额外的间接方式,即中断重映射表。该表是否在 CPU 或 C222 上的系统代理(前北桥)中,这是否意味着在启用重新映射的情况下,需要首先将来自 PCIe 3.0 通道的所有中断路由到 C222?

0 投票
1 回答
2978 浏览

c# - 如何以编程方式在 Windows 7/8 上获取 PCIE 设备的链接速度

在 Windows 8 上,当我在设备管理器中右键单击 PCIE 设备时,在“详细信息”选项卡的“PCI 当前链接速度”属性下,我可以读取 PCIe 链接速度。对于 PCIe 链路宽度也可以这样做。

我想在 C# 应用程序中以编程方式访问此信息。我怎么做?通过 WMI?并且在 Windows 7 上也可以使用同样的方法吗?

0 投票
4 回答
3653 浏览

linux - 从用户空间访问 linux 中的 pci 设备信息

我想以编程方式从用户空间访问 pci 设备树信息。就像根复合体和连接到它的设备一样。我该怎么做,请告诉我。

问候, Pradeep