diff options
| author | Bibo Mao <maobibo@loongson.cn> | 2024-09-20 10:08:56 +0800 |
|---|---|---|
| committer | Bibo Mao <maobibo@loongson.cn> | 2024-12-19 15:23:29 +0800 |
| commit | 593c6b868450603a3295892d8d65b1eba4ea211d (patch) | |
| tree | 557b98ccf3a18ea7dc2910876bd484b54fc030ac /include/hw/intc/loongarch_extioi_common.h | |
| parent | fea46db1c7f3b7cd3df92e871c10a6b85a872041 (diff) | |
| download | focaccia-qemu-593c6b868450603a3295892d8d65b1eba4ea211d.tar.gz focaccia-qemu-593c6b868450603a3295892d8d65b1eba4ea211d.zip | |
include: Move struct LoongArchExtIOI to header file loongarch_extioi_common
Move definiton of structure LoongArchExtIOI from header file loongarch_extioi.h to file loongarch_extioi_common.h. Signed-off-by: Bibo Mao <maobibo@loongson.cn> Reviewed-by: Song Gao <gaosong@loongson.cn>
Diffstat (limited to '')
| -rw-r--r-- | include/hw/intc/loongarch_extioi_common.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/hw/intc/loongarch_extioi_common.h b/include/hw/intc/loongarch_extioi_common.h index 09e2b760f3..1eb8780549 100644 --- a/include/hw/intc/loongarch_extioi_common.h +++ b/include/hw/intc/loongarch_extioi_common.h @@ -55,4 +55,31 @@ #define EXTIOI_ENABLE_CPU_ENCODE (3) #define EXTIOI_VIRT_COREMAP_START (0x40) #define EXTIOI_VIRT_COREMAP_END (0x240) + +typedef struct ExtIOICore { + uint32_t coreisr[EXTIOI_IRQS_GROUP_COUNT]; + DECLARE_BITMAP(sw_isr[LS3A_INTC_IP], EXTIOI_IRQS); + qemu_irq parent_irq[LS3A_INTC_IP]; +} ExtIOICore; + +struct LoongArchExtIOI { + SysBusDevice parent_obj; + uint32_t num_cpu; + uint32_t features; + uint32_t status; + /* hardware state */ + uint32_t nodetype[EXTIOI_IRQS_NODETYPE_COUNT / 2]; + uint32_t bounce[EXTIOI_IRQS_GROUP_COUNT]; + uint32_t isr[EXTIOI_IRQS / 32]; + uint32_t enable[EXTIOI_IRQS / 32]; + uint32_t ipmap[EXTIOI_IRQS_IPMAP_SIZE / 4]; + uint32_t coremap[EXTIOI_IRQS / 4]; + uint32_t sw_pending[EXTIOI_IRQS / 32]; + uint8_t sw_ipmap[EXTIOI_IRQS_IPMAP_SIZE]; + uint8_t sw_coremap[EXTIOI_IRQS]; + qemu_irq irq[EXTIOI_IRQS]; + ExtIOICore *cpu; + MemoryRegion extioi_system_mem; + MemoryRegion virt_extend; +}; #endif /* LOONGARCH_EXTIOI_H */ |