Home
last modified time | relevance | path

Searched refs:imsic (Results 1 – 4 of 4) sorted by relevance

/openbmc/qemu/hw/intc/
H A Driscv_imsic.c49 static uint32_t riscv_imsic_topei(RISCVIMSICState *imsic, uint32_t page) in riscv_imsic_topei() argument
53 base = page * imsic->num_irqs; in riscv_imsic_topei()
54 max_irq = (imsic->eithreshold[page] && in riscv_imsic_topei()
55 (imsic->eithreshold[page] <= imsic->num_irqs)) ? in riscv_imsic_topei()
56 imsic->eithreshold[page] : imsic->num_irqs; in riscv_imsic_topei()
58 if ((qatomic_read(&imsic->eistate[base + i]) & IMSIC_EISTATE_ENPEND) == in riscv_imsic_topei()
67 static void riscv_imsic_update(RISCVIMSICState *imsic, uint32_t page) in riscv_imsic_update() argument
69 uint32_t base = page * imsic->num_irqs; in riscv_imsic_update()
81 if (qatomic_fetch_and(&imsic->eistate[base], ~IMSIC_EISTATE_ENPEND)) { in riscv_imsic_update()
82 qemu_irq_lower(imsic->external_irqs[page]); in riscv_imsic_update()
[all …]
/openbmc/linux/arch/riscv/kvm/
H A Daia_imsic.c33 struct imsic { struct
588 static void imsic_vsfile_cleanup(struct imsic *imsic) in imsic_vsfile_cleanup() argument
599 write_lock_irqsave(&imsic->vsfile_lock, flags); in imsic_vsfile_cleanup()
600 old_vsfile_hgei = imsic->vsfile_hgei; in imsic_vsfile_cleanup()
601 old_vsfile_cpu = imsic->vsfile_cpu; in imsic_vsfile_cleanup()
602 imsic->vsfile_cpu = imsic->vsfile_hgei = -1; in imsic_vsfile_cleanup()
603 imsic->vsfile_va = NULL; in imsic_vsfile_cleanup()
604 imsic->vsfile_pa = 0; in imsic_vsfile_cleanup()
605 write_unlock_irqrestore(&imsic->vsfile_lock, flags); in imsic_vsfile_cleanup()
607 memset(imsic->swfile, 0, sizeof(*imsic->swfile)); in imsic_vsfile_cleanup()
[all …]
/openbmc/qemu/docs/specs/
H A Driscv-iommu.rst51 -M virt,aia=aplic-imsic,aia-guests=5 \
58 -M virt,aia=aplic-imsic,aia-guests=5 \
/openbmc/qemu/docs/system/riscv/
H A Dvirt.rst116 - aia=[none|aplic|aplic-imsic]
121 interrupts whereas the "aia=aplic-imsic" selects APLIC and IMSIC (incoming
129 having AIA IMSIC (i.e. "aia=aplic-imsic" selected). When not specified,