qemu-irix/hw/intc
Peter Maydell eb578a2394 nvic: Implement "user accesses BusFault" SCS region behaviour
The ARMv7M architecture specifies that most of the addresses in the
PPB region (which includes the NVIC, systick and system registers)
are not accessible to unprivileged accesses, which should
BusFault with a few exceptions:
 * the STIR is configurably user-accessible
 * the ITM (which we don't implement at all) is always
   user-accessible

Implement this by switching the register access functions
to the _with_attrs scheme that lets us distinguish user
mode accesses.

This allows us to pull the handling of the CCR.USERSETMPEND
flag up to the level where we can make it generate a BusFault
as it should for non-permitted accesses.

Note that until the core ARM CPU code implements turning
MEMTX_ERROR into a BusFault the registers will continue to
act as RAZ/WI to user accesses.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 1501692241-23310-16-git-send-email-peter.maydell@linaro.org
2017-09-04 15:21:53 +01:00
..
Makefile.objs ppc/pnv: add a PnvICPState object 2017-04-26 12:00:42 +10:00
allwinner-a10-pic.c
apic.c
apic_common.c apic-common: make "id" property a uint32 2017-06-20 14:31:32 +02:00
arm_gic.c ARM: KVM: Enable in-kernel timers with user space gic 2017-07-11 11:21:26 +01:00
arm_gic_common.c
arm_gic_kvm.c kvm-all: Pass an error object to kvm_device_access 2017-06-13 14:57:00 +01:00
arm_gicv2m.c
arm_gicv3.c
arm_gicv3_common.c arm: use get_uint() for "mp-affinity" property 2017-06-20 14:31:33 +02:00
arm_gicv3_cpuif.c arm_gicv3: Fix ICC_BPR1 reset value when EL3 not implemented 2017-06-07 17:21:44 +01:00
arm_gicv3_dist.c
arm_gicv3_its_common.c hw/intc/arm_gicv3_its: Allow save/restore 2017-06-13 14:57:01 +01:00
arm_gicv3_its_kvm.c hw/intc/arm_gicv3_its: Allow save/restore 2017-06-13 14:57:01 +01:00
arm_gicv3_kvm.c hw/intc/arm_gicv3_kvm: Implement pending table save 2017-06-13 14:57:00 +01:00
arm_gicv3_redist.c
armv7m_nvic.c nvic: Implement "user accesses BusFault" SCS region behaviour 2017-09-04 15:21:53 +01:00
aspeed_vic.c
bcm2835_ic.c
bcm2836_control.c
etraxfs_pic.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
exynos4210_combiner.c
exynos4210_gic.c hw/intc/exynos4210_gic: Constify array of combiner interrupts 2017-06-13 14:56:58 +01:00
gic_internal.h
gicv3_internal.h
grlib_irqmp.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
heathrow_pic.c
i8259.c
i8259_common.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
imx_avic.c
intc.c
ioapic.c ioapic: Remove user_creatable flag 2017-05-17 10:37:01 -03:00
ioapic_common.c
lm32_pic.c
mips_gic.c
nios2_iic.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
omap_intc.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
openpic.c target-ppc: Enable open-pic timers to count and generate interrupts 2017-06-30 14:03:32 +10:00
openpic_kvm.c
pl190.c
puv3_intc.c
realview_gic.c
s390_flic.c s390x/flic: migrate ais states 2017-07-14 12:29:49 +02:00
s390_flic_kvm.c s390x/kvm: move KVM declarations and stubs to separate files 2017-08-30 18:23:26 +02:00
sh_intc.c
slavio_intctl.c
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00
vgic_common.h
xics.c xics: directly register ICPState objects to vmstate 2017-06-30 14:03:31 +10:00
xics_kvm.c xics: drop ICPStateClass::cpu_setup() handler 2017-06-09 12:17:59 +10:00
xics_pnv.c xics: pass appropriate types to realize() handlers. 2017-06-09 12:12:34 +10:00
xics_spapr.c ppc/xics: simplify prototype of xics_spapr_init() 2017-05-24 11:39:52 +10:00
xilinx_intc.c