Home
last modified time | relevance | path

Searched refs:vgic (Results 1 – 18 of 18) sorted by relevance

/xen/xen/arch/arm/
A Dvgic.c99 switch ( d->arch.vgic.version ) in domain_vgic_register()
125 d->arch.vgic.ctlr = 0; in domain_vgic_init()
138 d->arch.vgic.nr_spis = nr_spis; in domain_vgic_init()
142 d->arch.vgic.shared_irqs = in domain_vgic_init()
147 d->arch.vgic.pending_irqs = in domain_vgic_init()
163 d->arch.vgic.allocated_irqs = in domain_vgic_init()
177 d->arch.vgic.handler = ops; in register_vgic_ops()
198 if ( d->arch.vgic.handler ) in domain_vgic_free()
200 xfree(d->arch.vgic.shared_irqs); in domain_vgic_free()
201 xfree(d->arch.vgic.pending_irqs); in domain_vgic_free()
[all …]
A Dvgic-v3.c175 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read()
207 if ( v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read()
241 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read()
254 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read()
493 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_write()
545 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_write()
1622 v->arch.vgic.rdist_base = rdist_base; in vgic_v3_vcpu_init()
1670 d->arch.vgic.nr_regions = rdist_count; in vgic_v3_domain_init()
1708 d->arch.vgic.nr_regions = i + 1; in vgic_v3_domain_init()
1732 d->arch.vgic.intid_bits = 10; in vgic_v3_domain_init()
[all …]
A Dgic-vgic.c53 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_add_to_lr_pending()
71 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_remove_from_lr_pending()
84 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_raise_inflight_irq()
117 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_find_unused_lr()
143 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_raise_guest_irq()
169 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_update_one_lr()
287 spin_lock(&v->arch.vgic.lock); in gic_restore_pending_irqs()
289 if ( list_empty(&v->arch.vgic.lr_pending) ) in gic_restore_pending_irqs()
292 inflight_r = &v->arch.vgic.inflight_irqs; in gic_restore_pending_irqs()
331 spin_unlock(&v->arch.vgic.lock); in gic_restore_pending_irqs()
[all …]
A Dvgic-v3-its.c374 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_handle_clear()
414 if ( !d->arch.vgic.rdists_enabled ) in update_lpi_property()
444 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in update_lpi_vgic_status()
473 if ( !d->arch.vgic.rdists_enabled ) in its_handle_inv()
490 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_handle_inv()
540 if ( !its->d->arch.vgic.rdists_enabled ) in its_handle_invall()
547 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_handle_invall()
608 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_discard_event()
1520 INIT_LIST_HEAD(&d->arch.vgic.vits_list); in vgic_v3_its_init_domain()
1522 d->arch.vgic.its_devices = RB_ROOT; in vgic_v3_its_init_domain()
[all …]
A DMakefile51 obj-$(CONFIG_NEW_VGIC) += vgic/
53 obj-y += gic-vgic.o
54 obj-y += vgic.o
55 obj-y += vgic-v2.o
56 obj-$(CONFIG_GICV3) += vgic-v3.o
57 obj-$(CONFIG_HAS_ITS) += vgic-v3-its.o
A Dvgic-v2.c173 int gicd_reg = (int)(info->gpa - v->domain->arch.vgic.dbase); in vgic_v2_distr_mmio_read()
183 *r = vreg_reg32_extract(v->domain->arch.vgic.ctlr, info); in vgic_v2_distr_mmio_read()
195 | DIV_ROUND_UP(v->domain->arch.vgic.nr_spis, 32); in vgic_v2_distr_mmio_read()
415 int gicd_reg = (int)(info->gpa - v->domain->arch.vgic.dbase); in vgic_v2_distr_mmio_write()
427 vreg_reg32_update(&v->domain->arch.vgic.ctlr, r, info); in vgic_v2_distr_mmio_write()
428 v->domain->arch.vgic.ctlr &= GICD_CTL_ENABLE; in vgic_v2_distr_mmio_write()
662 d->arch.vgic.dbase = vgic_v2_hw.dbase; in vgic_v2_domain_init()
676 d->arch.vgic.dbase = GUEST_GICD_BASE; in vgic_v2_domain_init()
698 register_mmio_handler(d, &vgic_v2_distr_mmio_handler, d->arch.vgic.dbase, in vgic_v2_domain_init()
A Dgic-v3-its.c631 struct rb_node **new = &d->arch.vgic.its_devices.rb_node, *parent = NULL; in gicv3_its_map_guest_device()
656 spin_lock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device()
669 rb_erase(&temp->rbnode, &d->arch.vgic.its_devices); in gicv3_its_map_guest_device()
671 spin_unlock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device()
736 rb_insert_color(&dev->rbnode, &d->arch.vgic.its_devices); in gicv3_its_map_guest_device()
738 spin_unlock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device()
778 spin_unlock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device()
796 struct rb_node *node = d->arch.vgic.its_devices.rb_node; in get_its_device()
799 ASSERT(spin_is_locked(&d->arch.vgic.its_devices_lock)); in get_its_device()
829 spin_lock(&d->arch.vgic.its_devices_lock); in get_event_pending_irq()
[all …]
A Dgic-v3.c387 if ( v->domain->arch.vgic.version == GIC_V2 ) in gicv3_restore_state()
1046 if ( current->domain->arch.vgic.version == GIC_V3 ) in gicv3_update_lr()
1083 if ( current->domain->arch.vgic.version == GIC_V2 ) in gicv3_read_lr()
1098 const enum gic_version vgic_version = current->domain->arch.vgic.version; in gicv3_write_lr()
1282 d->arch.vgic.nr_regions); in gicv3_make_hwdom_dt_node()
1294 new_len = new_len * (d->arch.vgic.nr_regions + 1); in gicv3_make_hwdom_dt_node()
1526 for ( i = 0; i < d->arch.vgic.nr_regions; i++ ) in gicv3_make_hwdom_madt()
A Ddomain.c714 d->arch.vgic.version = GIC_V2; in arch_domain_create()
718 d->arch.vgic.version = GIC_V3; in arch_domain_create()
A Ddomain_build.c1713 switch ( kinfo->d->arch.vgic.version ) in make_gic_domU_node()
/xen/xen/arch/arm/vgic/
A Dvgic.c62 struct vgic_dist *dist = &d->arch.vgic; in vgic_get_lpi()
105 return &vcpu->arch.vgic.private_irqs[intid]; in vgic_get_irq()
135 struct vgic_dist *dist = &d->arch.vgic; in vgic_put_irq()
248 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_sort_ap_list()
425 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_prune_ap_list()
545 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in compute_ap_list_depth()
586 vcpu->arch.vgic.used_lrs = count; in vgic_flush_lr_state()
636 spin_lock(&current->arch.vgic.ap_list_lock); in vgic_sync_to_lrs()
660 if ( !vcpu->domain->arch.vgic.enabled ) in vgic_vcpu_pending_irq()
759 struct vgic_cpu *vgic_cpu = &v->arch.vgic; in gic_dump_vgic_info()
[all …]
A DMakefile1 obj-y += vgic.o
2 obj-y += vgic-v2.o
3 obj-y += vgic-mmio.o
4 obj-y += vgic-mmio-v2.o
5 obj-y += vgic-init.o
A Dvgic-init.c60 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_vcpu_early_init()
106 switch ( d->arch.vgic.version ) in domain_vgic_register()
115 d->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF; in domain_vgic_register()
116 d->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF; in domain_vgic_register()
117 d->arch.vgic.vgic_redist_base = VGIC_ADDR_UNDEF; in domain_vgic_register()
131 struct vgic_dist *dist = &d->arch.vgic; in domain_vgic_init()
183 d->arch.vgic.allocated_irqs = in domain_vgic_init()
185 if ( !d->arch.vgic.allocated_irqs ) in domain_vgic_init()
190 set_bit(i, d->arch.vgic.allocated_irqs); in domain_vgic_init()
217 struct vgic_dist *dist = &d->arch.vgic; in domain_vgic_free()
[all …]
A Dvgic-v2.c59 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_v2_fold_lr_state()
60 unsigned int used_lrs = vcpu->arch.vgic.used_lrs; in vgic_v2_fold_lr_state()
260 struct vgic_dist *dist = &d->arch.vgic; in vgic_v2_map_resources()
271 d->arch.vgic.vgic_dist_base = gic_v2_hw_data.dbase; in vgic_v2_map_resources()
285 d->arch.vgic.vgic_dist_base = GUEST_GICD_BASE; in vgic_v2_map_resources()
A Dvgic-mmio-v2.c31 value = vcpu->domain->arch.vgic.enabled ? GICD_CTL_ENABLE : 0; in vgic_mmio_read_v2_misc()
34 value = vcpu->domain->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_mmio_read_v2_misc()
54 struct vgic_dist *dist = &vcpu->domain->arch.vgic; in vgic_mmio_write_v2_misc()
A Dvgic-mmio.c506 unsigned int flags, nr_irqs = d->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in check_region()
614 struct vgic_io_device *io_device = &d->arch.vgic.dist_iodev; in vgic_register_dist_iodev()
/xen/xen/include/asm-arm/
A Dvgic.h240 #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
242 #define vgic_lock(v) spin_lock_irq(&(v)->domain->arch.vgic.lock)
243 #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
309 #define vgic_num_irqs(d) ((d)->arch.vgic.nr_spis + 32)
A Ddomain.h65 struct vgic_dist vgic; member
192 struct vgic_cpu vgic; member

Completed in 46 milliseconds