Hi, Paul,
Sorry for my late. I am busy on something other these days.
Because EFI memory map are converted to E820 memory map in boot loader
if the converted E820 entry number is below 128 now, I think it is
better to do all the conversion in boot loader. The limitation lies in
the size of struct boot_params (zero page), which is 4k. But there is an
extension to struct boot_params named linked list of struct setup_data
in a previous patch:
http://lkml.org/lkml/2008/3/27/26
With the help of linked list of struct setup_data, the E820 memory map
with more than 128 entries in EFI system can be passed to kernel as
follow.
1. In boot loader, EFI memory map is converted to E820 memory map A
2. The low 128 map entries of map A is copied to e820_map of struct
boot_params.
3. A setup_data struct is constructed to hold the other E820 entries.
4. In Linux kernel, the E820 map entries from both struct boot_params
and setup_data are used.
Best Regards,
Huang Ying
On Wed, 2008-05-14 at 08:15 -0700, Paul Jackson wrote: