There have been several machines that don't have a working MMCONFIG,
often because of a buggy MCFG table in the ACPI bios. This patch adds a
simple sanity check that detects a whole bunch of these cases, and when
it detects it, linux now boots rather than crash-and-burns. [snip]
I am not sure if your analysis and your solution to the problem is correct. It was my understanding that any memory NOT defined in the E820 tables is NOT considered system memory. Therefore memory addresses defined in the ACPI MCFG table do not have to show up in the E820 table.
Also the ACPI spec v3.0 (pg 405 of PDF, section 14.2, titled:
"E820 Assumptions and Limitations") agrees with this:
"The BIOS does not return a range description for the memory mapping
of PCI devices, ISA Option ROMs, and the ISA PNP cards because the OS
has mechanisms available to detect them."
If this is not a specification issue, I was wondering if perhaps for the machines you refer to, their BIOS bug is that the E820 have memory ranges
which also encompass what MMCONF points to?