PCI 2.1 specifies a way to provide VPD in the expansion ROM. This patch series exposes that in the same way as PCI 2.2 VPD. I do not have any production devices with VPD in ROM so I reflashed a NIC with an image including it. This code should be tested against some production ROMs since I may have misinterpreted the specification both when reading and writing! There are two remaining aspects of this that I'm not quite happy about: 1. I understand that the expansion ROM may share a decoder with BAR 0, which makes expansion ROM access dangerous when a driver is loaded. The sysfs "rom" attribute must be specifically read-enabled by writing to it, which I assume is intended to protect against this. Perhaps pci_vpd_pci21_read() should test pdev->rom_attr_enabled? 2. PCI resource allocation may fail during pci_scan_device() and therefore I could not insert the call to pci_vpd_pci21_init() there. Instead I added it to pci_create_sysfs_dev_files() - but I don't really think this function should be probing. Is there a better place to add the call? Ben. Ben Hutchings (2): PCI: ROM access changes to support PCI 2.1 VPD PCI: Expose PCI 2.1 VPD through sysfs drivers/pci/pci-sysfs.c | 2 +- drivers/pci/pci.h | 1 + drivers/pci/rom.c | 245 +++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 206 insertions(+), 42 deletions(-) -- Ben Hutchings, Senior Software Engineer, Solarflare Communications Not speaking for my employer; that's the marketing department's job. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html