Home
last modified time | relevance | path

Searched full:aplic (Results 1 – 9 of 9) sorted by relevance

/linux/arch/riscv/kvm/
H A Daia_aplic.c10 #include <linux/irqchip/riscv-aplic.h>
30 struct aplic {
41 static u32 aplic_read_sourcecfg(struct aplic *aplic, u32 irq) in aplic_read_sourcecfg()
47 if (!irq || aplic->nr_irqs <= irq) in aplic_read_sourcecfg()
49 irqd = &aplic->irqs[array_index_nospec(irq, aplic->nr_irqs)]; in aplic_read_sourcecfg()
58 static void aplic_write_sourcecfg(struct aplic *aplic, u32 irq, u32 val) in aplic_write_sourcecfg()
63 if (!irq || aplic in aplic_write_sourcecfg()
29 struct aplic { global() struct
37 irqsaplic global() argument
40 aplic_read_sourcecfg(struct aplic * aplic,u32 irq) aplic_read_sourcecfg() argument
57 aplic_write_sourcecfg(struct aplic * aplic,u32 irq,u32 val) aplic_write_sourcecfg() argument
76 aplic_read_target(struct aplic * aplic,u32 irq) aplic_read_target() argument
93 aplic_write_target(struct aplic * aplic,u32 irq,u32 val) aplic_write_target() argument
111 aplic_read_pending(struct aplic * aplic,u32 irq) aplic_read_pending() argument
128 aplic_write_pending(struct aplic * aplic,u32 irq,bool pending) aplic_write_pending() argument
165 aplic_read_enabled(struct aplic * aplic,u32 irq) aplic_read_enabled() argument
182 aplic_write_enabled(struct aplic * aplic,u32 irq,bool enabled) aplic_write_enabled() argument
199 aplic_read_input(struct aplic * aplic,u32 irq) aplic_read_input() argument
249 struct aplic *aplic = kvm->arch.aia.aplic_state; aplic_update_irq_range() local
282 struct aplic *aplic = kvm->arch.aia.aplic_state; kvm_riscv_aia_aplic_inject() local
336 aplic_read_input_word(struct aplic * aplic,u32 word) aplic_read_input_word() argument
346 aplic_read_pending_word(struct aplic * aplic,u32 word) aplic_read_pending_word() argument
356 aplic_write_pending_word(struct aplic * aplic,u32 word,u32 val,bool pending) aplic_write_pending_word() argument
367 aplic_read_enabled_word(struct aplic * aplic,u32 word) aplic_read_enabled_word() argument
377 aplic_write_enabled_word(struct aplic * aplic,u32 word,u32 val,bool enabled) aplic_write_enabled_word() argument
391 struct aplic *aplic = kvm->arch.aia.aplic_state; aplic_mmio_read_offset() local
456 struct aplic *aplic = kvm->arch.aia.aplic_state; aplic_mmio_write_offset() local
576 struct aplic *aplic; kvm_riscv_aia_aplic_init() local
631 struct aplic *aplic = kvm->arch.aia.aplic_state; kvm_riscv_aia_aplic_cleanup() local
[all...]
H A Daia_device.c247 /* APLIC base is required for non-zero number of sources */ in aia_init()
251 /* Initialize APLIC */ in aia_init()
612 /* Inject interrupt level change in APLIC */ in kvm_riscv_aia_init_vm()
648 /* Cleanup APLIC context */
/linux/drivers/irqchip/
H A Dirq-riscv-aplic-msi.c12 #include <linux/irqchip/riscv-aplic.h>
21 #include "irq-riscv-aplic-main.h"
47 * APLIC’s source identity number for the interrupt to the domain’s in aplic_msi_irq_retrigger_level()
61 * when APLIC is in MSI mode. in aplic_msi_irq_eoi()
74 * requires interrupt retriggering when APLIC is in MSI mode. in aplic_msi_irq_set_type()
148 .name = "APLIC-MSI",
190 dev_err(dev, "failed to create APLIC context\n"); in aplic_msi_setup()
196 * The APLIC outgoing MSI config registers assume target MSI in aplic_msi_setup()
208 dev_err(dev, "IMSIC guest index bits big for APLIC LHXS\n"); in aplic_msi_setup()
215 dev_err(dev, "IMSIC hart index bits big for APLIC LHXW\n"); in aplic_msi_setup()
[all …]
H A Dirq-riscv-intc.c98 * (such as PLIC, SBI IPI, CLINT, APLIC, IMSIC, etc) implement in riscv_intc_irq_eoi()
232 * interrupt controllers (such as PLIC, IMSIC and APLIC in riscv_intc_init()
H A Dirq-riscv-imsic-state.c612 * If not specified assumed the default APLIC-IMSIC configuration. in imsic_populate_global_dt()
/linux/drivers/acpi/riscv/
H A Dirq.c44 * interrupt controller structures and IMSIC before APLIC. The interrupt
46 * the incremental order like RINTC(24)->IMSIC(25)->APLIC(26)->PLIC(27).
227 struct acpi_madt_aplic *aplic = (struct acpi_madt_aplic *)header; in riscv_acpi_aplic_parse_madt() local
229 return riscv_acpi_register_ext_intc(aplic->gsi_base, aplic->num_sources, aplic->num_idcs, in riscv_acpi_aplic_parse_madt()
230 aplic->id, ACPI_RISCV_IRQCHIP_APLIC); in riscv_acpi_aplic_parse_madt()
244 /* There can be either PLIC or APLIC */ in riscv_acpi_init_gsi_mapping()
253 /* Unlike PLIC/APLIC, SYSMSI doesn't have MADT */ in riscv_acpi_init_gsi_mapping()
/linux/arch/riscv/include/asm/
H A Dkvm_aia.h45 /* Guest physical address of APLIC */
48 /* Internal state of APLIC */
/linux/drivers/acpi/
H A Dscan.c865 "RSCV0002", /* RISC-V APLIC */
/linux/
H A DMAINTAINERS22661 F: Documentation/devicetree/bindings/interrupt-controller/riscv,aplic.yaml
22663 F: drivers/irqchip/irq-riscv-aplic-*.c
22664 F: drivers/irqchip/irq-riscv-aplic-*.h
22668 F: include/linux/irqchip/riscv-aplic.h