|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 13/15] libxc: arm64 vcpu initialisation
On 10/07/2013 05:39 PM, Ian Campbell wrote:
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
> tools/libxc/xc_dom_arm.c | 90
> ++++++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 88 insertions(+), 2 deletions(-)
>
> diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
> index ecdaea9..a6d2259 100644
> --- a/tools/libxc/xc_dom_arm.c
> +++ b/tools/libxc/xc_dom_arm.c
> @@ -105,7 +105,7 @@ static int shared_info_arm(struct xc_dom_image *dom, void
> *ptr)
>
> /* ------------------------------------------------------------------------
> */
>
> -static int vcpu_arm(struct xc_dom_image *dom, void *ptr)
> +static int vcpu_arm32(struct xc_dom_image *dom, void *ptr)
> {
> vcpu_guest_context_t *ctxt = ptr;
>
> @@ -143,6 +143,41 @@ static int vcpu_arm(struct xc_dom_image *dom, void *ptr)
> return 0;
> }
>
> +static int vcpu_arm64(struct xc_dom_image *dom, void *ptr)
> +{
> + vcpu_guest_context_t *ctxt = ptr;
> +
> + DOMPRINTF_CALLED(dom->xch);
> + /* clear everything */
> + memset(ctxt, 0, sizeof(*ctxt));
> +
> + ctxt->user_regs.pc64 = dom->parms.virt_entry;
> +
> + /* Linux boot protocol. See linux.Documentation/arm/Booting. */
> + ctxt->user_regs.x0 = dom->devicetree_blob ?
> + dom->devicetree_seg.vstart : 0xffffffff;
> + ctxt->user_regs.x1 = 0;
> + ctxt->user_regs.x2 = 0;
> + ctxt->user_regs.x3 = 0;
> +
> + DOMPRINTF("DTB %"PRIx64, ctxt->user_regs.x0);
> +
> + ctxt->sctlr = /* #define SCTLR_BASE */0x00c50078;
> +
> + ctxt->ttbr0 = 0;
> + ctxt->ttbr1 = 0;
> + ctxt->ttbcr = 0; /* Defined Reset Value */
> +
> + ctxt->user_regs.cpsr =
> PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_EL1h;
PSR_MODE_EL1h is only defined on arm64. I think you will need to prefix
all the code by #ifdef __aarch64__
BTW, can you use PSR_GUEST64_INIT here? So if we modified it in Xen, the
behaviour will also change here.
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |