On Thu, May 27, 2021 at 11:34:52AM -0500, Bjorn Helgaas wrote: [...] > > > https://lore.kernel.org/r/20210510234020.1330087-1-luzmaximilian@xxxxxxxxx > > > > Sigh. We can't apply this patch since it would trigger regressions on > > other platforms (IIUC the root complex registers would end up in the > > host bridge memory windows). > > > > I am not keen on reverting commit 8fd4391ee717 because it does the > > right thing. > > > > I think this requires a quirk and immediate reporting to Microsoft. > > > > Bjorn, what are your thoughts on this ? > > In retrospect, I think 8fd4391ee717 (which I wrote), was probably a > mistake. > > Sure, it's a nice idea to have PNP0A03 _CRS methods that work nicely > as designed, by describing host bridge registers as "consumer" > resources and host bridge windows as "producer" registers, instead of > having the bridge registers in _CRS of an unrelated PNP0C02 device. > > But realistically, the PNP0A03/PNP0C02 issue is a solved problem, even > though it's ugly, and I'm not sure why I thought Microsoft would see > value in doing this differently on arm64 than on x86 and ia64. We hoped we could comply with the specs, given that we were starting from a clean slate (and not from ACPI tables cut and paste) > What would break if we reverted 8fd4391ee717? I guess any arm64 > platforms that described host bridge register space in PNP0A03 _CRS > "consumer" resources ? Yes. We would end up with that register space in the host bridge memory windows - this does not sound right. > And Windows probably doesn't work or isn't supported on those > platforms? By the look of it the answer is yes, Windows was not bootstrapped on those platforms given that I *assume* Windows does not discriminate between producer and consumer resources at all. Lorenzo