Re: [PATCH 3/4] x86, pci: Add interface to force mmconfig

From: Thomas Gleixner
Date: Tue Mar 14 2017 - 12:41:14 EST


On Tue, 14 Mar 2017, Andi Kleen wrote:

> > And the way how this function is used is a horrible hack. It's called from
> > a random driver at some random point in time.
> >
> > The proper solution is to identify the bus at the point where the bus is
> > discovered and switch it to mmconfig if possible.
>
> But how would you know that it is safe?
> AFAIK the only one who knows "this is an internal SOC device" is the driver.

The driver handles a specific device, but you apply that tweak to the bus
of which the device hangs off.

> Or are you saying it should be enabled unconditionally for everything?

No.

> Or define some quirk table just for this purpose?

Nope. It's about identifying the bus.

The bus which contains the uncore devices:

The Uncore devices reside on CPUBUSNO(1), which is the PCI bus assigned
for the processor socket. The bus number is derived from the max bus range
setting and the processor socket number.

So there should be a way to detect that and it would be appreciated if you
could talk to your hardware folks what's the programmatic way to figure it
out. Maybe there is information in ACPI as well.

Thanks,

tglx