From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julian Stecklina Subject: Re: Xen refuses to load minimal dom0 kernel Date: Wed, 24 Jan 2007 15:21:27 +0100 Message-ID: <45B76B67.80605@web.de> References: <1B92BEF5-5EE6-48AC-B33C-E5B43CDE5C54@cam.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1B92BEF5-5EE6-48AC-B33C-E5B43CDE5C54@cam.ac.uk> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Grzegorz Milos wrote: >> 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); I finally got it to work by closely following what the startup code and linker script of the Linux kernel do. Is there any documentation on what the hypervisor expects from a Domain 0 and in general how the Domain 0 environment differs from that of a DomU (e.g., memory management, console, xenbus)? Regards, Julian