WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Xen refuses to load minimal dom0 kernel

To: Julian Stecklina <der_julian@xxxxxx>
Subject: Re: [Xen-devel] Xen refuses to load minimal dom0 kernel
From: Grzegorz Milos <gm281@xxxxxxxxx>
Date: Tue, 23 Jan 2007 19:12:42 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 23 Jan 2007 11:12:27 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <ep2ahk$8pu$1@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <ep2ahk$8pu$1@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I am trying to link a minimal Domain 0 kernel (adapted from the Mini-OS), but when Xen tries to build the Domain 0 it panics:

"Domain 0 allocation is too small for kernel image."

which is caused by the following code in xen/arch/x86/domain_build.c:

    order = get_order_from_bytes(v_end - dsi.v_start);
    if ( (1UL << order) > nr_pages )
        panic("Domain 0 allocation is too small for kernel image.\n");

The linker script I am using is adapted from the Mini-OS and links .text at 0xC0000000 + 0x100000, just like the Linux kernel does. Does any one has any hints what I am doing wrong and what this test actually checks for?

Mini-OS assumes .text at 0x0. Since you've changed that, you better make corresponding changes to VIRT_BASE and ELF_PADDR_OFFSET in mini- os/arch/x86/x86_32.S. If that does not help, could you send an output of the following printk added just before the if statement?
printk("v_start=%lx v_end=(%lx, %lx)\n", dsi.v_start, v_end, dsi.v_end);

Thanks
Gregor

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel