[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH][IOEMU] fix invisibility of PCI Option ROM
Hi, This is the revised patch with Shimada-san's suggestions. If 'lspci -v' command on Dom0 shows '[virtual]' as follows, the option ROM can't be read by the guest. $ lspci -v -s 0:1 ... [virtual] Expansion ROM at fdb00000 [disabled] [size=256K] Thanks, Kouya Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx> diff --git a/hw/pass-through.c b/hw/pass-through.c index 77ab759..2aebf0c 100644 --- a/hw/pass-through.c +++ b/hw/pass-through.c @@ -1403,6 +1403,15 @@ static int pt_register_regions(struct pt_dev *assigned_device) /* Register expansion ROM address */ if ( pci_dev->rom_base_addr && pci_dev->rom_size ) { + + /* Re-set BAR reported by OS, otherwise ROM can't be read. */ + bar_data = pci_read_long(pci_dev, PCI_ROM_ADDRESS); + if ( (bar_data & PCI_ROM_ADDRESS_MASK) == 0 ) + { + bar_data |= (pci_dev->rom_base_addr & PCI_ROM_ADDRESS_MASK); + pci_write_long(pci_dev, PCI_ROM_ADDRESS, bar_data); + } + assigned_device->bases[PCI_ROM_SLOT].e_physbase = pci_dev->rom_base_addr; assigned_device->bases[PCI_ROM_SLOT].access.maddr = _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |