/linux-6.14.4/arch/loongarch/boot/dts/ |
D | loongson-2k0500.dtsi | 90 interrupt-parent = <&eiointc>; 100 interrupt-parent = <&eiointc>; 110 interrupt-parent = <&eiointc>; 120 interrupt-parent = <&eiointc>; 163 eiointc: interrupt-controller@1fe11600 { label 164 compatible = "loongson,ls2k0500-eiointc"; 193 interrupt-parent = <&eiointc>; 201 interrupt-parent = <&eiointc>; 209 interrupt-parent = <&eiointc>; 226 interrupt-parent = <&eiointc>; [all …]
|
D | loongson-2k2000.dtsi | 96 interrupt-parent = <&eiointc>; 139 eiointc: interrupt-controller@1fe01600 { label 140 compatible = "loongson,ls2k2000-eiointc"; 154 interrupt-parent = <&eiointc>; 165 interrupt-parent = <&eiointc>;
|
/linux-6.14.4/arch/loongarch/kvm/intc/ |
D | eiointc.c | 301 struct loongarch_eiointc *eiointc = vcpu->kvm->arch.eiointc; in kvm_eiointc_read() local 303 if (!eiointc) { in kvm_eiointc_read() 304 kvm_err("%s: eiointc irqchip not valid!\n", __func__); in kvm_eiointc_read() 309 spin_lock_irqsave(&eiointc->lock, flags); in kvm_eiointc_read() 312 ret = loongarch_eiointc_readb(vcpu, eiointc, addr, len, val); in kvm_eiointc_read() 315 ret = loongarch_eiointc_readw(vcpu, eiointc, addr, len, val); in kvm_eiointc_read() 318 ret = loongarch_eiointc_readl(vcpu, eiointc, addr, len, val); in kvm_eiointc_read() 321 ret = loongarch_eiointc_readq(vcpu, eiointc, addr, len, val); in kvm_eiointc_read() 327 spin_unlock_irqrestore(&eiointc->lock, flags); in kvm_eiointc_read() 675 struct loongarch_eiointc *eiointc = vcpu->kvm->arch.eiointc; in kvm_eiointc_write() local [all …]
|
D | pch_pic.c | 11 /* update the isr according to irq level and route irq to eiointc */ 17 * set isr and route irq to eiointc and in pch_pic_update_irq() 24 eiointc_set_irq(s->kvm->arch.eiointc, irq, level); in pch_pic_update_irq() 30 eiointc_set_irq(s->kvm->arch.eiointc, irq, level); in pch_pic_update_irq() 77 eiointc_set_irq(kvm->arch.eiointc, irq, level); in pch_msi_set_irq() 165 /* only route to int0: eiointc */ in loongarch_pch_pic_read() 270 /* only route to int0: eiointc */ in loongarch_pch_pic_write() 274 /* route table to eiointc */ in loongarch_pch_pic_write()
|
/linux-6.14.4/Documentation/arch/loongarch/ |
D | irq-chip-model.rst | 9 Interrupt Controller), LIOINTC (Legacy I/O Interrupt Controller), EIOINTC (Extended 14 CPUINTC is a per-core controller (in CPU), LIOINTC/EIOINTC/HTVECINTC are per-package 61 interrupts go to PCH-PIC/PCH-LPC/PCH-MSI and gathered by EIOINTC, and then go to 70 | EIOINTC | | LIOINTC | <-- | UARTs | 93 devices interrupts go to PCH-PIC/PCH-MSI and gathered by V-EIOINTC (Virtual 102 | V-EIOINTC | 118 V-EIOINTC (Virtual Extended I/O Interrupt Controller) is an extension of 119 EIOINTC, it only works in VM mode which runs in KVM hypervisor. Interrupts can 120 be routed to up to four vCPUs via standard EIOINTC, however with V-EIOINTC 123 With standard EIOINTC, interrupt routing setting includes two parts: eight [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/interrupt-controller/ |
D | loongson,eiointc.yaml | 4 $id: http://devicetree.org/schemas/interrupt-controller/loongson,eiointc.yaml# 23 - loongson,ls2k0500-eiointc 24 - loongson,ls2k2000-eiointc 48 eiointc: interrupt-controller@1fe11600 { 49 compatible = "loongson,ls2k0500-eiointc";
|
/linux-6.14.4/Documentation/translations/zh_CN/arch/loongarch/ |
D | irq-chip-model.rst | 14 Legacy I/O Interrupt Controller)、EIOINTC(Extended I/O Interrupt Controller)、 18 CPUINTC是一种CPU内部的每个核本地的中断控制器,LIOINTC/EIOINTC/HTVECINTC是CPU内部的 72 | EIOINTC | | LIOINTC | <-- | UARTs | 103 | V-EIOINTC | 116 V-EIOINTC 是EIOINTC的扩展, 仅工作在虚拟机模式下, 中断经EIOINTC最多可个路由到 159 | EIOINTC | | AVECINTC | | LIOINTC | <-- | UARTs | 192 EIOINTC:: 241 - EIOINTC:即《龙芯3A5000处理器使用手册》第11.2节所描述的“扩展I/O中断”;
|
/linux-6.14.4/Documentation/translations/zh_TW/arch/loongarch/ |
D | irq-chip-model.rst | 14 Legacy I/O Interrupt Controller)、EIOINTC(Extended I/O Interrupt Controller)、 18 CPUINTC是一種CPU內部的每個核本地的中斷控制器,LIOINTC/EIOINTC/HTVECINTC是CPU內部的 72 | EIOINTC | | LIOINTC | <-- | UARTs | 105 EIOINTC:: 154 - EIOINTC:即《龍芯3A5000處理器使用手冊》第11.2節所描述的“擴展I/O中斷”;
|
/linux-6.14.4/arch/loongarch/kernel/ |
D | acpi.c | 140 struct acpi_madt_eio_pic *eiointc = NULL; in acpi_parse_eio_master() local 142 eiointc = (struct acpi_madt_eio_pic *)header; in acpi_parse_eio_master() 143 if (BAD_MADT_ENTRY(eiointc, end)) in acpi_parse_eio_master() 146 core = eiointc->node * CORES_PER_EIO_NODE; in acpi_parse_eio_master()
|
/linux-6.14.4/arch/loongarch/include/asm/ |
D | kvm_pch_pic.h | 53 uint8_t route_entry[64]; /* default value 0, route to int0: eiointc */ 54 uint8_t htmsi_vector[64]; /* irq route table for routing to eiointc */
|
D | kvm_host.h | 98 * For eiointc interrupt controller, max destination CPUID size is 256 132 struct loongarch_eiointc *eiointc; member
|
/linux-6.14.4/drivers/irqchip/ |
D | irq-loongson-eiointc.c | 8 #define pr_fmt(fmt) "eiointc: " fmt 290 .name = "EIOINTC", 471 "irqchip/loongarch/eiointc:starting", in eiointc_init() 551 if (of_device_is_compatible(of_node, "loongson,ls2k0500-eiointc")) in eiointc_of_init() 570 IRQCHIP_DECLARE(loongson_ls2k0500_eiointc, "loongson,ls2k0500-eiointc", eiointc_of_init); 571 IRQCHIP_DECLARE(loongson_ls2k2000_eiointc, "loongson,ls2k2000-eiointc", eiointc_of_init);
|
D | Makefile | 118 obj-$(CONFIG_LOONGSON_EIOINTC) += irq-loongson-eiointc.o
|
/linux-6.14.4/arch/loongarch/kvm/ |
D | Makefile | 22 kvm-y += intc/eiointc.o
|
D | vm.c | 196 return (kvm->arch.ipi && kvm->arch.eiointc && kvm->arch.pch_pic); in kvm_arch_irqchip_in_kernel()
|
D | main.c | 403 /* Register LoongArch EIOINTC interrupt controller interface. */ in kvm_loongarch_env_init()
|