[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: arm: setup sane EL1 state while building domain 0.
On 03/17/2014 11:31 PM, Ian Campbell wrote: > The address translation functions used while building dom0 rely on certain EL1 > state being configured. In particular they are subject to the behaviour of > SCTLR_EL1.M (stage 1 MMU enabled). > > The Xen (and Linux) boot protocol require that the kernel be entered with the > MMU disabled but they don't say anything explicitly about exception levels > other than the one which is active when entering the kernels. Arguably the > protocol could be said to apply to all exception levels but in any case we > should cope with this and setup the EL1 state as necessary. > > Fu Wei discovered this when booting Xen from grub.efi over UEFI, it's not > clear whether grub or UEFI is responsible for leaving stage 1 MMU enabled. > > Reported-by: Fu Wei <fu.wei@xxxxxxxxxx> > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > Cc: Fu Wei <fu.wei@xxxxxxxxxx> > --- > Fu Wei, can I add your Tested-by here? Yes, Thanks! I have tested this with my GRUB binary, it works fine. > --- > xen/arch/arm/domain_build.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c > index 5ca2f15..ea47af5 100644 > --- a/xen/arch/arm/domain_build.c > +++ b/xen/arch/arm/domain_build.c > @@ -1022,6 +1022,13 @@ int construct_dom0(struct domain *d) > > /* The following loads use the domain's p2m */ > p2m_load_VTTBR(d); > + /* Various EL2 operations, such as guest address translations used > + * part of the domain build, rely on EL1 state (i.e. whether the > + * guest has paging enabled). Since the bootloader may have left > + * this state in an arbitrary configuration set it to something > + * safe here. > + */ > + WRITE_SYSREG32(SCTLR_GUEST_INIT, SCTLR_EL1); > #ifdef CONFIG_ARM_64 > d->arch.type = kinfo.type; > if ( is_pv32_domain(d) ) > -- Best regards, Fu Wei LAVA Engineer From Red Hat LAVA Team Linaro.org | Open source software for ARM SoCs Ph: +86 186 2020 4684 (mobile) IRC: fuwei Skype: tekkamanninja Room 1512, Regus One Corporate Avenue,Level 15, One Corporate Avenue,222 Hubin Road,Huangpu District, Shanghai,China 200021 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |