From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: stefano.stabellini@eu.citrix.com, tim@xen.org, xen-devel@lists.xen.org
Subject: Re: [PATCH 04/17] xen: arm: support building a 64-bit dom0 domain
Date: Mon, 29 Jul 2013 19:29:32 +0100 [thread overview]
Message-ID: <51F6B48C.8060503@linaro.org> (raw)
In-Reply-To: <1375100466-7564-4-git-send-email-ian.campbell@citrix.com>
On 07/29/2013 01:20 PM, Ian Campbell wrote:
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
My apologies, I didn't give a try of this patch series until now.
This patch breaks DOM0 boot on the Arndale Board.
> ---
> v3: rebased. as part of this move PSR_GUEST_INIT out of the public interface
> ---
> xen/arch/arm/domain_build.c | 10 +++++++---
> xen/include/asm-arm/processor.h | 2 ++
> xen/include/public/arch-arm.h | 2 --
> 3 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 155b436..dd54014 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -588,9 +588,7 @@ int construct_dom0(struct domain *d)
>
> memset(regs, 0, sizeof(*regs));
>
> - regs->pc = (uint32_t)kinfo.entry;
> -
> - regs->cpsr = PSR_GUEST_INIT;
> + regs->pc = (register_t)kinfo.entry;
>
> #ifdef CONFIG_ARM_64
> d->arch.type = kinfo.type;
> @@ -598,6 +596,11 @@ int construct_dom0(struct domain *d)
>
> if ( is_pv32_domain(d) )
> {
> + regs->cpsr = PSR_GUEST_INIT|PSR_MODE_SVC;
> +
> + /* Pretend to be a Cortex A15 */
> + d->arch.vpidr = 0x410fc0f0;
It's not related to the bug. But why do you fake the VPIDR for each
32-bits guest even on real 32-bits hardware?
> +
> /* FROM LINUX head.S
> *
> * Kernel startup entry point.
> @@ -615,6 +618,7 @@ int construct_dom0(struct domain *d)
> #ifdef CONFIG_ARM_64
> else
> {
> + regs->cpsr = PSR_GUEST_INIT|PSR_MODE_EL1h;
> /* From linux/Documentation/arm64/booting.txt */
> regs->x0 = kinfo.dtb_paddr;
> regs->x1 = 0; /* Reserved for future use */
> diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
> index 5181e7b..2c20821 100644
> --- a/xen/include/asm-arm/processor.h
> +++ b/xen/include/asm-arm/processor.h
> @@ -46,6 +46,8 @@
> #define SCTLR_BASE 0x00c50078
> #define HSCTLR_BASE 0x30c51878
>
> +#define PSR_GUEST_INIT (PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK)
> +
> /* HCR Hyp Configuration Register */
> #define HCR_TGE (1<<27)
> #define HCR_TVM (1<<26)
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index 8aa62d3..cea12b2 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -237,8 +237,6 @@ typedef uint64_t xen_callback_t;
> #define PSR_IT_MASK (0x0600fc00) /* Thumb If-Then Mask */
> #define PSR_JAZELLE (1<<24) /* Jazelle Mode */
>
> -#define PSR_GUEST_INIT (PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC)
> -
> #endif /* __XEN_PUBLIC_ARCH_ARM_H__ */
>
> /*
>
next prev parent reply other threads:[~2013-07-29 18:29 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-29 12:20 [PATCH v4 00/17] xen: arm: 64-bit dom0 kernel support Ian Campbell
2013-07-29 12:20 ` [PATCH 01/17] xen: arm: tweak arm64 stack frame layout Ian Campbell
2013-07-29 12:20 ` [PATCH 02/17] xen: arm: rename 32-bit specific zImage field offset constants Ian Campbell
2013-07-29 12:20 ` [PATCH 03/17] xen: arm: support for loading 64-bit zImage dom0 Ian Campbell
2013-07-29 12:20 ` [PATCH 04/17] xen: arm: support building a 64-bit dom0 domain Ian Campbell
2013-07-29 18:29 ` Julien Grall [this message]
2013-07-30 9:34 ` Ian Campbell
2013-07-30 9:43 ` Julien Grall
2013-08-02 16:07 ` Ian Campbell
2013-07-29 12:20 ` [PATCH 05/17] xen: arm: precalculate VTTBR_EL2 for a domain when setting up its p2m Ian Campbell
2013-07-29 12:20 ` [PATCH 06/17] xen: arm: improve register dump output for 64-bit guest (and more generally too) Ian Campbell
2013-07-29 12:53 ` Tim Deegan
2013-07-29 12:20 ` [PATCH 07/17] xen: arm: support dumping 64-bit guest stack Ian Campbell
2013-07-29 12:20 ` [PATCH 08/17] xen: arm: show less words in a line of a stack trace in 64-bit builds Ian Campbell
2013-07-29 12:20 ` [PATCH 09/17] xen: arm: Set EL1 register width in HCR_EL2 during context switch Ian Campbell
2013-07-29 12:20 ` [PATCH 10/17] xen: arm: some cleanups to hypervisor entry code Ian Campbell
2013-07-29 12:56 ` Tim Deegan
2013-07-29 12:21 ` [PATCH 11/17] xen: arm: refactor 64-bit return from trap path Ian Campbell
2013-07-29 13:01 ` Tim Deegan
2013-07-29 12:21 ` [PATCH 12/17] xen: arm: handle traps from 64-bit guests Ian Campbell
2013-07-29 13:49 ` Tim Deegan
2013-07-29 12:21 ` [PATCH 13/17] xen: arm: handle hypercalls " Ian Campbell
2013-07-29 12:21 ` [PATCH 14/17] xen: arm: handle 64-bit system register access traps Ian Campbell
2013-07-29 12:21 ` [PATCH 15/17] xen: arm: align some comments Ian Campbell
2013-07-29 12:21 ` [PATCH 16/17] xen: arm: document HCR bits Ian Campbell
2013-07-29 12:21 ` [PATCH 17/17] xen: arm: Handle SMC from 64-bit guests Ian Campbell
2013-07-29 13:53 ` Tim Deegan
2013-07-29 12:21 ` [PATCH v4 00/17] xen: arm: 64-bit dom0 kernel support Ian Campbell
2013-07-29 15:58 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51F6B48C.8060503@linaro.org \
--to=julien.grall@linaro.org \
--cc=ian.campbell@citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.