Hi Gabriele, all,
On 05/24/2016 03:23 AM, Gabriele Paoloni wrote:
Sorry Gab, I guess I was really responding to earlier messages :)
I don't really have much to say here, except that it doesn't seem right to have an MCFG that describes a non-standard ECAM mapping.
The ACPI table that this mechanism relies upon is the one discussed in: https://lkml.org/lkml/2016/3/9/91
As you can see MCFG describes ECAM mappings, but we have a motherboard reserved resource outside the MCFG: Device (RES0) { Name (_HID, "HISI0081") // HiSi PCIe RC config base address Name (_CID, "PNP0C02") // Motherboard reserved resource Name (_CRS, ResourceTemplate (){ Memory32Fixed (ReadWrite, 0xb0080000 , 0x10000) }) }
This allows us to retrieve the address we need for accessing the config space on the RC (that is non-ECAM).
I was thinking that such mechanism could fit different vendors and allow them define their own quirks without spoiling the official and standard MCFG; also from the thread discussion you seemed quite ok with such solution...?
This could have been useful 2-3 years ago (when myself and others first pulled the fire alarm concerning the lack of upstreaming of the ACPI enablement for PCIe - which should have been fully upstream before the first platforms ever even shipped) but at this time we have shipping platforms that don't have tables built in this way. While we can go back around to vendors and try to get them to rebuild firmware, it would be by far preferable to adopt a solution that works with what is already being deployed in the field today. Such as OEM match in MCFG.
Jon.