qemu/hw/arm
Nicolin Chen 5786827f47 hw/arm/virt-acpi-build: Fix id_count in build_iort_id_mapping
It's observed that Linux kernel booting with the VM reports a "conflicting
mapping for input ID" FW_BUG.

The IORT doc defines "Number of IDs" to be "the number of IDs in the range
minus one", while virt-acpi-build.c simply stores the number of IDs in the
id_count without the "minus one". Meanwhile, some of the callers pass in a
0xFFFF following the spec. So, this is a mismatch between the function and
its callers.

Fix build_iort_id_mapping() by internally subtracting one from the pass-in
@id_count. Accordingly make sure that all existing callers pass in a value
without the "minus one", i.e. change all 0xFFFFs to 0x10000s.

Also, add a few lines of comments to highlight this change along with the
referencing document for this build_iort_id_mapping().

Fixes: 42e0f050e3 ("hw/arm/virt-acpi-build: Add IORT support to bypass SMMUv3")
Suggested-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Message-Id: <20240619201243.936819-1-nicolinc@nvidia.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2024-07-03 18:14:06 -04:00
..
allwinner-a10.c hw/arm/allwinner: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
allwinner-h3.c hw/arm/allwinner: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
allwinner-r40.c hw/arm/allwinner: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
armsse.c hw: Simplify accesses to the CPUState::'start-powered-off' property 2024-01-05 16:20:15 +01:00
armv7m.c target/arm: Move ARM_CPU_IRQ/FIQ definitions to 'cpu-qom.h' header 2024-01-26 11:30:49 +00:00
aspeed_ast10x0.c aspeed: Make the ast1030-a1 SoC not user creatable 2024-03-25 09:57:56 +01:00
aspeed_ast27x0.c aspeed/soc: fix incorrect dram size for AST2700 2024-06-16 21:08:54 +02:00
aspeed_ast2400.c aspeed: fix hardcode boot address 0 2024-02-27 13:47:05 +01:00
aspeed_ast2600.c aspeed: Make the ast2600-a3 SoC not user creatable 2024-03-25 09:57:56 +01:00
aspeed_eeprom.c aspeed: Clean up includes 2024-01-30 21:20:20 +03:00
aspeed_eeprom.h aspeed: Clean up includes 2024-01-30 21:20:20 +03:00
aspeed_soc_common.c aspeed: introduce a new UART0 device name 2024-02-27 13:47:05 +01:00
aspeed.c aspeed: Add an AST2700 eval board 2024-06-16 21:08:54 +02:00
b-l475e-iot01a.c hw/arm : Connect DM163 to B-L475E-IOT01A 2024-04-30 16:05:08 +01:00
bananapi_m2u.c hw/arm: Check CPU type in machine_run_board_init() 2024-01-05 16:20:15 +01:00
bcm2835_peripherals.c hw/arm: Connect BSC to BCM2835 board as I2C0, I2C1 and I2C2 2024-03-05 13:22:55 +00:00
bcm2836.c hw/arm/bcm2836: Remove unusued struct 'BCM283XClass' 2024-06-30 19:51:44 +03:00
bcm2838_peripherals.c hw/arm/bcm2838_peripherals: Add clock_isp stub 2024-02-27 13:01:42 +00:00
bcm2838.c hw/arm: Introduce Raspberry PI 4 machine 2024-02-27 13:01:42 +00:00
boot.c hw: arm: Remove use of tabs in some source files 2024-05-28 14:20:48 +01:00
collie.c hw/arm: Build various units only once 2024-01-26 11:30:49 +00:00
cubieboard.c hw/arm: Check CPU type in machine_run_board_init() 2024-01-05 16:20:15 +01:00
digic_boards.c
digic.c
exynos4_boards.c target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 18:56:32 +00:00
exynos4210.c hw/display/exynos4210_fimd: Pass frame buffer memory region as link 2024-02-26 18:40:09 +01:00
fby35.c
fsl-imx6.c hw/arm/fsl: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
fsl-imx6ul.c hw/arm/fsl: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
fsl-imx7.c hw/arm/fsl: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
fsl-imx25.c hw/arm/fsl: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
fsl-imx31.c target/arm: Move ARM_CPU_IRQ/FIQ definitions to 'cpu-qom.h' header 2024-01-26 11:30:49 +00:00
gumstix.c hw/arm: Deprecate various old Arm machine types 2024-03-11 16:42:57 +00:00
highbank.c hw/ide/ahci: Move SysBus definitions to 'ahci-sysbus.h' 2024-02-15 16:58:46 +01:00
imx25_pdk.c
integratorcp.c hw/display/pl110: Pass frame buffer memory region as link property 2024-02-26 18:39:58 +01:00
Kconfig hw/arm/xilinx_zynq: Add cache controller 2024-05-30 13:21:06 +01:00
kzm.c hw/net/lan9118: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
mainstone.c hw/arm: Deprecate various old Arm machine types 2024-03-11 16:42:57 +00:00
mcimx6ul-evk.c
mcimx7d-sabre.c
meson.build aspeed/soc: Add AST2700 support 2024-06-16 21:08:54 +02:00
microbit.c
mps2-tz.c hw/arm: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
mps2.c hw/net/lan9118: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
mps3r.c hw/arm/mps3r: Add remaining devices 2024-02-15 14:32:39 +00:00
msf2-soc.c target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 18:56:32 +00:00
msf2-som.c hw/arm/msf2: Simplify setting MachineClass::valid_cpu_types[] 2024-02-02 13:51:58 +00:00
musca.c hw/arm/musca: Simplify setting MachineClass::valid_cpu_types[] 2024-02-02 13:51:58 +00:00
musicpal.c hw/arm: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
netduino2.c hw/arm: Add missing QOM parent for v7-M SoCs 2024-01-09 14:42:40 +00:00
netduinoplus2.c hw/arm: Add missing QOM parent for v7-M SoCs 2024-01-09 14:42:40 +00:00
npcm7xx_boards.c hw/arm/npcm7xx_boards: Simplify setting MachineClass::valid_cpu_types[] 2024-02-02 13:51:58 +00:00
npcm7xx.c hw/arm/npcm7xx: remove setting of mp-affinity 2024-05-28 14:20:48 +01:00
nrf51_soc.c hw: Simplify memory_region_init_ram() calls 2024-01-05 16:20:15 +01:00
nseries.c hw/arm: Deprecate various old Arm machine types 2024-03-11 16:42:57 +00:00
olimex-stm32-h405.c hw/arm: Add missing QOM parent for v7-M SoCs 2024-01-09 14:42:40 +00:00
omap1.c target/arm: Move ARM_CPU_IRQ/FIQ definitions to 'cpu-qom.h' header 2024-01-26 11:30:49 +00:00
omap2.c hw/arm: Build various units only once 2024-01-26 11:30:49 +00:00
omap_sx1.c hw/arm: Build various units only once 2024-01-26 11:30:49 +00:00
orangepi.c hw/arm: Check CPU type in machine_run_board_init() 2024-01-05 16:20:15 +01:00
palm.c hw/arm: Deprecate various old Arm machine types 2024-03-11 16:42:57 +00:00
pxa2xx_gpio.c
pxa2xx_pic.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
pxa2xx.c
raspi4b.c raspi4b: Reduce RAM to 1Gb on 32-bit hosts 2024-04-02 10:13:48 +01:00
raspi.c hw/arm/raspi4b: Temporarily disable unimplemented rpi4b devices 2024-02-27 13:01:42 +00:00
realview.c hw/display/pl110: Pass frame buffer memory region as link property 2024-02-26 18:39:58 +01:00
sabrelite.c
sbsa-ref.c hw/arm/sbsa-ref: Enable CPU cluster on ARM sbsa machine 2024-06-21 16:24:46 +01:00
smmu-common.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
smmu-internal.h
smmuv3-internal.h hw/arm/smmuv3: add support for stage 1 access fault 2024-02-15 13:38:11 +00:00
smmuv3.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
spitz.c hw/arm: Deprecate various old Arm machine types 2024-03-11 16:42:57 +00:00
stellaris.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
stm32f100_soc.c hw/arm/socs: configure priority bits for existing SOCs 2024-01-09 14:42:40 +00:00
stm32f205_soc.c hw/arm/socs: configure priority bits for existing SOCs 2024-01-09 14:42:40 +00:00
stm32f405_soc.c hw/arm/socs: configure priority bits for existing SOCs 2024-01-09 14:42:40 +00:00
stm32l4x5_soc.c hw/arm : Pass STM32L4x5 SYSCFG gpios to STM32L4x5 SoC 2024-04-30 16:05:08 +01:00
stm32vldiscovery.c hw/arm: Add missing QOM parent for v7-M SoCs 2024-01-09 14:42:40 +00:00
strongarm.c hw/arm/strongarm.c: convert DPRINTF to trace events and guest errors 2024-02-02 13:51:58 +00:00
strongarm.h
tosa.c hw/arm: Deprecate various old Arm machine types 2024-03-11 16:42:57 +00:00
trace-events hw/arm/bcm2838: Add GIC-400 to BCM2838 SoC 2024-02-27 13:01:42 +00:00
trace.h
versatilepb.c hw/display/pl110: Pass frame buffer memory region as link property 2024-02-26 18:39:58 +01:00
vexpress.c hw/display/pl110: Pass frame buffer memory region as link property 2024-02-26 18:39:58 +01:00
virt-acpi-build.c hw/arm/virt-acpi-build: Fix id_count in build_iort_id_mapping 2024-07-03 18:14:06 -04:00
virt.c hw/arm/virt: Avoid unexpected warning from Linux guest on host with Fujitsu CPUs 2024-06-21 16:20:45 +01:00
xen_arm.c hw/arm: xen: Enable use of grant mappings 2024-06-09 20:16:14 +02:00
xilinx_zynq.c hw/arm/xilinx_zynq: Fix IRQ/FIQ routing 2024-06-21 14:01:58 +01:00
xlnx-versal-virt.c aspeed/smc: Only wire flash devices at reset 2024-03-19 11:58:15 +01:00
xlnx-versal.c hw/arm: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
xlnx-zcu102.c
xlnx-zynqmp.c hw/arm: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
z2.c hw/arm: Deprecate various old Arm machine types 2024-03-11 16:42:57 +00:00