Re: [PATCH 1/1] Fix boot on efi 32 bit Machines [try #4]

Edgar Hucek
2006-07-13T21:46:16Z

I converted the efi memory map to use the e820 table.
While converting i discovered why the kernel would allways
fail to boot through efi on Intel Macs without a proper fix.

>From kernel 2.6.16 to kernel 2.6.17 a new check is made.
File arch/i386/pci/mmconfig.c -> funktion pci_mmcfg_init -> check e820_all_mapped
The courios thing is that this check will always fail on the
Intel Macs booted through efi. Parsing of the ACPI_MCFG table
returns e0000000 for the start. But this location is
not in the memory map which the efi firmware have :
BIOS-EFI: 00000000e00f8000 - 00000000e00f9000 (reserved)
So the e820_all_mapped would allways fail.
Anny suggestions how to fix this problem ? Maybe some kind
of whitelisting, using dmi_check_system ?

cu

Edgar Hucek

Eric W. Biederman schrieb:
> Edgar Hucek <hostmaster@ed-soft.at> writes:
>
>> I agre with you to make efi use the e820 map as a long term solution.
>> But at the moment the efi part is completley broken without my patch.
>
> But your patch isn't a fix. It is a hack to make the system boot.
>
> A patch that performed the same check on the efi memory map,
> or it converted the efi memory map to use an e820 map it would be a fix.
>
>> At least on Intel Macs.
>> Without the patch also my Imacfb driver makes no sense, since it is
>> for efi booted Intel Macs.
>
> My point is that the kernel efi support is broken. You have just found
> the location where the bone is poking through the skin.
>
> I am tempted to write a patch to delete the x86 efi support at this
> point. So that it is very clear that it needs to be completely redone.
>
> Eric
>