From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [XenARM] Moving Guest RAM address to other location than 0x80000000 Date: Wed, 09 Oct 2013 17:58:24 +0100 Message-ID: <52558B30.70302@linaro.org> References: <5255822D.5070603@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Eric Trudeau Cc: "xen-devel (xen-devel@lists.xen.org)" List-Id: xen-devel@lists.xenproject.org On 10/09/2013 05:34 PM, Eric Trudeau wrote: >> -----Original Message----- >> From: Julien Grall [mailto:julien.grall@linaro.org] >> Sent: Wednesday, October 09, 2013 12:20 PM >> To: Eric Trudeau >> Cc: xen-devel (xen-devel@lists.xen.org) >> Subject: Re: [Xen-devel] [XenARM] Moving Guest RAM address to other location >> than 0x80000000 >> >> On 10/09/2013 04:57 PM, Eric Trudeau wrote: >> >> Hi, >> >>> Can I move the Guest RAM address to something other than 0x80000000? >>> I would like to move the Guest RAM to 0 if possible. >>> >>> >>> >>> I get a crash while creating the domain when I just change the following >>> in tools/libxc/xc_dom_armzimageloader.c: >> >> >>> #define GUEST_RAM_BASE 0x00000000 /* was 0x80000000 */ >> >> Did you modify the guest DTS? If not, you need to fix the "reg" property >> in memory node. >> > Yes, I have a memory region of 0 in the DT. > > The crash is very early. Could there be another code dependency on RAM starting at 0x80000000 (e.g. guest mapping)? I don't see other dependencies in the code. Did you check that the jump address is correct (dom->parms.virt_entry)? > BTW: xl destroy dom1 hangs when trying to destroy this guest. That's normal, one of the CPU has received an non-handled hypervisor trap that is result to an infinite loop in hyp mode for this CPU. After few minutes you should see strange warning from the dom0 kernel. I think we should correctly handle EC=0x20 (ie prefetch abort). > > ------------------------------------------------------------------------------- > dom0 # xl create -c dom1.cfg Can you paste the log of the following command? xl -vvv create -c dom1.cfg > Parsing config from dom1.cfg > (XEN) physdev.c:57: dom1: gic_route_irq_to_guest mapped in IRQ 108 > (XEN) memory_map:add: dom1 gfn=0 mfn=0 nr=80000 > (XEN) memory_map:add: dom1 gfn=a0000 mfn=a0000 nr=20000 > (XEN) memory_map:add: dom1 gfn=f0000 mfn=f0000 nr=1000 > device vif1.0 entered promiscuous mode > (XEN) Hypervisor Trap. HSR=0x80000006 EC=0x20 IL=0 Syndrome=6 It seems Xen received a prefetch abort, which means that the kernel is trying to fetch an instruction in a non mapped address. > Daemon running with PID 681(XEN) CPU3: Unexpected Trap: Hypervisor > > (XEN) ----[ Xen-4.4-unstable arm32 debug=y Tainted: C ]---- > (XEN) CPU: 3 > (XEN) PC: ff7f4014 The PC address looks weird. Silly question, Did you try to boot the guest with the current GUEST_RAM_BASE (ie 0x80000000)? -- Julien Grall