[Xen-devel] [PATCH] PCI subsystem ids

Frank van der Linden
Wed, 20 Aug 2008 17:04:02 -0000

[sorry if you get this twice, I had an email hiccup sending this]

Hi folks,

In our SVVP testing, we noticed that the Microsoft HCT requires that PCI
subsystem IDs are set for all PCI devices. Meaning that for Xen to be a
compliant virtualization platform, qemu-dm must have these set for all
devices.

A comment in tools/ioemu/hw/xen_platform.c notes that this is a known
issue, and other source files show that the intent is to use the
XenSource ID (0x5853) for the subsystem vendor ID, and 0x0001 for the
subsystem id throughout.

But, this isn''t done across the board (e.g. the PIIX bridge devices
don''t have these IDs). This makes the Microsoft HCT fail.

Attached is a patch that makes pci_register_device initialize these
values with the 0x5853/0x0001 defaults, and removes the explicit inits
of these values in the various devices.

A few issues that are worthy of discussion: since Windows use the
subsystem IDs in its device tree, Windows systems will come up with
''found new hardware'' after this patch. But, they will just
reload the
same driver, of course, and live happily ever after. Also, we considered
using Sun PCI subsystem IDs (as we do on our actual hardware), but
figured that it would be better to use the XenSource ids, so that all
Xen-based products out there can use eachothers virtual machines with
minimal hassle.

- Frank