lkml.org 
[lkml]   [2008]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] x86: extend e820 ealy_res support 32bit - fix #2
On Wed, May 28, 2008 at 3:01 AM, Jeremy Fitzhardinge <jeremy@goop.org> wrote:
> Yinghai Lu wrote:
>>
>> can you try attached patch?
>>
>
> Thanks, that nearly works. I needed the patch below to get it to
> successfully boot.
>
> For reference, this is what the early reserve map looks like now:
>
> (early) 256MB LOWMEM available.
> (early) low ram: 02634000 - 10000000
> (early) bootmap 02634000 - 02636000
> (early) early res: 0 [0-fff] BIOS data page
> (early) early res: 1 [1000-1fff] EX TRAMPOLINE
> (early) early res: 2 [6000-6fff] TRAMPOLINE
> (early) early res: 3 [25db000-261dfff] XEN
> (early) early res: 4 [1000000-18a8303] TEXT DATA BSS
> (early) early res: 5 [18a9000-25dafff] RAMDISK
> (early) early res: 6 [261e000-2633fff] INIT_PG_TABLE
> (early) early res: 7 [2634000-2635fff] BOOTMAP
>
>
> J
>
>
> Subject: xen: reserve_early Xen-specific memory
>
> Make sure that the start_info and pfn->mfn translation array are reserved.
> i386_start_kernel will arrange to reserve the kernel code/data, initrd
> and pagetable.
>
> Also, add prototype for i386_start_kernel.
>
> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
> ---
> arch/x86/xen/enlighten.c | 9 +++++++++
> include/asm-x86/setup.h | 1 +
> 2 files changed, 10 insertions(+)
>
> ===================================================================
> --- a/arch/x86/xen/enlighten.c
> +++ b/arch/x86/xen/enlighten.c
> @@ -1266,6 +1266,15 @@
> add_preferred_console("hvc", 0, NULL);
> }
>
> + /*
> + * Reserve Xen bits:
> + * - mfn_list
> + * - xen_start_info
> + * See comment above "struct start_info" in <xen/interface/xen.h>
> + */
> + reserve_early(__pa(xen_start_info->mfn_list),
> + __pa(xen_start_info->pt_base), "XEN");
> +

can we use e820 entries for that? So the domain builder could have
several entries for E820_RAM and E820_RESERVED...

> /* Start the world */
> i386_start_kernel();
> }
> ===================================================================
> --- a/include/asm-x86/setup.h
> +++ b/include/asm-x86/setup.h
> @@ -58,6 +58,7 @@
> int __init copy_e820_map(struct e820entry *biosmap, int nr_map);
> void __init add_memory_region(unsigned long long start,
> unsigned long long size, int type);
> +void __init i386_start_kernel(void);

will need x86_64_start_kernel there, maybe we should change all name
to x86_start_kernel

YH


\
 
 \ /
  Last update: 2008-05-28 22:51    [W:0.078 / U:0.808 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site