xemu/hw/intc
Peter Maydell 28cca59c46 hw/intc/arm_gicv3: Add NMI handling CPU interface registers
Add the NMIAR CPU interface registers which deal with acknowledging NMI.

When introduce NMI interrupt, there are some updates to the semantics for the
register ICC_IAR1_EL1 and ICC_HPPIR1_EL1. For ICC_IAR1_EL1 register, it
should return 1022 if the intid has non-maskable property. And for
ICC_NMIAR1_EL1 register, it should return 1023 if the intid do not have
non-maskable property. Howerever, these are not necessary for ICC_HPPIR1_EL1
register.

And the APR and RPR has NMI bits which should be handled correctly.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
[PMM: Separate out whether cpuif supports NMI from whether the
 GIC proper (IRI) supports NMI]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240407081733.3231820-19-ruanjinjie@huawei.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2024-04-25 10:21:05 +01:00
..
Kconfig target/nios2: Remove the deprecated Nios II target 2024-04-24 16:03:38 +02:00
allwinner-a10-pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
apic.c hw/intc/apic: fix memory leak 2024-03-09 18:51:45 +01:00
apic_common.c hw/i386/x86: Fix PIC interrupt handling if APIC is globally disabled 2024-02-14 06:09:32 -05:00
arm_gic.c arm: spelling fixes 2023-07-25 17:13:53 +03:00
arm_gic_common.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
arm_gic_kvm.c migration: simplify blockers 2023-10-20 08:51:41 +02:00
arm_gicv2m.c arm tcg cpus: Fix Lesser GPL version number 2020-11-15 16:42:14 +01:00
arm_gicv3.c hw/intc/arm_gicv3: Specify valid and impl in MemoryRegionOps 2022-03-07 13:16:50 +00:00
arm_gicv3_common.c hw/intc/arm_gicv3: Add irq non-maskable property 2024-04-25 10:21:05 +01:00
arm_gicv3_cpuif.c hw/intc/arm_gicv3: Add NMI handling CPU interface registers 2024-04-25 10:21:05 +01:00
arm_gicv3_cpuif_common.c hw/intc/arm_gicv3: Extract gicv3_set_gicv3state from arm_gicv3_cpuif.c 2021-12-15 10:11:34 +00:00
arm_gicv3_dist.c hw/intc/arm_gicv3: Implement GICD_INMIR 2024-04-25 10:21:05 +01:00
arm_gicv3_its.c hw/intc/arm_gicv3_its: Avoid shadowing variable in do_process_its_cmd() 2023-09-29 10:07:18 +02:00
arm_gicv3_its_common.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
arm_gicv3_its_kvm.c hw/intc/arm_gicv3: Include missing 'qemu/error-report.h' header 2023-12-19 17:57:44 +00:00
arm_gicv3_kvm.c hw/intc/arm_gicv3_kvm: Not set has-nmi=true for the KVM GICv3 2024-04-25 10:21:05 +01:00
arm_gicv3_redist.c hw/intc/arm_gicv3_redist: Implement GICR_INMIR0 2024-04-25 10:21:05 +01:00
armv7m_nvic.c hw/intc/armv7m_nvic: add "num-prio-bits" property 2024-01-09 14:42:40 +00:00
aspeed_vic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
bcm2835_ic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
bcm2836_control.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
etraxfs_pic.c hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
exynos4210_combiner.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
exynos4210_gic.c Misc cleanups 2022-04-21 09:27:54 -07:00
gic_internal.h hw/intc/arm_gic: Drop GIC_BASE_IRQ macro 2018-09-25 15:13:24 +01:00
gicv3_internal.h hw/intc/arm_gicv3: Add NMI handling CPU interface registers 2024-04-25 10:21:05 +01:00
goldfish_pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
grlib_irqmp.c hw/intc/grlib_irqmp: abort realize when ncpus value is out of range 2024-03-09 19:17:01 +01:00
heathrow_pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
i8259.c hw/intc/i8259: Implement legacy LTIM Edge/Level Bank Select 2023-03-08 00:37:48 +01:00
i8259_common.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
imx_avic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
imx_gpcv2.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
intc.c intc: add an interface to gather statistics/informations on interrupt controllers 2016-10-04 10:00:25 +02:00
ioapic.c hw/intc/ioapic: Update KVM routes before redelivering IRQ, on RTE update 2023-03-15 11:52:25 +01:00
ioapic_common.c hw/intc: Check @errp to handle the error of IOAPICCommonClass.realize() 2024-03-12 11:45:33 +01:00
ioapic_internal.h hw: Move ioapic*.h to intc/ 2023-02-27 22:29:01 +01:00
kvm_irqcount.c hw/intc: Extract the IRQ counting functions into a separate file 2023-01-13 16:22:57 +01:00
loongarch_extioi.c hw/intc/loongarch_extioi: Fix interrupt routing update 2024-03-20 10:19:57 +08:00
loongarch_ipi.c hw/loongarch/virt: Set iocsr address space per-board rather than percpu 2024-01-11 19:22:47 +08:00
loongarch_pch_msi.c hw/intc/loongarch_pch_msi: add irq number property 2023-01-06 10:54:20 +08:00
loongarch_pch_pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
loongson_liointc.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
m68k_irqc.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
meson.build target/nios2: Remove the deprecated Nios II target 2024-04-24 16:03:38 +02:00
mips_gic.c accel/tcg: Replace CPUState.env_ptr with cpu_env() 2023-10-04 11:03:54 -07:00
omap_intc.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
ompic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
openpic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
openpic_kvm.c memory: Name all the memory listeners 2021-09-30 15:30:24 +02:00
pl190.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
pnv_xive.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
pnv_xive2.c ppc/xive: Use address_space routines to access the machine RAM 2023-09-06 11:19:33 +02:00
pnv_xive2_regs.h pnv/xive2: Add definition for the ESB cache configuration register 2023-06-10 10:19:24 -03:00
pnv_xive_regs.h ppc/xive: Handle END triggers between chips with MMIOs 2023-09-06 11:19:33 +02:00
ppc-uic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
realview_gic.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
riscv_aclint.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
riscv_aplic.c hw/intc: Update APLIC IDC after claiming iforce register 2024-03-22 15:29:44 +10:00
riscv_imsic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
rx_icu.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
s390_flic.c system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00
s390_flic_kvm.c hw/intc/s390_flic: Consolidate the use of device_class_set_parent_realize() 2024-02-13 10:59:25 +03:00
sh_intc.c hw/intc/sh_intc: Remove unneeded local variable initialisers 2021-10-30 18:39:37 +02:00
sifive_plic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
slavio_intctl.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
spapr_xive.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
spapr_xive_kvm.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
trace-events hw/intc/arm_gicv3: Add NMI handling CPU interface registers 2024-04-25 10:21:05 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics.c hw/intc/xics: Include missing 'cpu.h' header 2024-01-30 21:20:20 +03:00
xics_kvm.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
xics_pnv.c non-virt: Fix Lesser GPL version number 2020-11-15 16:38:24 +01:00
xics_spapr.c Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
xilinx_intc.c hw/intc/xilinx_intc: Use 'XpsIntc' typedef instead of 'struct xlx_pic' 2023-01-12 17:15:09 +00:00
xive.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
xive2.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
xlnx-pmu-iomod-intc.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
xlnx-zynqmp-ipi.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00