diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-07-29 13:21:06 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-07-29 16:54:51 +0100 |
commit | 7d413e38c7ad250a5163ce64358917a84aa8bfbf (patch) | |
tree | 7336ec6b5b9fa5de6ce6819053b637b3e2c994f1 /xen/include/asm-arm | |
parent | c6fd2ed3f69247c53c86fd8966361000fec27d12 (diff) | |
download | xen-7d413e38c7ad250a5163ce64358917a84aa8bfbf.tar.gz xen-7d413e38c7ad250a5163ce64358917a84aa8bfbf.tar.bz2 xen-7d413e38c7ad250a5163ce64358917a84aa8bfbf.zip |
xen: arm: Handle SMC from 64-bit guests
Similarly to arm32 guests handle it by injecting an undefined instruction
trap.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/include/asm-arm')
-rw-r--r-- | xen/include/asm-arm/processor.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h index 960b83e8ad..948bf2de9e 100644 --- a/xen/include/asm-arm/processor.h +++ b/xen/include/asm-arm/processor.h @@ -83,6 +83,7 @@ #define HCR_SWIO (1<<1) /* Set/Way Invalidation Override */ #define HCR_VM (1<<0) /* Virtual MMU Enable */ +#define HSR_EC_UNKNOWN 0x00 #define HSR_EC_WFI_WFE 0x01 #define HSR_EC_CP15_32 0x03 #define HSR_EC_CP15_64 0x04 @@ -95,9 +96,10 @@ #define HSR_EC_CP14_64 0x0c #define HSR_EC_SVC32 0x11 #define HSR_EC_HVC32 0x12 -#define HSR_EC_SMC 0x13 +#define HSR_EC_SMC32 0x13 #ifdef CONFIG_ARM_64 #define HSR_EC_HVC64 0x16 +#define HSR_EC_SMC64 0x17 #define HSR_EC_SYSREG 0x18 #endif #define HSR_EC_INSTR_ABORT_GUEST 0x20 @@ -388,11 +390,21 @@ union hsr { #define CNTx_CTL_PENDING (1u<<2) /* IRQ pending */ /* Exception Vector offsets */ +/* ... ARM32 */ #define VECTOR32_RST 0 #define VECTOR32_UND 4 #define VECTOR32_SVC 8 #define VECTOR32_PABT 12 #define VECTOR32_DABT 16 +/* ... ARM64 */ +#define VECTOR64_CURRENT_SP0_SYNC 0x000 +#define VECTOR64_CURRENT_SP0_IRQ 0x080 +#define VECTOR64_CURRENT_SP0_FIQ 0x100 +#define VECTOR64_CURRENT_SP0_ERROR 0x180 +#define VECTOR64_CURRENT_SPx_SYNC 0x200 +#define VECTOR64_CURRENT_SPx_IRQ 0x280 +#define VECTOR64_CURRENT_SPx_FIQ 0x300 +#define VECTOR64_CURRENT_SPx_ERROR 0x380 #if defined(CONFIG_ARM_32) # include <asm/arm32/processor.h> |