问题标签 [pci]

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 回答
5066 浏览

linux - PCI 设备的“echo 1 > rom”有什么作用,如何以编程方式完成?

我正在尝试编写一个程序来在 linux 上转储选项/扩展 ROM。我已经有必要的 PCI 端口 IO 从偏移 0x30 处的 PCI 配置数据中获取扩展 ROM 的基地址并使其启用,但是当我尝试访问内存中的基时,我得到了段错误。因此,我试图了解当您从 linux 命令行执行“echo 1 > rom”时会发生什么,因为此后 rom 似乎很容易访问(有关更多上下文,请参见此处:http: //etherboot.org/维基/romdumping

例如,假设我执行以下操作:

lspci

01:00.0 VGA 兼容控制器:ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)]

cd /sys/bus/pci/devices/0000:01:00.0

lspci -x -v -s 01:00.0

请注意“扩展 ROM at dfe00000 [disabled] [size=128K]”的行0xdfe00001,然后我得到

(注意偏移量 0x30 处的 0x01 和现在显示“扩展 ROM 在 dfe00000 [size=128K]”的行)。

但我无法访问 0xdfe00000。同时,当 O 在命令行中执行“echo 1 > rom”时,它不会更改行以删除“禁用”,实际上它根本不会对 lspci 的输出进行任何更改。那么“echo 1 > rom”在做什么而我不是,这使得随后可以执行“dd if=rom of=/tmp/rom”?

非常感激

0 投票
1 回答
336 浏览

io - 基于 FPGA 的 PCI IO 卡的 dma

我有台面电子 5i20 PCI 卡。提供了一个应用程序,它在 PC 上接收数据并将其发送到卡上的 FPGA,同样它从卡上的 FPGA 读回数据到 PC。

PCI 支持 33MHz 数据传输。使用简单的 for 循环,我可以分别向 FPGA 发送数据和从 FPGA 接收数据。但是我如何使用 DMA 概念,以便我可以读取文件数据并通过 PCI 将几块数据直接发送到卡。

问候

0 投票
2 回答
124 浏览

c - 读/写原子性是否适用于多台计算机内存?

我在多计算机环境中工作,其中两台计算机将通过 32 位 PCI 总线访问相同的内存。

第一台计算机只会写入 32 位 int。
*int_pointer = number;

第二台计算机将仅从 32 位 int 读取。
number = *int_pointer;

两个操作系统 / CPU 都是 32 位架构。
带有 PCI 的计算机是基于 Intel 的。
PCI卡上的电脑是power PC。

我担心的情况是,如果只读计算机在读取变量的同时更改变量,导致读取计算机的数据无效。
我想知道读取/写入内存中相同位置的原子性是否保留在多台计算机上。

如果是这样,以下是否会阻止竞争条件:

我可以保证每 16 毫秒 * 发生一次写入,而读取将随机发生。

*时间会漂移,因为两台计算机都有不同的计时器。

0 投票
1 回答
753 浏览

memory-management - 使用 pci_alloc_conssitent 分配内存时收到警告消息

我需要分配4K对齐的64 个块128K 内存。Currentyl按分配使用需要具有DMA 功能。当我这样做时,我收到以下警告消息。这是否意味着我的请求失败了?pci_alloc_consistent()phy_addr

正如我所读到的,pci_alloc_consistent()应该能够分配超过128K 的内存,但找不到它可以做的最大值。请让我知道这里出了什么问题。

0 投票
1 回答
4593 浏览

c# - 确定哪些(如果有)PCI 设备插入主板 PCI(e) 插槽

我正在用 C# 编写一个程序来跨许多 Windows XP 工作站执行硬件审计。

我需要确定哪些 PCI 设备是通过主板插槽连接的实际卡 - 而不是也使用 PCI 总线(内置在主板中)的板载设备。

我可以使用各种 WMI 类成功列出使用所有 PCI 总线的所有设备,但没有提供任何指示板载与通过插槽连接的内容。

只要信息可靠,我对如何检索信息或信息来源(例如 Pinvoke、WMI、注册表等)并不挑剔。

谢谢!

0 投票
1 回答
1179 浏览

linux - 从 PCI 设备复制到 CUDA GPU 内存

有什么方法可以从 PCI 设备写入 CUDA 设备内存。该 PCI 设备正在以非常快的速度记录数据。因此,为了获得最大性能,我想将数据直接复制到 GPU 内存中,以便通过主机传输进行处理。

我在 CUDA 5.0 中阅读了有关 RDMA 的信息。我如何使用 RDMA/GPUDirect 将数据从 PCI 传输到 GPU 内存。

请帮助我为此提供一些样本。

我使用的操作系统是 Windows 7 64 位和 CentOS 64 位 CUDA SDK 是 5.0 而 GPU 是 Tesla K20

0 投票
1 回答
177 浏览

memory - 在 Linux 中,我正在尝试编写一个可以检查一些物理内存的用户空间应用程序(出于调试目的)

我正在尝试编写一个可以检查一些物理内存(用于调试目的)的用户登陆应用程序。

(w/ CONFIG_STRICT_DEVMEM=n) 使操作系统崩溃。

我的目录中不存在函数ioremap、、phys_to_virt和。我研究并尝试了该过程,但这些功能仍然没有进入我的 usr/include 目录。AFAIK 这意味着它们不适用于用户级应用程序。有谁知道如何从用户空间应用程序访问物理内存?还有一个仅供参考,我试图读取的物理地址是一个 PCI BAR,它是我在“memory at”行中执行的。phys_to_page/usr/includemake headers_installlspci -v

0 投票
2 回答
11350 浏览

storage - SCSI和PCI之间的区别

SCSI 是标准电子接口,允许个人计算机与磁盘驱动器、磁带驱动器等外围硬件进行通信。
外围组件互连 (PCI),顾名思义,是描述如何将系统的外围组件连接在一起的标准。结构化和受控的方式。

现在我的问题是是什么让它们与众不同,数据传输的方式?还是硬件?

谢谢你的帮助 。

0 投票
1 回答
1819 浏览

linux-kernel - 从 Linux 内核空间到 PCIe 卡的 DMA

我正在尝试为 PCIe 设备编写 linux 驱动程序 - Adlink PCIe 7300A 高速数字 IO 卡。

该驱动程序对于正常的内存传输工作正常,但尝试使用卡的总线主控功能启动缓冲区从 CPU 内存到设备的输出 FIFO 缓冲区的 DMA 传输根本不起作用。

我一直在尝试以几周而不是几天的顺序来解决这个问题。

任何见解都将非常感激。

驱动代码——https://github.com/sbrookes/timing_driver_sdarn/blob/master/kernel_land/timing.c

设备数据表——http: //www.acceed.com/manuals/adlink/P7300A%20Manual.PDF

PLX 9080 PCI 接口芯片数据表 -- http://www.der-ingo.de/bin/milanhelp/PLX9080.pdf

我无法解释我会多么感激任何一点洞察力。

谢谢,

斯科特

0 投票
1 回答
523 浏览

storage - NVMe排队接口和PCIe排队接口的区别

任何人都可以让我知道两者之间的区别。

如果有,请避免相关链接。