Lines Matching defs:aia

65 	kvm->arch.aia.in_kernel = true;
80 struct kvm_aia *aia = &kvm->arch.aia;
106 aia->mode = *nr;
108 *nr = aia->mode;
118 aia->nr_ids = *nr;
120 *nr = aia->nr_ids;
127 aia->nr_sources = *nr;
129 *nr = aia->nr_sources;
135 aia->nr_group_bits = *nr;
137 *nr = aia->nr_group_bits;
144 aia->nr_group_shift = *nr;
146 *nr = aia->nr_group_shift;
152 aia->nr_hart_bits = *nr;
154 *nr = aia->nr_hart_bits;
160 aia->nr_guest_bits = *nr;
162 *nr = aia->nr_guest_bits;
173 struct kvm_aia *aia = &kvm->arch.aia;
183 aia->aplic_addr = *addr;
185 *addr = aia->aplic_addr;
220 static gpa_t aia_imsic_ppn(struct kvm_aia *aia, gpa_t addr)
225 h = aia->nr_hart_bits + aia->nr_guest_bits +
229 if (aia->nr_group_bits) {
230 h = aia->nr_group_bits + aia->nr_group_shift - 1;
231 l = aia->nr_group_shift;
238 static u32 aia_imsic_hart_index(struct kvm_aia *aia, gpa_t addr)
242 hart = (addr >> (aia->nr_guest_bits + IMSIC_MMIO_PAGE_SHIFT)) &
243 GENMASK_ULL(aia->nr_hart_bits - 1, 0);
244 if (aia->nr_group_bits)
245 group = (addr >> aia->nr_group_shift) &
246 GENMASK_ULL(aia->nr_group_bits - 1, 0);
248 return (group << aia->nr_hart_bits) | hart;
257 struct kvm_aia *aia = &kvm->arch.aia;
269 if (aia->nr_ids < aia->nr_sources)
273 if (aia->nr_sources && aia->aplic_addr == KVM_RISCV_AIA_UNDEF_ADDR)
293 base_ppn = aia_imsic_ppn(aia, vaia->imsic_addr);
294 if (base_ppn != aia_imsic_ppn(aia, vaia->imsic_addr)) {
300 vaia->hart_index = aia_imsic_hart_index(aia,
310 kvm->arch.aia.initialized = true;
507 .name = "kvm-riscv-aia",
601 struct kvm_aia *aia = &kvm->arch.aia;
612 g = tppn & (BIT(aia->nr_guest_bits) - 1);
613 tppn &= ~((gpa_t)(BIT(aia->nr_guest_bits) - 1));
641 struct kvm_aia *aia = &kvm->arch.aia;
654 aia->mode = (kvm_riscv_aia_nr_hgei) ?
656 aia->nr_ids = kvm_riscv_aia_max_ids - 1;
657 aia->nr_sources = 0;
658 aia->nr_group_bits = 0;
659 aia->nr_group_shift = KVM_DEV_RISCV_AIA_GROUP_SHIFT_MIN;
660 aia->nr_hart_bits = 0;
661 aia->nr_guest_bits = 0;
662 aia->aplic_addr = KVM_RISCV_AIA_UNDEF_ADDR;