[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] libxc/arm: Correctly handle the difference between virtual and physical address



On Tue, 2013-12-10 at 18:16 +0000, Julien Grall wrote:
> This issue is when as virt == phys, build ELF with virt != phys is very 
> difficult.

OK, so I think I was mislead by your commit message, this is not
actually about virt vs phys as such (or as represented in the ELF
header) but is actually more about link address vs. load address. Where
link address == ELF vaddr (==paddr). And because the MMU is disable load
address == some vaddr (==paddr), which may differ from the ELF vaddr.

The terminology in xc_dom, which uses vaddr a lot because of PV x86,
isn't helpful here but is that an accurate summary?

[...]
> When the guest is creating, the ELF should loaded like zImage at the specific
> physical address.

So that would be my next question -- where does this load address come
from?

I suppose it has to be the 0x80100000 kernel physical address you gave
earlier?

I think this means "where is dom->parms.virt_base" initialised. Have you
added some ELF notes to your BSD kernel image?

>  Then the guest will start will MMU turn off, and during the
> first instructions it will use fixup to get the right address.

"fixup" == enable the MMU, or "fixup" == some sort of relocation/PIC?

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.