Message ID | ecfb533c996af8757cfd630dbed5544fa1e9e3d5.1406728037.git.ian.campbell@citrix.com |
---|---|
State | New |
Headers | show |
Hi Ian, On 07/30/2014 02:47 PM, Ian Campbell wrote: > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c > index 6839acf..705b29b 100644 > --- a/xen/arch/arm/p2m.c > +++ b/xen/arch/arm/p2m.c > @@ -1059,6 +1059,24 @@ err: > return page; > } > > +void __cpuinit setup_virt_paging(void) > +{ > + /* Setup Stage 2 address translation */ > + /* SH0=11 (Inner-shareable) > + * ORGN0=IRGN0=01 (Normal memory, Write-Back Write-Allocate Cacheable) > + * SL0=01 (Level-1) > + * ARVv7: T0SZ=(1)1000 = -8 (32-(-8) = 40 bit physical addresses) > + * ARMv8: T0SZ=01 1000 = 24 (64-24 = 40 bit physical addresses) > + * PS=010 == 40 bits > + */ > +#ifdef CONFIG_ARM_32 > + WRITE_SYSREG32(0x80003558, VTCR_EL2); > +#else > + WRITE_SYSREG32(0x80023558, VTCR_EL2); > +#endif > + isb(); > +} > + > /* > * Local variables: > * mode: C > To consistent, I would also move the definition of setup_virt_paging from mm.h to p2m.h. I will let you choose on this so: Acked-by: Julien Grall <julien.grall@linaro.org>
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index 4ff783a..cf0b0cf 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -414,24 +414,6 @@ void __init arch_init_memory(void) BUG_ON(IS_ERR(dom_cow)); } -void __cpuinit setup_virt_paging(void) -{ - /* Setup Stage 2 address translation */ - /* SH0=11 (Inner-shareable) - * ORGN0=IRGN0=01 (Normal memory, Write-Back Write-Allocate Cacheable) - * SL0=01 (Level-1) - * ARVv7: T0SZ=(1)1000 = -8 (32-(-8) = 40 bit physical addresses) - * ARMv8: T0SZ=01 1000 = 24 (64-24 = 40 bit physical addresses) - * PS=010 == 40 bits - */ -#ifdef CONFIG_ARM_32 - WRITE_SYSREG32(0x80003558, VTCR_EL2); -#else - WRITE_SYSREG32(0x80023558, VTCR_EL2); -#endif - isb(); -} - static inline lpae_t pte_of_xenaddr(vaddr_t va) { paddr_t ma = va + phys_offset; diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 6839acf..705b29b 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -1059,6 +1059,24 @@ err: return page; } +void __cpuinit setup_virt_paging(void) +{ + /* Setup Stage 2 address translation */ + /* SH0=11 (Inner-shareable) + * ORGN0=IRGN0=01 (Normal memory, Write-Back Write-Allocate Cacheable) + * SL0=01 (Level-1) + * ARVv7: T0SZ=(1)1000 = -8 (32-(-8) = 40 bit physical addresses) + * ARMv8: T0SZ=01 1000 = 24 (64-24 = 40 bit physical addresses) + * PS=010 == 40 bits + */ +#ifdef CONFIG_ARM_32 + WRITE_SYSREG32(0x80003558, VTCR_EL2); +#else + WRITE_SYSREG32(0x80023558, VTCR_EL2); +#endif + isb(); +} + /* * Local variables: * mode: C
This file is where most of the P2M logic lives and this function will eventually need to poke at some internals, so move it. This is pure code motion. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> --- xen/arch/arm/mm.c | 18 ------------------ xen/arch/arm/p2m.c | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 18 deletions(-)