/openbmc/linux/arch/s390/kvm/ |
H A D | gaccess.c | 20 union asce { union 259 unsigned long asce : 64; /* Address-Space-Control Element */ member 380 static int ar_translation(struct kvm_vcpu *vcpu, union asce *asce, u8 ar, in ar_translation() argument 398 asce->val = vcpu->arch.sie_block->gcr[1]; in ar_translation() 401 asce->val = vcpu->arch.sie_block->gcr[7]; in ar_translation() 465 asce->val = aste.asce; in ar_translation() 572 static int get_vcpu_asce(struct kvm_vcpu *vcpu, union asce *asce, in get_vcpu_asce() argument 579 asce->val = 0; in get_vcpu_asce() 580 asce->r = 1; in get_vcpu_asce() 589 asce->val = vcpu->arch.sie_block->gcr[1]; in get_vcpu_asce() [all …]
|
H A D | vsie.c | 1198 unsigned long asce; in acquire_gmap_shadow() local 1203 asce = vcpu->arch.sie_block->gcr[1]; in acquire_gmap_shadow() 1213 if (vsie_page->gmap && gmap_shadow_valid(vsie_page->gmap, asce, edat)) { in acquire_gmap_shadow() 1220 gmap = gmap_shadow(vcpu->arch.gmap, asce, edat); in acquire_gmap_shadow()
|
H A D | pv.c | 334 if ((kvm->arch.gmap->asce & _ASCE_TYPE_MASK) == _ASCE_TYPE_SEGMENT) in kvm_s390_pv_set_aside() 574 uvcb.guest_asce = kvm->arch.gmap->asce; in kvm_s390_pv_init_vm()
|
H A D | kvm-s390.c | 994 (void *) kvm->arch.gmap->asce); in kvm_s390_set_mem_control()
|
/openbmc/qemu/target/s390x/ |
H A D | mmu_helper.c | 127 uint64_t asc, uint64_t asce, target_ulong *raddr, in mmu_translate_asce() argument 135 const int asce_tl = asce & ASCE_TABLE_LENGTH; in mmu_translate_asce() 136 const int asce_p = asce & ASCE_PRIVATE_SPACE; in mmu_translate_asce() 137 hwaddr gaddr = asce & ASCE_ORIGIN; in mmu_translate_asce() 140 if (asce & ASCE_REAL_SPACE) { in mmu_translate_asce() 146 switch (asce & ASCE_TYPE_MASK) { in mmu_translate_asce() 183 switch (asce & ASCE_TYPE_MASK) { in mmu_translate_asce() 388 uint64_t asce; in mmu_translate() local 421 asce = env->cregs[1]; in mmu_translate() 424 asce = env->cregs[13]; in mmu_translate() [all …]
|
/openbmc/linux/arch/s390/mm/ |
H A D | pgalloc.c | 67 S390_lowcore.user_asce = mm->context.asce; in __crst_table_upgrade() 111 mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | in crst_table_upgrade() 120 mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | in crst_table_upgrade() 671 void base_asce_free(unsigned long asce) in base_asce_free() argument 673 unsigned long *table = __va(asce & _ASCE_ORIGIN); in base_asce_free() 675 if (!asce) in base_asce_free() 677 switch (asce & _ASCE_TYPE_MASK) { in base_asce_free() 725 unsigned long asce, *table, end; in base_asce_alloc() local 736 asce = __pa(table) | _ASCE_TYPE_SEGMENT | _ASCE_TABLE_LENGTH; in base_asce_alloc() 742 asce = __pa(table) | _ASCE_TYPE_REGION3 | _ASCE_TABLE_LENGTH; in base_asce_alloc() [all …]
|
H A D | fault.c | 122 static void dump_pagetable(unsigned long asce, unsigned long address) in dump_pagetable() argument 124 unsigned long *table = __va(asce & _ASCE_ORIGIN); in dump_pagetable() 126 pr_alert("AS:%016lx ", asce); in dump_pagetable() 127 switch (asce & _ASCE_TYPE_MASK) { in dump_pagetable() 177 unsigned long asce; in dump_fault_info() local 199 asce = S390_lowcore.user_asce; in dump_fault_info() 203 asce = ((struct gmap *) S390_lowcore.gmap)->asce; in dump_fault_info() 207 asce = S390_lowcore.kernel_asce; in dump_fault_info() 214 dump_pagetable(asce, regs->int_parm_long & __FAIL_ADDR_MASK); in dump_fault_info()
|
H A D | gmap.c | 90 gmap->asce = atype | _ASCE_TABLE_LENGTH | in gmap_alloc() 120 gmap_asce = gmap->asce; in gmap_create() 132 __tlb_flush_idte(gmap->asce); in gmap_flush_tlb() 271 struct gmap, list)->asce; in gmap_remove() 565 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION1) { in __gmap_link() 573 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION2) { in __gmap_link() 581 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION3) { in __gmap_link() 807 const int asce_type = gmap->asce & _ASCE_TYPE_MASK; in gmap_table_walk() 1296 static inline void gmap_idte_one(unsigned long asce, unsigned long vaddr) in gmap_idte_one() argument 1300 : : "a" (asce), "a" (vaddr) : "cc", "memory"); in gmap_idte_one() [all …]
|
H A D | pgtable.c | 50 unsigned long opt, asce; in ptep_ipte_local() local 54 asce = READ_ONCE(mm->context.gmap_asce); in ptep_ipte_local() 55 if (asce == 0UL || nodat) in ptep_ipte_local() 57 if (asce != -1UL) { in ptep_ipte_local() 58 asce = asce ? : mm->context.asce; in ptep_ipte_local() 61 __ptep_ipte(addr, ptep, opt, asce, IPTE_LOCAL); in ptep_ipte_local() 70 unsigned long opt, asce; in ptep_ipte_global() local 74 asce = READ_ONCE(mm->context.gmap_asce); in ptep_ipte_global() 75 if (asce == 0UL || nodat) in ptep_ipte_global() 77 if (asce != -1UL) { in ptep_ipte_global() [all …]
|
/openbmc/linux/arch/s390/include/asm/ |
H A D | tlbflush.h | 20 static inline void __tlb_flush_idte(unsigned long asce) in __tlb_flush_idte() argument 28 asm volatile("idte 0,%1,%0" : : "a" (opt), "a" (asce) : "cc"); in __tlb_flush_idte() 63 __tlb_flush_idte(mm->context.asce); in __tlb_flush_mm() 75 __tlb_flush_idte(init_mm.context.asce); in __tlb_flush_kernel()
|
H A D | gmap.h | 55 unsigned long asce; member 126 struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce, 128 int gmap_shadow_valid(struct gmap *sg, unsigned long asce, int edat_level);
|
H A D | mmu_context.h | 68 mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | in init_new_context() 82 S390_lowcore.user_asce = next->context.asce; in switch_mm_irqs_off()
|
H A D | pgtable.h | 623 unsigned long address, unsigned long asce) in crdte() argument 630 : [r2] "d" (r2.pair), [asce] "a" (asce) in crdte() 1069 unsigned long opt, unsigned long asce, in __ptep_rdp() argument 1078 [asce] "a" (asce), [m4] "i" (local)); in __ptep_rdp() 1082 unsigned long opt, unsigned long asce, in __ptep_ipte() argument 1097 opt = opt | (asce & _ASCE_ORIGIN); in __ptep_ipte() 1632 unsigned long opt, unsigned long asce, in __pmdp_idte() argument 1652 [r3] "a" (asce), [m4] "i" (local) in __pmdp_idte() 1658 unsigned long opt, unsigned long asce, in __pudp_idte() argument 1679 [r3] "a" (asce), [m4] "i" (local) in __pudp_idte()
|
H A D | mmu.h | 17 unsigned long asce; member
|
H A D | pgalloc.h | 155 void base_asce_free(unsigned long asce);
|
/openbmc/linux/drivers/s390/char/ |
H A D | sclp_sd.c | 288 unsigned long page, asce = 0; in sclp_sd_store_data() local 311 asce = base_asce_alloc((unsigned long) data, dsize); in sclp_sd_store_data() 312 if (!asce) { in sclp_sd_store_data() 319 rc = sclp_sd_sync(page, SD_EQ_STORE_DATA, di, asce, (u64) data, &dsize, in sclp_sd_store_data() 328 asce = 0; in sclp_sd_store_data() 341 base_asce_free(asce); in sclp_sd_store_data()
|
H A D | sclp_diag.h | 59 u64 asce; member
|
H A D | sclp_ftp.c | 112 sccb->evbuf.mdd.ftp.asce = _ASCE_REAL_SPACE; in sclp_ftp_et7()
|
/openbmc/linux/arch/s390/kernel/ |
H A D | entry.S | 148 lctlg %c1,%c1,__LC_KERNEL_ASCE # load primary asce 217 lctlg %c1,%c1,__GMAP_ASCE(%r14) # load primary asce 238 lctlg %c1,%c1,__LC_KERNEL_ASCE # load primary asce
|
H A D | asm-offsets.c | 164 OFFSET(__GMAP_ASCE, gmap, asce); in main()
|
/openbmc/linux/arch/s390/boot/ |
H A D | vmem.c | 457 init_mm.context.asce = S390_lowcore.kernel_asce; in setup_vmem()
|