/openbmc/qemu/hw/pci-host/ |
H A D | pnv_phb3_msi.c | 20 static uint64_t phb3_msi_ive_addr(PnvPHB3 *phb, int srcno) in phb3_msi_ive_addr() argument 30 if (srcno >= (ivtbar & PHB_IVT_LENGTH_MASK)) { in phb3_msi_ive_addr() 32 srcno, (uint64_t) (ivtbar & PHB_IVT_LENGTH_MASK)); in phb3_msi_ive_addr() 39 return ivtbar + 128 * srcno; in phb3_msi_ive_addr() 41 return ivtbar + 16 * srcno; in phb3_msi_ive_addr() 45 static bool phb3_msi_read_ive(PnvPHB3 *phb, int srcno, uint64_t *out_ive) in phb3_msi_read_ive() argument 49 ive_addr = phb3_msi_ive_addr(phb, srcno); in phb3_msi_read_ive() 65 static void phb3_msi_set_p(Phb3MsiState *msi, int srcno, uint8_t gen) in phb3_msi_set_p() argument 70 ive_addr = phb3_msi_ive_addr(msi->phb, srcno); in phb3_msi_set_p() 82 static void phb3_msi_set_q(Phb3MsiState *msi, int srcno) in phb3_msi_set_q() argument [all …]
|
H A D | pnv_phb4.c | 1617 static void pnv_phb4_xive_notify_abt(PnvPHB4 *phb, uint32_t srcno, in pnv_phb4_xive_notify_abt() argument 1634 addr |= (1ull << (esb_shift + 1)) * srcno; in pnv_phb4_xive_notify_abt() 1657 static void pnv_phb4_xive_notify_ic(PnvPHB4 *phb, uint32_t srcno, in pnv_phb4_xive_notify_ic() argument 1662 uint64_t data = offset | srcno; in pnv_phb4_xive_notify_ic() 1679 static void pnv_phb4_xive_notify(XiveNotifier *xf, uint32_t srcno, in pnv_phb4_xive_notify() argument 1685 pnv_phb4_xive_notify_abt(phb, srcno, pq_checked); in pnv_phb4_xive_notify() 1687 pnv_phb4_xive_notify_ic(phb, srcno, pq_checked); in pnv_phb4_xive_notify()
|
/openbmc/qemu/hw/intc/ |
H A D | xics.c | 403 static void ics_resend_msi(ICSState *ics, int srcno) in ics_resend_msi() argument 405 ICSIRQState *irq = ics->irqs + srcno; in ics_resend_msi() 411 icp_irq(ics, irq->server, srcno + ics->offset, irq->priority); in ics_resend_msi() 416 static void ics_resend_lsi(ICSState *ics, int srcno) in ics_resend_lsi() argument 418 ICSIRQState *irq = ics->irqs + srcno; in ics_resend_lsi() 424 icp_irq(ics, irq->server, srcno + ics->offset, irq->priority); in ics_resend_lsi() 428 static void ics_set_irq_msi(ICSState *ics, int srcno, int val) in ics_set_irq_msi() argument 430 ICSIRQState *irq = ics->irqs + srcno; in ics_set_irq_msi() 432 trace_xics_ics_set_irq_msi(srcno, srcno + ics->offset); in ics_set_irq_msi() 439 icp_irq(ics, irq->server, srcno + ics->offset, irq->priority); in ics_set_irq_msi() [all …]
|
H A D | xics_spapr.c | 157 uint32_t nr, srcno, server, priority; in rtas_set_xive() local 180 srcno = nr - ics->offset; in rtas_set_xive() 181 ics_write_xive(ics, srcno, server, priority, priority); in rtas_set_xive() 192 uint32_t nr, srcno; in rtas_get_xive() local 213 srcno = nr - ics->offset; in rtas_get_xive() 214 rtas_st(rets, 1, ics->irqs[srcno].server); in rtas_get_xive() 215 rtas_st(rets, 2, ics->irqs[srcno].priority); in rtas_get_xive() 224 uint32_t nr, srcno; in rtas_int_off() local 244 srcno = nr - ics->offset; in rtas_int_off() 245 ics_write_xive(ics, srcno, ics->irqs[srcno].server, 0xff, in rtas_int_off() [all …]
|
H A D | spapr_xive_kvm.c | 234 int kvmppc_xive_source_reset_one(XiveSource *xsrc, int srcno, Error **errp) in kvmppc_xive_source_reset_one() argument 239 trace_kvm_xive_source_reset(srcno); in kvmppc_xive_source_reset_one() 243 if (xive_source_irq_is_lsi(xsrc, srcno)) { in kvmppc_xive_source_reset_one() 245 if (xive_source_is_asserted(xsrc, srcno)) { in kvmppc_xive_source_reset_one() 250 return kvm_device_access(xive->fd, KVM_DEV_XIVE_GRP_SOURCE, srcno, &state, in kvmppc_xive_source_reset_one() 281 static uint64_t xive_esb_rw(XiveSource *xsrc, int srcno, uint32_t offset, in xive_esb_rw() argument 284 uint64_t *addr = xsrc->esb_mmap + xive_source_esb_mgmt(xsrc, srcno) + in xive_esb_rw() 297 static uint8_t xive_esb_read(XiveSource *xsrc, int srcno, uint32_t offset) in xive_esb_read() argument 299 return xive_esb_rw(xsrc, srcno, offset, 0, 0) & 0x3; in xive_esb_read() 302 static void kvmppc_xive_esb_trigger(XiveSource *xsrc, int srcno) in kvmppc_xive_esb_trigger() argument [all …]
|
H A D | xive.c | 1040 uint8_t xive_source_esb_get(XiveSource *xsrc, uint32_t srcno) in xive_source_esb_get() argument 1042 assert(srcno < xsrc->nr_irqs); in xive_source_esb_get() 1044 return xsrc->status[srcno] & 0x3; in xive_source_esb_get() 1047 uint8_t xive_source_esb_set(XiveSource *xsrc, uint32_t srcno, uint8_t pq) in xive_source_esb_set() argument 1049 assert(srcno < xsrc->nr_irqs); in xive_source_esb_set() 1051 return xive_esb_set(&xsrc->status[srcno], pq); in xive_source_esb_set() 1057 static bool xive_source_lsi_trigger(XiveSource *xsrc, uint32_t srcno) in xive_source_lsi_trigger() argument 1059 uint8_t old_pq = xive_source_esb_get(xsrc, srcno); in xive_source_lsi_trigger() 1061 xive_source_set_asserted(xsrc, srcno, true); in xive_source_lsi_trigger() 1065 xive_source_esb_set(xsrc, srcno, XIVE_ESB_PENDING); in xive_source_lsi_trigger() [all …]
|
H A D | xics_kvm.c | 252 int ics_set_kvm_state_one(ICSState *ics, int srcno, Error **errp) in ics_set_kvm_state_one() argument 255 ICSIRQState *irq = &ics->irqs[srcno]; in ics_set_kvm_state_one() 292 srcno + ics->offset, &state, true, errp); in ics_set_kvm_state_one() 325 void ics_kvm_set_irq(ICSState *ics, int srcno, int val) in ics_kvm_set_irq() argument 333 args.irq = srcno + ics->offset; in ics_kvm_set_irq() 334 if (ics->irqs[srcno].flags & XICS_FLAGS_IRQ_MSI) { in ics_kvm_set_irq()
|
H A D | trace-events | 61 xics_ics_set_irq_msi(int srcno, int nr) "set_irq_msi: srcno %d [irq 0x%x]" 63 xics_ics_set_irq_lsi(int srcno, int nr) "set_irq_lsi: srcno %d [irq 0x%x]" 64 xics_ics_write_xive(int nr, int srcno, int server, uint8_t priority) "ics_write_xive: irq 0x%x [src… 65 xics_ics_reject(int nr, int srcno) "reject irq 0x%x [src %d]" 273 kvm_xive_source_reset(uint32_t srcno) "IRQ 0x%x" 279 xive_source_esb_read(uint64_t addr, uint32_t srcno, uint64_t value) "@0x%"PRIx64" IRQ 0x%x val=0x%"… 280 xive_source_esb_write(uint64_t addr, uint32_t srcno, uint64_t value) "@0x%"PRIx64" IRQ 0x%x val=0x%…
|
H A D | pnv_xive.c | 565 static void pnv_xive_notify(XiveNotifier *xn, uint32_t srcno, bool pq_checked) in pnv_xive_notify() argument 570 xive_router_notify(xn, XIVE_EAS(blk, srcno), pq_checked); in pnv_xive_notify()
|
H A D | pnv_xive2.c | 724 static void pnv_xive2_notify(XiveNotifier *xn, uint32_t srcno, bool pq_checked) in pnv_xive2_notify() argument 729 xive2_router_notify(xn, XIVE_EAS(blk, srcno), pq_checked); in pnv_xive2_notify()
|
/openbmc/qemu/include/hw/ppc/ |
H A D | xive.h | 227 static inline hwaddr xive_source_esb_page(XiveSource *xsrc, uint32_t srcno) in xive_source_esb_page() argument 229 assert(srcno < xsrc->nr_irqs); in xive_source_esb_page() 230 return (1ull << xsrc->esb_shift) * srcno; in xive_source_esb_page() 234 static inline hwaddr xive_source_esb_mgmt(XiveSource *xsrc, int srcno) in xive_source_esb_mgmt() argument 236 hwaddr addr = xive_source_esb_page(xsrc, srcno); in xive_source_esb_mgmt() 289 uint8_t xive_source_esb_get(XiveSource *xsrc, uint32_t srcno); 290 uint8_t xive_source_esb_set(XiveSource *xsrc, uint32_t srcno, uint8_t pq); 295 static inline void xive_source_set_status(XiveSource *xsrc, uint32_t srcno, in xive_source_set_status() argument 299 xsrc->status[srcno] |= status; in xive_source_set_status() 301 xsrc->status[srcno] &= ~status; in xive_source_set_status() [all …]
|
H A D | xics.h | 166 void ics_set_irq(void *opaque, int srcno, int val); 168 static inline bool ics_irq_free(ICSState *ics, uint32_t srcno) in ics_irq_free() argument 170 return !(ics->irqs[srcno].flags & XICS_FLAGS_IRQ_MASK); in ics_irq_free() 173 void ics_set_irq_type(ICSState *ics, int srcno, bool lsi); 191 int ics_set_kvm_state_one(ICSState *ics, int srcno, Error **errp); 194 void ics_kvm_set_irq(ICSState *ics, int srcno, int val);
|
H A D | spapr_xive.h | 87 uint64_t kvmppc_xive_esb_rw(XiveSource *xsrc, int srcno, uint32_t offset,
|
/openbmc/qemu/hw/ppc/ |
H A D | pnv_psi.c | 649 static void pnv_psi_notify(XiveNotifier *xf, uint32_t srcno, bool pq_checked) in pnv_psi_notify() argument 658 uint64_t data = offset | srcno; in pnv_psi_notify()
|