Re: [PATCH] x86 boot: Pass E820 memory map entries more than 128via linked list of setup data

From: Huang, Ying
Date: Mon Jun 23 2008 - 01:51:22 EST


Hi, Paul,

This patch can be used for machine whose E820 memory map has more than
128 entries. So it is not necessary to use EFI memory map for this (EFI
memory map is used for EFI runtime services only).

With this patch, your previous patch:

x86 boot: add code to add BIOS provided EFI memory entries to kernel

is not necessary, so can be reversed.

What do you think about that?

Best Regards,
Huang Ying

On Wed, 2008-06-18 at 13:45 +0200, Ingo Molnar wrote:
> * Huang, Ying <ying.huang@xxxxxxxxx> wrote:
>
> > Because of the size limits of struct boot_params (zero page), the
> > maximum number of E820 memory map entries can be passed to kernel is
> > 128. As pointed by Paul Jackson, there is some machine produced by SGI
> > with so many nodes that the number of E820 memory map entries is more
> > than 128. To enabling Linux kernel on these system, a new setup data
> > type named SETUP_E820_EXT is defined to pass additional memory map
> > entries to Linux kernel.
> >
> > This patch is based on x86/auto-latest branch of git-x86 tree and has
> > been tested on x86_64 and i386 platform.
>
> applied to tip/x86/mpparse, thanks.
>
> this bit collided with a recent change:
>
> > - do {
> > - u64 start = biosmap->addr;
> > - u64 size = biosmap->size;
> > - u64 end = start + size;
> > - u32 type = biosmap->type;
> > -
> > - /* Overflow in 64 bits? Ignore the memory map. */
> > - if (start > end)
> > - return -1;
> > -
> > - add_memory_region(start, size, type);
> > - } while (biosmap++, --nr_map);
> > - return 0;
> > + return __copy_e820_map(biosmap, nr_map);
>
> because add_memory_region() got renamed to e820_add_region(). I did the
> obvious fixup.
>
> Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/