From c4400206d43b6a235299c7047cca0af93269fc03 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 25 Apr 2014 15:37:19 +0200 Subject: s390x/helper: Added format control bit to MMU translation With the EDAT-1 facility, the MMU translation can stop at the segment table already, pointing to a 1 MB block. And while we're at it, move the page table entry handling to a separate function, too, as suggested by Alexander Graf. Acked-by: Alexander Graf Signed-off-by: Thomas Huth Signed-off-by: Cornelia Huck --- target-s390x/cpu.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'target-s390x/cpu.h') diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index 41903a9..aad277a 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -270,6 +270,9 @@ typedef struct CPUS390XState { #define FLAG_MASK_64 (PSW_MASK_64 >> 32) #define FLAG_MASK_32 0x00001000 +/* Control register 0 bits */ +#define CR0_EDAT 0x0000000000800000ULL + static inline int cpu_mmu_index (CPUS390XState *env) { if (env->psw.mask & PSW_MASK_PSTATE) { @@ -927,6 +930,7 @@ struct sysib_322 { #define _REGION_ENTRY_LENGTH 0x03 /* region third length */ #define _SEGMENT_ENTRY_ORIGIN ~0x7ffULL /* segment table origin */ +#define _SEGMENT_ENTRY_FC 0x400 /* format control */ #define _SEGMENT_ENTRY_RO 0x200 /* page protection bit */ #define _SEGMENT_ENTRY_INV 0x20 /* invalid segment table entry */ -- cgit v1.1