From: Ian Campbell Date: Tue, 3 Jul 2012 09:52:27 +0000 (+0100) Subject: arm: Upgrade guest barriers to Outer-Shareable. Enable Protected Table Walk. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~8223 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2632e28f678f7e8d0a70168fa0f5366dbd7e51cb;p=xen.git arm: Upgrade guest barriers to Outer-Shareable. Enable Protected Table Walk. Upgrading barriers is conservative and may not be necessary. Protected Table Walk traps stage 1 page tables which refer to device memory (per stage 2) using a non-device mapping. This generally indicates a guest error but trapping it as a fault for now helps us know if something odd is going on. Signed-off-by: Ian Campbell Acked-by: Tim Deegan Committed-by: Ian Campbell --- diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 1b19e54f3d..a9e7f43eb7 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -333,7 +333,7 @@ int construct_dom0(struct domain *d) WRITE_CP32(SCTLR_BASE, SCTLR); - WRITE_CP32(HCR_AMO|HCR_IMO|HCR_VM, HCR); + WRITE_CP32(HCR_PTW|HCR_BSU_OUTER|HCR_AMO|HCR_IMO|HCR_VM, HCR); isb(); local_abort_enable(); diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h index 81924a4b0f..9b3c9ddd1a 100644 --- a/xen/include/asm-arm/processor.h +++ b/xen/include/asm-arm/processor.h @@ -76,6 +76,10 @@ #define HCR_TWI (1<<13) #define HCR_DC (1<<12) #define HCR_BSU_MASK (3<<10) +#define HCR_BSU_NONE (0<<10) +#define HCR_BSU_INNER (1<<10) +#define HCR_BSU_OUTER (2<<10) +#define HCR_BSU_FULL (3<<10) #define HCR_FB (1<<9) #define HCR_VA (1<<8) #define HCR_VI (1<<7)