Re: [PATCH 6/6] x86/PCI: quirk Thunderbolt PCI-to-PCI bridges

From: Alex Williamson
Date: Wed Jun 26 2013 - 18:15:21 EST


On Wed, 2013-06-26 at 14:59 -0600, Bjorn Helgaas wrote:
> [+cc Alex]
>
> On Wed, Jun 26, 2013 at 6:17 AM, Mika Westerberg
> <mika.westerberg@xxxxxxxxxxxxxxx> wrote:
> > On Tue, Jun 25, 2013 at 02:15:56PM -0700, Jesse Barnes wrote:
> >> On Tue, 25 Jun 2013 19:22:10 +0300
> >> Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> wrote:
> >>
> >> > + if (!(pci_probe & PCI_NOASSIGN_ROMS)) {
> >> > + pr_info("Thunderbolt host router detected disabling ROMs\n");
> >> > + pci_probe |= PCI_NOASSIGN_ROMS;
> >> > + }
> >>
> >> I wonder if this should just be the default on x86? Or do we allocate
> >> ROM space to address some other platform where we need it and the BIOS
> >> doesn't do it for the devices we care about?
> >
> > Good question. In our case it definitely helps to have pci=norom the
> > default. Can't tell if it might break something that depends on the current
> > behaviour.
>
> I think the current default behavior is that if the BIOS has assigned
> the ROM BAR, we keep that assignment, and if it hasn't, we allocate
> MEM space for it. And "pci=norom" means that we don't allocate MEM
> space for it, even if the BIOS hasn't assigned it.
>
> "pci=norom" is only implemented on x86. I think most other arches
> allocate MEM space for ROMs, with no way to turn that off. PA-RISC
> seems to ignore ROMs (dino_fixup_bus()), but that looks like the
> exception.
>
> I'm slightly concerned that if we make the x86 default be "never
> assign space for ROMs unless the BIOS has done it," we might break
> virtualized guests that need access to ROMs. Alex?

Yep, I'm more than slightly concerned by that too. Whenever possible we
want to pass the ROM to the guest since it may end up being a boot
device or drivers within the guest may require it. We can pass the ROM
to the guest from an image file, but that requires someplace from which
to dump the image, which is usually PCI sysfs. Thanks,

Alex

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/