diff options
author | Huang, Ying <ying.huang@intel.com> | 2008-06-11 11:33:39 +0800 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 10:37:39 +0200 |
commit | 8c5beb50d3ec915d15c4d38aa37282309a65f14e (patch) | |
tree | ace1ef10fb672f0e28182ffc9e460147455c2ea8 /include | |
parent | b5bc6c0e55000dab86b73f838f5ad02908b23755 (diff) |
x86 boot: pass E820 memory map entries more than 128 via linked list of setup data
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.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86/bootparam.h | 1 | ||||
-rw-r--r-- | include/asm-x86/e820.h | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/include/asm-x86/bootparam.h b/include/asm-x86/bootparam.h index 0a073904168..876f2113666 100644 --- a/include/asm-x86/bootparam.h +++ b/include/asm-x86/bootparam.h @@ -11,6 +11,7 @@ /* setup data types */ #define SETUP_NONE 0 +#define SETUP_E820_EXT 1 /* extensible setup data list node */ struct setup_data { diff --git a/include/asm-x86/e820.h b/include/asm-x86/e820.h index 55d31059690..77fc24d8916 100644 --- a/include/asm-x86/e820.h +++ b/include/asm-x86/e820.h @@ -69,6 +69,8 @@ extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, unsigned new_type); extern void update_e820(void); extern void e820_setup_gap(void); +struct setup_data; +extern void parse_e820_ext(struct setup_data *data, unsigned long pa_data); #if defined(CONFIG_X86_64) || \ (defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION)) |