pci相关内容

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

我正在用 C# 编写一个程序,以在许多 Windows XP 工作站上执行硬件审计. 我需要确定哪些 PCI 设备是通过主板插槽连接的实际卡 - 而不是也使用 PCI 总线(内置于主板中)的板载设备. 我可以使用各种 WMI 类成功列出使用所有 PCI 总线的所有设备,但没有任何设备提供板载设备与通过插槽连接的设备的任何指示. 只要信息可靠,我不会对信息的检索方式或信息来源(例如 ..
发布时间:2021-09-27 20:22:44 C#/.NET

通过 Windows 的 API(用户模式)检索 PCI 坐标

有没有办法通过使用 Windows c/c++ API(例如 PnP 配置管理器 API)来获取设备的 PCI 坐标(总线/插槽/功能编号)?我已经知道如何在内核模式下做到这一点,我需要一个用户模式解决方案.我的目标系统是 Windows XP-32 位. 解决方案 我最终找到了一个简单的解决方案(这只是深入 MSDN 的问题). 这个最少的代码根据总线/插槽/功能查找设备的 PCI ..
发布时间:2021-09-25 19:00:59 其他开发

PCI Express BAR 内存映射基本理解

我试图了解 PCI Express 的工作原理,以便我可以编写一个 Windows 驱动程序,该驱动程序可以在没有板载内存的情况下读写自定义 PCI Express 设备. 我了解 PCIE 配置空间中的基址寄存器 (BAR) 保存 PCI Express 应响应/允许写入的内存地址.(这样理解正确吗?) 我的问题如下: 在谈论 PCIE 时,与物理地址相比,什么是“总线特定地址 ..
发布时间:2021-06-02 19:30:21 其他开发

我应该如何以非root身份读取Linux上的Intel PCI uncore性能计数器?

我想拥有一个允许对Linux可执行文件的关键部分进行“自我分析"的库.以一种可以使用 gettimeofday()或 RDTSC 我希望能够计算诸如分支未命中和缓存命中之类的事件. 有许多工具可以做类似的事情( perf , PAPI , 通常采用的方法是使用 msr 内核读取 MSR模块,并且从 一种方法是通过以root用户身份运行的“访问服务器"代理所有内容.这可以工作,但比使用/p ..
发布时间:2021-05-30 18:35:18 其他开发

pci_rescan_bus()在Linux中不会重新扫描PCI总线

我试图借助 pci_rescan_bus()内核功能在我自己的内核驱动程序中重新扫描PCI总线,但我看不到它的功能相同. 如果我尝试通过运行以下命令在用户空间中执行相同操作,则会看到重新扫描: echo 1>/sys/devices/pci0000:00/0000:00:14.1/rescan 我正在尝试重新初始化位于PCI总线上的以太网端口.下面是我现在使用的代码: struc ..
发布时间:2021-05-30 18:31:50 服务器开发

Linux内核如何发现PCI设备?

在驱动程序端,加载驱动程序模块时或在引导时(如果模块是内置的)调用 pci_register_driver().(无论何时添加设备/驱动程序,都会循环遍历驱动程序/设备列表以查找匹配项,我得到了这一部分.) 但是在哪里/什么时候在总线上发现并注册了pci设备?我想这是特定于架构的,并且会在x86上涉及BIOS,例如-BIOS例行探测PCI设备,然后将结果放在RAM中某个位置的列表中,然后再加 ..
发布时间:2021-05-30 18:31:14 其他开发

PCIe中断路由

我目前正在xilinx PFGA中实现PCIE端点设备,并且对该中断有一些问题. 驱动程序初始化时,它将中断映射到IRQ 32 [ 1078.938669] alloc irq_desc for 32 on node -1 [ 1078.938670] alloc kstat_irqs on node -1 [ 1078.938675] pci 0000:06:00.0: PC ..
发布时间:2020-11-10 19:30:59 服务器开发

在多GPU系统中,如何在给定PCI供应商,设备和总线ID的情况下将OpenCL设备与特定的GPU匹配?

在PCI ID标识的多GPU系统上,我希望能够将OpenCL设备与系统中的GPU匹配. 例如,如果我有一个带有多个GPU(可能来自不同供应商)的系统,则可以通过枚举PCI总线来列出设备.这给了我PCI供应商,设备和总线ID.如果我根据某些选择标准选择这些(GPU)PCI设备之一进行OpenCL计算,该如何将其与OpenCL设备进行匹配? 我可以使用 clGetDeviceIDs()枚举 ..
发布时间:2020-05-20 18:53:28 其他开发

pci_alloc_consistent未缓存的内存

可以公平地说,pci_alloc_consistent分配了一个连续的非缓存,非分页的内核内存块.我问的原因是我在某些内核/驱动程序代码中看到了此注释(不是在原始内核源代码中),并且我认为我理解内存是连续的,但是不确定是否将其分配为非缓存的,因为缓存一致性的想法是保持缓存中的数据与DMA内存一致. 此外,不确定为什么他们将其称为非分页的. 例如 https://www.kernel.o ..
发布时间:2020-05-02 03:41:21 其他开发

低延迟访问PCI内存BAR(Linux)

背景: 我有一个PCI卡,它基本上是一个时钟.它通过GPS获取时间,并将当前时间保存在某个寄存器中. 目标: 我想一遍又一遍地读取有限数量的寄存器/字节(例如当前时间),并以尽可能低的延迟. (时钟提供了很高的精度,我认为延迟越高,精度就会越低.)操作系统是RedHat.编程语言是C/C ++.我还想写入设备内存,因此延迟不是问题. 可能的前进方式: 我看到了这些方式 ..
发布时间:2020-05-02 03:24:04 服务器开发

Linux在特定的物理地址分配内存

我正在测试PCI端点驱动程序,我想从PCI RootPort端到PCI端点端进行简单复制.在PCI端点方面,我们将地址从PCI地址转换为CPU物理地址.我们可以在转换中配置CPU物理地址,以便它映射到特定的DRAM区域.问题是我们如何才能在该特定的CPU物理地址上分配一个内存缓冲区,以确保从RootPort端进行的写操作确实有效? 任何建议都值得赞赏.非常感谢! 解决方案 如果您可以 ..
发布时间:2020-05-02 03:21:33 服务器开发

在Linux上检查IOMMU支持

我想在任何给定的Linux机器上验证是否支持PCI直通.经过一番谷歌搜索后,我发现我宁愿检查是否支持IOMMU,我通过运行以下命令来做到这一点: dmesg | grep IOMMU 如果它支持IOMMU(而不是IOMMUv2),我会得到: IOMMU [ ..
发布时间:2020-04-23 11:17:05 服务器开发