【问题标题】:How to interpret the contents of /proc/bus/pci/devices?如何解释 /proc/bus/pci/devices 的内容?
【发布时间】:2010-05-07 18:02:02
【问题描述】:

“cat /proc/bus/pci/devices”的前几个字段是可以理解的。

字段 1 - BusDevFunc
字段 2 - 供应商 ID + 设备 ID
字段 3 - 中断线路
字段 4 - BAR 0
以及之后的其余 BAR 寄存器 (0 - 5)。

BAR 寄存器打印出来后,其他字段是什么?具体来说,打印出哪些 PCI 配置空间寄存器(偏移量)?

【问题讨论】:

  • 我做了serverfault.com/questions/139670/… 这应该被关闭吗?
  • 您应该完全从 serverfault.com 中删除您的重复问题;之后随时在此处标记此问题以转移到 serverfault。 (作为一种激励,我在那里对你投了反对票。——当你删除你的服务器故障问题时,你重新获得了声誉。)
  • 为什么要将问题移至 serverfault?这是一道编程题。如果需要,我可以将其从服务器故障中删除或在此处指向此答案。但是移动它是没有意义的。
  • 你知道它已经指向stackoverflow的答案。所以,我不知道你为什么投反对票。随便。

标签: linux pci-bus procfs


【解决方案1】:

这是内核中对应的代码:

static int show_device(struct seq_file *m, void *v)
{
    const struct pci_dev *dev = v;
    const struct pci_driver *drv;
    int i;

    if (dev == NULL)
        return 0;

    drv = pci_dev_driver(dev);
    seq_printf(m, "%02x%02x\t%04x%04x\t%x",
            dev->bus->number,
            dev->devfn,
            dev->vendor,
            dev->device,
            dev->irq);
    /* Here should be 7 and not PCI_NUM_RESOURCES as we need to preserve compatibility */
    for (i=0; i<7; i++) {
        resource_size_t start, end;
        pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
        seq_printf(m, "\t%16llx",
            (unsigned long long)(start |
            (dev->resource[i].flags & PCI_REGION_FLAG_MASK)));
    }
    for (i=0; i<7; i++) {
        resource_size_t start, end;
        pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
        seq_printf(m, "\t%16llx",
            dev->resource[i].start < dev->resource[i].end ?
            (unsigned long long)(end - start) + 1 : 0);
    }
    seq_putc(m, '\t');
    if (drv)
        seq_printf(m, "%s", drv->name);
    seq_putc(m, '\n');
    return 0;
}

在 IRQ 之后,它似乎是起始地址与前 6 个资源区域的标志组合,然后是这些资源区域的长度,然后是声明该设备的驱动程序的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 2013-06-21
    相关资源
    最近更新 更多