Home
last modified time | relevance | path

Searched refs:xive (Results 1 – 25 of 37) sorted by relevance

12

/openbmc/qemu/hw/intc/
H A Dpnv_xive.c65 #define xive_error(xive, fmt, ...) \ argument
67 (xive)->chip->chip_id, ## __VA_ARGS__);
74 static uint8_t pnv_xive_block_id(PnvXive *xive) in pnv_xive_block_id() argument
76 uint8_t blk = xive->chip->chip_id; in pnv_xive_block_id()
77 uint64_t cfg_val = xive->regs[PC_TCTXT_CFG >> 3]; in pnv_xive_block_id()
102 static uint64_t pnv_xive_vst_addr_direct(PnvXive *xive, uint32_t type, in pnv_xive_vst_addr_direct() argument
113 xive_error(xive, "VST: %s entry %x out of range [ 0 .. %x ] !?", in pnv_xive_vst_addr_direct()
122 static uint64_t pnv_xive_vst_addr_indirect(PnvXive *xive, uint32_t type, in pnv_xive_vst_addr_indirect() argument
135 xive_error(xive, "VST: failed to access %s entry %x @0x%" PRIx64, in pnv_xive_vst_addr_indirect()
142 xive_error(xive, "VST: invalid %s entry %x !?", info->name, idx); in pnv_xive_vst_addr_indirect()
[all …]
H A Dpnv_xive2.c85 #define xive2_error(xive, fmt, ...) \ argument
87 (xive)->chip->chip_id, ## __VA_ARGS__);
92 static uint32_t pnv_xive2_block_id(PnvXive2 *xive) in pnv_xive2_block_id() argument
94 uint8_t blk = xive->chip->chip_id; in pnv_xive2_block_id()
95 uint64_t cfg_val = xive->cq_regs[CQ_XIVE_CFG >> 3]; in pnv_xive2_block_id()
117 PnvXive2 *xive = &chip10->xive; in pnv_xive2_get_remote() local
119 if (pnv_xive2_block_id(xive) == blk) { in pnv_xive2_get_remote()
120 return xive; in pnv_xive2_get_remote()
142 static uint64_t pnv_xive2_vst_addr_direct(PnvXive2 *xive, uint32_t type, in pnv_xive2_vst_addr_direct() argument
153 xive2_error(xive, "VST: %s entry %x out of range [ 0 .. %x ] !?", in pnv_xive2_vst_addr_direct()
[all …]
H A Dspapr_xive_kvm.c79 SpaprXive *xive = SPAPR_XIVE(tctx->xptr); in kvmppc_xive_cpu_set_state() local
83 assert(xive->fd != -1); in kvmppc_xive_cpu_set_state()
101 SpaprXive *xive = SPAPR_XIVE(tctx->xptr); in kvmppc_xive_cpu_get_state() local
105 assert(xive->fd != -1); in kvmppc_xive_cpu_get_state()
154 SpaprXive *xive = SPAPR_XIVE(tctx->xptr); in kvmppc_xive_cpu_connect() local
158 assert(xive->fd != -1); in kvmppc_xive_cpu_connect()
169 ret = kvm_vcpu_enable_cap(tctx->cs, KVM_CAP_PPC_IRQ_XIVE, 0, xive->fd, in kvmppc_xive_cpu_connect()
190 int kvmppc_xive_set_source_config(SpaprXive *xive, uint32_t lisn, XiveEAS *eas, in kvmppc_xive_set_source_config() argument
219 return kvm_device_access(xive->fd, KVM_DEV_XIVE_GRP_SOURCE_CONFIG, lisn, in kvmppc_xive_set_source_config()
223 void kvmppc_xive_sync_source(SpaprXive *xive, uint32_t lisn, Error **errp) in kvmppc_xive_sync_source() argument
[all …]
H A Dspapr_xive.c133 static void spapr_xive_end_pic_print_info(SpaprXive *xive, XiveEND *end, in spapr_xive_end_pic_print_info() argument
155 #define spapr_xive_in_kernel(xive) \ argument
156 (kvm_irqchip_in_kernel() && (xive)->fd != -1)
158 static void spapr_xive_pic_print_info(SpaprXive *xive, GString *buf) in spapr_xive_pic_print_info() argument
160 XiveSource *xsrc = &xive->source; in spapr_xive_pic_print_info()
163 if (spapr_xive_in_kernel(xive)) { in spapr_xive_pic_print_info()
166 kvmppc_xive_synchronize_state(xive, &local_err); in spapr_xive_pic_print_info()
175 for (i = 0; i < xive->nr_irqs; i++) { in spapr_xive_pic_print_info()
177 XiveEAS *eas = &xive->eat[i]; in spapr_xive_pic_print_info()
195 assert(end_idx < xive->nr_ends); in spapr_xive_pic_print_info()
[all …]
H A Dmeson.build67 specific_ss.add(when: 'CONFIG_XIVE', if_true: files('xive.c'))
H A Dxive.c1140 XiveNotifierClass *xnc = XIVE_NOTIFIER_GET_CLASS(xsrc->xive); in xive_source_notify()
1144 xnc->notify(xsrc->xive, srcno, pq_checked); in xive_source_notify()
1364 assert(xsrc->xive); in xive_source_realize()
1415 DEFINE_PROP_LINK("xive", XiveSource, xive, TYPE_XIVE_NOTIFIER,
/openbmc/linux/arch/powerpc/kvm/
H A Dbook3s_xive.c390 static void xive_vm_scan_for_rerouted_irqs(struct kvmppc_xive *xive, in xive_vm_scan_for_rerouted_irqs() argument
423 sb = kvmppc_xive_find_source(xive, irq, &src); in xive_vm_scan_for_rerouted_irqs()
459 struct kvmppc_xive *xive = vcpu->kvm->arch.xive; in xive_vm_h_cppr() local
505 xive_vm_scan_for_rerouted_irqs(xive, xc); in xive_vm_h_cppr()
517 struct kvmppc_xive *xive = vcpu->kvm->arch.xive; in xive_vm_h_eoi() local
550 sb = kvmppc_xive_find_source(xive, irq, &src); in xive_vm_h_eoi()
674 struct kvmppc_xive *xive = xc->xive; in kvmppc_xive_check_save_restore() local
676 if (xive->flags & KVMPPC_XIVE_FLAG_SAVE_RESTORE) in kvmppc_xive_check_save_restore()
939 struct kvmppc_xive *xive = xc->xive; in xive_provision_queue() local
948 qpage = (__be32 *)__get_free_pages(GFP_KERNEL, xive->q_page_order); in xive_provision_queue()
[all …]
H A Dbook3s_xive_native.c95 if (kvmppc_xive_has_single_escalation(xc->xive)) in kvmppc_xive_native_cleanup_vcpu()
126 struct kvmppc_xive *xive = dev->private; in kvmppc_xive_native_connect_vcpu() local
137 if (xive->kvm != vcpu->kvm) in kvmppc_xive_native_connect_vcpu()
142 mutex_lock(&xive->lock); in kvmppc_xive_native_connect_vcpu()
144 rc = kvmppc_xive_compute_vp_id(xive, server_num, &vp_id); in kvmppc_xive_native_connect_vcpu()
155 xc->xive = xive; in kvmppc_xive_native_connect_vcpu()
179 rc = xive_native_enable_vp(xc->vp_id, kvmppc_xive_has_single_escalation(xive)); in kvmppc_xive_native_connect_vcpu()
191 mutex_unlock(&xive->lock); in kvmppc_xive_native_connect_vcpu()
203 struct kvmppc_xive *xive = kvm->arch.xive; in kvmppc_xive_native_reset_mapped() local
215 mutex_lock(&xive->mapping_lock); in kvmppc_xive_native_reset_mapped()
[all …]
H A Dbook3s_xive.h153 struct kvmppc_xive *xive; member
211 static inline struct kvmppc_xive_src_block *kvmppc_xive_find_source(struct kvmppc_xive *xive, in kvmppc_xive_find_source() argument
221 return xive->src_blocks[bid]; in kvmppc_xive_find_source()
235 static inline u32 kvmppc_xive_vp(struct kvmppc_xive *xive, u32 server) in kvmppc_xive_vp() argument
237 return xive->vp_base + kvmppc_pack_vcpu_id(xive->kvm, server); in kvmppc_xive_vp()
296 struct kvmppc_xive *xive, int irq);
303 int kvmppc_xive_compute_vp_id(struct kvmppc_xive *xive, u32 cpu, u32 *vp);
304 int kvmppc_xive_set_nr_servers(struct kvmppc_xive *xive, u64 addr);
307 static inline bool kvmppc_xive_has_single_escalation(struct kvmppc_xive *xive) in kvmppc_xive_has_single_escalation() argument
309 return xive->flags & KVMPPC_XIVE_FLAG_SINGLE_ESCALATION; in kvmppc_xive_has_single_escalation()
/openbmc/qemu/include/hw/ppc/
H A Dspapr_xive.h71 void spapr_xive_mmio_set_enabled(SpaprXive *xive, bool enable);
72 void spapr_xive_map_mmio(SpaprXive *xive);
83 void kvmppc_xive_reset(SpaprXive *xive, Error **errp);
84 int kvmppc_xive_set_source_config(SpaprXive *xive, uint32_t lisn, XiveEAS *eas,
86 void kvmppc_xive_sync_source(SpaprXive *xive, uint32_t lisn, Error **errp);
89 int kvmppc_xive_set_queue_config(SpaprXive *xive, uint8_t end_blk,
92 int kvmppc_xive_get_queue_config(SpaprXive *xive, uint8_t end_blk,
95 void kvmppc_xive_synchronize_state(SpaprXive *xive, Error **errp);
96 int kvmppc_xive_pre_save(SpaprXive *xive);
97 int kvmppc_xive_post_load(SpaprXive *xive, int version_id);
H A Dpnv_xive.h96 void pnv_xive_pic_print_info(PnvXive *xive, GString *buf);
166 void pnv_xive2_pic_print_info(PnvXive2 *xive, GString *buf);
H A Dpnv_chip.h85 PnvXive xive; member
119 PnvXive2 xive; member
H A Dspapr_irq.h99 bool xive; member
H A Dxive.h202 XiveNotifier *xive; member
H A Dspapr.h270 SpaprXive *xive; member
/openbmc/qemu/hw/ppc/
H A Dspapr_irq.c112 .xive = false,
121 .xive = true,
138 .xive = true,
208 { SPAPR_INTC((spapr_)->ics), SPAPR_INTC((spapr_)->xive), }
328 if (spapr->irq->xive) { in spapr_irq_init()
344 spapr->xive = SPAPR_XIVE(dev); in spapr_irq_init()
349 = SPAPR_INTC_GET_CLASS(spapr->xive); in spapr_irq_init()
351 if (sicc->claim_irq(SPAPR_INTC(spapr->xive), SPAPR_IRQ_IPI + i, in spapr_irq_init()
435 if (spapr->xive) { in spapr_qirq()
436 assert(irq < spapr->xive->nr_irqs); in spapr_qirq()
[all …]
H A Dpnv.c861 pnv_xive_pic_print_info(&chip9->xive, buf); in pnv_chip_power9_pic_print_info()
908 pnv_xive2_pic_print_info(&chip10->xive, buf); in pnv_chip_power10_pic_print_info()
1334 obj = xive_tctx_create(OBJECT(cpu), XIVE_PRESENTER(&chip9->xive), in pnv_chip_power9_intc_create()
1378 obj = xive_tctx_create(OBJECT(cpu), XIVE_PRESENTER(&chip10->xive), in pnv_chip_power10_intc_create()
1685 object_initialize_child(obj, "xive", &chip9->xive, TYPE_PNV_XIVE); in pnv_chip_power9_instance_init()
1686 object_property_add_alias(obj, "xive-fabric", OBJECT(&chip9->xive), in pnv_chip_power9_instance_init()
1811 object_property_set_int(OBJECT(&chip9->xive), "ic-bar", in pnv_chip_power9_realize()
1813 object_property_set_int(OBJECT(&chip9->xive), "vc-bar", in pnv_chip_power9_realize()
1815 object_property_set_int(OBJECT(&chip9->xive), "pc-bar", in pnv_chip_power9_realize()
1817 object_property_set_int(OBJECT(&chip9->xive), "tm-bar", in pnv_chip_power9_realize()
[all …]
/openbmc/linux/arch/powerpc/sysdev/xics/
H A Dics-native.c104 u32 xive; in ics_native_set_affinity() local
116 xive = in_be32(ics_native_xive(in, vec)); in ics_native_set_affinity()
117 xive = (xive & 0xff) | (server << 8); in ics_native_set_affinity()
118 out_be32(ics_native_xive(in, vec), xive); in ics_native_set_affinity()
159 u32 xive; in ics_native_get_server() local
164 xive = in_be32(ics_native_xive(in, vec)); in ics_native_get_server()
165 return (xive >> 8) & 0xfff; in ics_native_get_server()
/openbmc/qemu/docs/specs/
H A Dindex.rst14 ppc-xive
15 ppc-spapr-xive
H A Dppc-spapr-xive.rst44 following values: ``xics``, ``xive``, and ``dual`` which is the
86 xive XIVE KVM XIVE emul. XIVE KVM
100 xive QEMU error(3) QEMU error(3) QEMU error(3)
122 xive XIVE emul.(1) XIVE emul. QEMU error (2)
146 xive QEMU error(3) QEMU error(3) QEMU error(3)
177 - ``ibm,xive-eq-sizes``
182 - ``ibm,xive-lisn-ranges``
/openbmc/linux/Documentation/virt/kvm/devices/
H A Dindex.rst19 xive
/openbmc/linux/arch/powerpc/sysdev/
H A DKconfig23 source "arch/powerpc/sysdev/xive/Kconfig"
H A DMakefile51 obj-$(CONFIG_PPC_XIVE) += xive/
/openbmc/linux/arch/powerpc/kernel/
H A Dprom_init.c182 bool xive; member
1292 support->xive = !prom_xive_disable; in prom_parse_xive_model()
1303 support->xive = true; in prom_parse_xive_model()
1338 .xive = false in prom_check_platform_support()
1387 if (supported.xive) { in prom_check_platform_support()
/openbmc/linux/arch/powerpc/include/asm/
H A Dkvm_host.h322 struct kvmppc_xive *xive; /* Current XIVE device in use */ member

12