pci

    1热度

    3回答

    我可以使用I/O端口(asm:in, out指令)在现代x86_64 CPU上通过PCI Express传输数据,或者我可以只使用BAR作为MMIO(存储器映射I/O)和DMA(直接存储器存取映射到存储器映射PCI-E设备的区域)?

    2热度

    1回答

    有没有办法通过使用Windows c/C++ API(例如PnP Configuration Manager API)获取设备的PCI坐标(总线/插槽/功能编号)?我已经知道如何在内核模式下执行它,我需要一个用户模式解决方案。我的目标系统是Windows XP-32位。

    1热度

    2回答

    目前,我需要在我的PCI设备上支持2个向量的MSI。每个矢量需要有不同的处理程序。 HW文件说以下 矢量0为温度传感器 矢量1是用于功率传感器 下面是我下面的驱动程序代码。 1.首先使用pci_enable_msi_block(pdev,2) 启用两个向量2.然后使用request_irq(两个不同的irq,两个diff中断处理程序)分配中断处理程序。 int vecs = 2; struct

    1热度

    1回答

    我开始学习编写PCI驱动程序,我采取的第一个练习是查找给定设备是否存在于总线上。在搜索了一些书籍和互联网之后,我能够写下下面的程序,但是我不清楚几个概念。 1 /* 2 Program to find a device on the PCI sub-system 3 */ 4 #define VENDOR_ID 0x8086 5 #define DEVIC

    1热度

    1回答

    我的问题是我不能写一个64位宽设定到一个设备寄存器。我正在配备集成内存控制器和基于FreeBSD 10的环境的英特尔®至强®处理器C5500/C3500系列。 的数据表(英特尔至强处理器C5500/C3500系列数据表 - 第2卷)在第提到(40年4月12日错误插入实施)寄存器MC_CHANNEL_x_ADDR_MATCH(这是一个四字访问)应该被用于ECC注射设定但pci_cfgregwrite

    4热度

    1回答

    我想有一个库,可以对Linux可执行文件的关键部分进行“自我剖析”。就像我们可以使用gettimeofday()或RDTSC来计算某一部分的时间一样,我希望能够计算诸如分支未命中和缓存命中等事件。 有一些工具可以做类似的事情(perf,PAPI,likwid),但我还没有找到任何符合我要找的东西。 Likwid是最接近的,所以我主要考虑如何修改它的现有Marker API。 每个内核计数器的值都存

    0热度

    1回答

    我是Linux中的驱动程序开发的新手。我想在指定的目标地址触发DMA read操作,但我没有关于如何操作的基本概念。我应该为我的声卡写一个新的驱动程序吗?或者只是调用当前声卡驱动程序提供的一些API(如果有的话)? 我可以想像,我想是这样的(从LDD3 Ch15), int dad_transfer(struct dad_dev *dev, int write, void *buffer,

    2热度

    1回答

    我正在一个arm-linux板上有几个PCI插槽。 我想检查UBoot中PCI模块的供应商ID /设备ID。 因此,我将PCI驱动程序的初始化部分从linux移植到UBoot。 的哈克: 由于我的船上的PCI拓扑结构是固定的,我把硬编码的巴士号码(pirmary,二次,下属)在UBOOT的自由,所以我没有端口枚举代码UBOOT 。为了获得总线编号,我编写了一个小型可加载的内核模块,一旦内核完成枚举

    5热度

    1回答

    以下是一些细节。 当进程调用ibv_post_send()时,HCA的PCI接口会发生什么? WQE是否封装在PCIe门铃内并通过Programmed IO写入?或者是由HCA读取的单独DMA读取WQE? 当进程调用​​时会发生什么? HCA如何将CQE推入系统内存?或者,如果它是基于拉的,CPU如何检测HCA中的新CQE?

    1热度

    1回答

    我开发了PCI-e fpga卡的linux设备驱动程序,它正在工作。 现在,假设我想在同一台PC上安装两个(相同的)这些pci-e卡。 它是如何工作的?我试图对司机进行insmod,我期望有一个“双重探测”的回调,但事实并非如此。那么,我该如何处理这种情况呢?由小号码?有人可以帮助我吗? ps pci卡是fpga开发板,所以它们实际上是“一样的”卡,也许我必须区分硬件中的某些东西?