Bug#584846: Detects only 64MB and fails to boot on Intel Green City board if e820 hooked by GRUB2
On 06/12/2010 11:55 AM, Josh Triplett wrote:
>> It's kind of hard to know what is involved, since clearly it relates to
>> Grub2, which -- how do I say this politely -- seems to excel at doing
>> things in the most inferior way possible. This is a great example of that.
>> The most likely reason it fails is because Grub2 uses ACPI 3-style reads
>> of the board memory map, gets wrong results for the same reasons the
>> kernel do, and then pass then downstream to the kernel. As such, there
>> is absolutely nothing the kernel can do about it.
> grub2 doesn't do ACPI 3 reads; it always asks for 20 bytes, not 24.
> Also, note that it works with older Linux kernels (before the commit in
> question) and fails with newer ones. That doesn't rule out the
> possibility of a grub bug instead of a Linux bug, but since older Linux
> somehow coped with the situation, it seems like a regression that newer
> Linux cannot cope.
It's a regression of sorts, sure; but the new Linux code also boots on
real hardware which it didn't boot before. Since this requires Grub2
plus specific hardware, it is hard for me to track down what the problem
might be, but a good step on the way might be to use the Grub2 boot
procedure (with the drive remapping) to chainboot Syslinux, and run
meminfo.c32 which is a memory report debugging tool; it might be able to
give some answers at least.
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.