From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v2] tools: implement initial ramdisk support for ARM. Date: Tue, 08 Apr 2014 19:20:29 +0100 Message-ID: <53443DED.8060901@linaro.org> References: <1396618125-1623-1-git-send-email-ian.campbell@citrix.com> <21310.51440.15560.997315@mariner.uk.xensource.com> <1396971362.22845.266.camel@kazak.uk.xensource.com> <21316.10617.170497.479163@mariner.uk.xensource.com> <534431E3.7080207@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <534431E3.7080207@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Jackson , Ian Campbell Cc: stefano.stabellini@eu.citrix.com, tim@xen.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 04/08/2014 06:29 PM, Julien Grall wrote: > Hi Ian & Ian, > > On 04/08/2014 05:53 PM, Ian Jackson wrote: >> Ian Campbell writes ("Re: [PATCH v2] tools: implement initial ramdisk support for ARM."): >>> On Fri, 2014-04-04 at 16:00 +0100, Ian Jackson wrote: >>>> I think this is a viable backport candidate. Can you let me know when >>>> it's in-tree and I'll add it to my list >>> >>> It's in now, commit 314c9815e2f5dc8a9fec11e0cf9b49b16ed0e96b >> >> Noted, thanks. > > I'm unable to boot a guest with this patch on Xen 4.5. Revert it works > correctly. The guest is blocked without useful log. > > My config: > > kernel="/root/zImage" > memory=128 > name="test" > vcpus=2 > autoballon="off" > root="/dev/xvda" > extra="console=hvc0" > disk=[ 'phy:/dev/loop0,xvda,w' ] > This small changes fix boot of the guest with RAM < 128Mb: diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c index f051515..2228ba5 100644 --- a/tools/libxc/xc_dom_arm.c +++ b/tools/libxc/xc_dom_arm.c @@ -300,7 +300,7 @@ int arch_setup_meminit(struct xc_dom_image *dom) if ( ramend >= ram128mb + modsize && kernend < ram128mb ) modbase = ram128mb; else if ( ramend >= kernend + modsize ) - modbase = kernend; + modbase = ramend - modsize; else return -1; I guess this is because the kernel is extracting on it. I think we should follow the same "algorithm" as Xen (see place_modules) to decide where the modules should be loaded. Regards, -- Julien Grall