qemu/hw/arm
Peter Maydell fee887a7b0 hw/arm/mps2-tz: Correct wrong interrupt numbers for DMA and SPI
On the MPS2 boards, the first 32 interrupt lines are entirely
internal to the SSE; interrupt lines for devices outside the SSE
start at 32.  In the application notes that document each FPGA image,
the interrupt wiring is documented from the point of view of the CPU,
so '0' is the first of the SSE's interrupts and the devices in the
FPGA image itself are '32' and up: so the UART 0 Receive interrupt is
32, the SPI #0 interrupt is 51, and so on.

Within our implementation, because the external interrupts must be
connected to the EXP_IRQ[0...n] lines of the SSE object, we made the
get_sse_irq_in() function take an irqno whose values start at 0 for
the first FPGA device interrupt.  In this numbering scheme the UART 0
Receive interrupt is 0, the SPI #0 interrupt is 19, and so on.

The result of these two different numbering schemes has been that
half of the devices were wired up to the wrong IRQs: the UART IRQs
are wired up correctly, but the DMA and SPI devices were passing
start-at-32 values to get_sse_irq_in() and so being mis-connected.

Fix the bug by making get_sse_irq_in() take values specified with the
same scheme that the hardware manuals use, to avoid confusion.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210215115138.20465-12-peter.maydell@linaro.org
2021-03-06 13:30:39 +00:00
..
allwinner-a10.c hw/sd/allwinner-sdhost: Use AddressSpace for DMA transfers 2020-08-28 10:02:45 +01:00
allwinner-h3.c target-arm queue: 2020-08-28 15:14:40 +01:00
armsse.c arm: Remove frq properties on CMSDK timer, dualtimer, watchdog, ARMSSE 2021-01-29 15:54:44 +00:00
armv7m.c hw/arm/armv7m: Correct typo in QOM object name 2020-12-10 11:44:56 +00:00
aspeed_ast2600.c arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
aspeed_soc.c hw/arm/aspeed: Map the UART5 device unconditionally 2020-09-18 09:04:36 +02:00
aspeed.c arm: do not use ram_size global 2020-12-10 12:15:07 -05:00
bcm2835_peripherals.c hw/arm/bcm2835_peripherals: connect the UART clock 2020-10-27 11:10:44 +00:00
bcm2836.c hw/arm/bcm2836: Introduce the BCM2835 SoC 2020-10-27 11:10:44 +00:00
boot.c vl: make qemu_get_machine_opts static 2020-12-15 12:51:55 -05:00
collie.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cubieboard.c arm: remove bios_name 2020-12-10 12:15:04 -05:00
digic_boards.c hw/arm: Display CPU type in machine description 2021-02-03 10:15:51 +00:00
digic.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
exynos4_boards.c sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 1 2020-06-15 22:06:04 +02:00
exynos4210.c qom: simplify object_find_property / object_class_find_property 2020-09-22 16:45:16 -04:00
fsl-imx6.c Add the ability to change the FEC PHY MDIO device number on i.MX6 processor 2020-07-13 14:36:08 +01:00
fsl-imx6ul.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
fsl-imx7.c Add the ability to change the FEC PHY MDIO devices numbers on i.MX7 processor 2020-07-13 14:36:08 +01:00
fsl-imx25.c Add the ability to change the FEC PHY MDIO device number on i.MX25 processor 2020-07-13 14:36:07 +01:00
fsl-imx31.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
gumstix.c hw/arm/gumstix: Simplify since the machines are little-endian only 2020-03-05 16:09:14 +00:00
highbank.c hw/arm/highbank: Drop dead KVM support code 2021-01-08 15:13:38 +00:00
imx25_pdk.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
integratorcp.c qom: simplify object_find_property / object_class_find_property 2020-09-22 16:45:16 -04:00
Kconfig hw/arm: Add I2C sensors and EEPROM for GSJ machine 2021-02-16 13:50:38 +00:00
kzm.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
mainstone.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
mcimx6ul-evk.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
mcimx7d-sabre.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
meson.build hw/arm: Add two NPCM7xx-based machines 2020-09-14 14:24:58 +01:00
microbit.c hw/arm: Display CPU type in machine description 2021-02-03 10:15:51 +00:00
mps2-tz.c hw/arm/mps2-tz: Correct wrong interrupt numbers for DMA and SPI 2021-03-06 13:30:39 +00:00
mps2.c hw/misc/mps2-scc: Support configurable number of OSCCLK values 2021-03-06 13:30:38 +00:00
msf2-soc.c msf2-soc, stellaris: Don't wire up SYSRESETREQ 2020-08-03 17:55:03 +01:00
msf2-som.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
musca.c arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
musicpal.c hw/arm/musicpal: Remove dead code for non-32-bit-RGB surfaces 2021-03-05 15:17:35 +00:00
netduino2.c hw/arm: Display CPU type in machine description 2021-02-03 10:15:51 +00:00
netduinoplus2.c hw/arm: Display CPU type in machine description 2021-02-03 10:15:51 +00:00
npcm7xx_boards.c hw/arm: Add I2C sensors and EEPROM for GSJ machine 2021-02-16 13:50:38 +00:00
npcm7xx.c hw/arm: Add npcm7xx emc model 2021-03-05 15:17:34 +00:00
nrf51_soc.c hw/arm/nrf51_soc: Set system_clock_scale 2020-08-03 17:55:31 +01:00
nseries.c hw/arm/nseries: Check return value from load_image_targphys() 2020-11-10 11:03:48 +00:00
omap1.c hw/arm/omap1:Remove redundant statement in omap_clkdsp_read() 2020-09-01 11:53:44 +02:00
omap2.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
omap_sx1.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
orangepi.c hw/arm: Display CPU type in machine description 2021-02-03 10:15:51 +00:00
palm.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pxa2xx_gpio.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pxa2xx_pic.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pxa2xx.c qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
raspi.c hw/arm/raspi: Add the Raspberry Pi 3 model A+ 2020-10-27 11:10:44 +00:00
realview.c qom: simplify object_find_property / object_class_find_property 2020-09-22 16:45:16 -04:00
sabrelite.c hw/arm: sabrelite: Connect the Ethernet PHY at address 6 2021-01-08 15:13:39 +00:00
sbsa-ref.c sbsa-ref: add 'max' to list of allowed cpus 2021-03-05 15:17:33 +00:00
smmu-common.c memory: Add IOMMUTLBEvent 2020-12-08 13:48:57 -05:00
smmu-internal.h hw/arm/smmu-common: Manage IOTLB block entries 2020-08-24 10:02:06 +01:00
smmuv3-internal.h hw/arm/smmuv3: Fix up L1STD_SPAN decoding 2020-12-10 11:30:44 +00:00
smmuv3.c vhost: Unbreak SMMU and virtio-iommu on dev-iotlb support 2021-02-05 08:52:58 -05:00
spitz.c hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00
stellaris.c hw/arm: Display CPU type in machine description 2021-02-03 10:15:51 +00:00
stm32f205_soc.c hw/misc/stm32f2xx_syscfg: Remove extraneous IRQ 2020-11-10 11:03:48 +00:00
stm32f405_soc.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
strongarm.c qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
strongarm.h hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
sysbus-fdt.c hw/arm/virt: vTPM support 2020-03-05 12:18:16 -05:00
tosa.c hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00
trace-events arm/trace: Fix hex printing 2020-10-27 11:10:44 +00:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
versatilepb.c qom: simplify object_find_property / object_class_find_property 2020-09-22 16:45:16 -04:00
vexpress.c vexpress-a15: Register "virtualization" as class property 2020-12-14 14:25:44 -05:00
virt-acpi-build.c acpi: Permit OEM ID and OEM table ID fields to be changed 2021-02-05 08:52:59 -05:00
virt.c acpi: use constants as strncpy limit 2021-02-05 08:52:59 -05:00
xilinx_zynq.c qom: simplify object_find_property / object_class_find_property 2020-09-22 16:45:16 -04:00
xlnx-versal-virt.c arm: xlnx-versal: Connect usb to virt-versal 2020-12-15 12:04:30 +00:00
xlnx-versal.c hw/arm: versal: Use nr_apu_cpus in favor of hard coding 2 2021-02-11 19:48:09 +00:00
xlnx-zcu102.c arm: rename xlnx-zcu102.canbusN properties 2021-01-29 10:47:28 +00:00
xlnx-zynqmp.c hw/arm/xlnx-zynqmp: Remove obsolete 'has_rpu' property 2021-03-05 15:17:34 +00:00
z2.c hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00