qemu-cr16/include/hw/intc
Song Gao dc6f37eb95 hw/intc/loongarch_extioi: Add extioi virt extension definition
On LoongArch, IRQs can be routed to four vcpus with hardware extended
IRQ model. This patch adds the virt extension definition so that
the IRQ can route to 256 vcpus.

    1.Extended IRQ model:
                                    |
    +-----------+     +-------------|--------+     +-----------+
    | IPI/Timer | --> | CPUINTC(0-3)|(4-255) | <-- | IPI/Timer |
    +-----------+     +-------------|--------+     +-----------+
                            ^       |
                            |
                       +---------+
                       | EIOINTC |
                       +---------+
                        ^       ^
                        |       |
                 +---------+ +---------+
                 | PCH-PIC | | PCH-MSI |
                 +---------+ +---------+
                   ^      ^          ^
                   |      |          |
            +--------+ +---------+ +---------+
            | UARTs  | | Devices | | Devices |
            +--------+ +---------+ +---------+

    2.Virt extended IRQ model:

      +-----+    +---------------+     +-------+
      | IPI |--> | CPUINTC(0-255)| <-- | Timer |
      +-----+    +---------------+     +-------+
                        ^
                        |
                  +-----------+
                  | V-EIOINTC |
                  +-----------+
                   ^         ^
                   |         |
            +---------+ +---------+
            | PCH-PIC | | PCH-MSI |
            +---------+ +---------+
              ^      ^          ^
              |      |          |
       +--------+ +---------+ +---------+
       | UARTs  | | Devices | | Devices |
       +--------+ +---------+ +---------+

Signed-off-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>
Message-Id: <20240528083855.1912757-2-gaosong@loongson.cn>
2024-06-06 11:56:45 +08:00
..
allwinner-a10-pic.h
arm_gic.h hw/intc/arm_gic: Un-inline GIC*/ITS class_name() helpers 2023-06-28 14:27:59 +02:00
arm_gic_common.h hw/intc/arm_gicv3: Add external IRQ lines for NMI 2024-04-25 10:21:05 +01:00
arm_gicv3.h
arm_gicv3_common.h hw/intc/arm_gicv3: Add NMI handling CPU interface registers 2024-04-25 10:21:05 +01:00
arm_gicv3_its_common.h hw/intc/arm_gic: Un-inline GIC*/ITS class_name() helpers 2023-06-28 14:27:59 +02:00
armv7m_nvic.h hw/arm/armv7m: Make 'hw/intc/armv7m_nvic.h' a target agnostic header 2024-01-26 11:30:49 +00:00
aspeed_vic.h
bcm2835_ic.h
bcm2836_control.h
exynos4210_combiner.h
exynos4210_gic.h
goldfish_pic.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
grlib_irqmp.h hw/intc/grlib_irqmp: implements multicore irq 2024-02-15 16:58:46 +01:00
heathrow_pic.h
i8259.h intc: remove PICCommonState from typedefs.h 2024-05-03 15:47:48 +02:00
imx_avic.h
imx_gpcv2.h
intc.h
ioapic.h hw: Move ioapic*.h to intc/ 2023-02-27 22:29:01 +01:00
kvm_irqcount.h hw/intc: Extract the IRQ counting functions into a separate file 2023-01-13 16:22:57 +01:00
loongarch_extioi.h hw/intc/loongarch_extioi: Add extioi virt extension definition 2024-06-06 11:56:45 +08:00
loongarch_pch_msi.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
loongarch_pch_pic.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
loongson_ipi.h hw/intc/loongarch_ipi: Rename as loongson_ipi 2024-05-09 00:07:21 +02:00
loongson_liointc.h
m68k_irqc.h hw/m68k/irqc: Pass CPU using QOM link property 2023-11-01 07:20:34 +01:00
mips_gic.h hw/mips: Declare all length properties as unsigned 2023-03-08 00:37:48 +01:00
ppc-uic.h hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device 2022-08-31 14:08:06 -03:00
realview_gic.h
riscv_aclint.h hw/intc: Move mtimer/mtimecmp to aclint 2022-09-07 09:19:10 +02:00
riscv_aplic.h
riscv_imsic.h
rx_icu.h Clean up decorations and whitespace around header guards 2022-05-11 16:50:32 +02:00
sifive_plic.h hw/intc: sifive_plic: Drop PLICMode_H 2023-01-06 10:42:55 +10:00
xlnx-pmu-iomod-intc.h
xlnx-zynqmp-ipi.h