On 12/21/2015 06:10 AM, Arnd Bergmann wrote:
On Monday 21 December 2015, Gabriele Paoloni wrote:
-----Original Message----- From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel- owner@vger.kernel.org] On Behalf Of Tomasz Nowicki
Some platforms may not be fully compliant with generic set of PCI config accessors. For these cases we implement the way to overwrite accessors set before PCI buses enumeration. Algorithm that overwrite accessors matches against platform ID (DMI), domain and bus number, hopefully enough for all cases. All quirks can be defined using: DECLARE_ACPI_MCFG_FIXUP() and keep self contained.
I've got a couple of comments/questions about this patch..
- So according to this mechanism quirks would be supported only by vendors whose BIOS are SMBIOS compliant. Now personally I am ok with this but I don't know if this is OK in general as it would narrow down the number of platforms that would be able to define the quirks... Lorenzo, Arnd what is your opinion here?
I'd rather not see the quirks in mainline at all, and only support SBSA compliant machines,
There seems to exist a class of systems that were intended to be SBSA compliant, but after they were manufactured turn out to not be fully complaint. It would be nice to have Linux kernel support for some of these systems
There also seems to be historical precedent for quirk frameworks in various kernel subsystems to handle systems and devices that are not fully "Spec. Compliant".
or require the BIOS to work around the hardware quirks differently (e.g. by trapping config space access through secure firmware, or going through an AML method to be defined).
Some systems don't seem to have this capability. For example, in ARMv8 (A.K.A. arm64), I haven't been able to figure out how to trap these accesses to EL3 for emulation. The specification is 5700 pages long though, so perhaps I missed that bit.
I'm certainly ok with making it depend on SMBIOS if we are going to use something like this.
Arnd