qemu/hw/pci-host
Guenter Roeck 2884514b98 pci-host: designware: Limit value range of iATU viewport register
The latest version of qemu (v8.2.0-869-g7a1dc45af5) crashes when booting
the mcimx7d-sabre emulation with Linux v5.11 and later.

qemu-system-arm: ../system/memory.c:2750: memory_region_set_alias_offset: Assertion `mr->alias' failed.

Problem is that the Designware PCIe emulation accepts the full value range
for the iATU Viewport Register. However, both hardware and emulation only
support four inbound and four outbound viewports.

The Linux kernel determines the number of supported viewports by writing
0xff into the viewport register and reading the value back. The expected
value when reading the register is the highest supported viewport index.
Match that code by masking the supported viewport value range when the
register is written. With this change, the Linux kernel reports

imx6q-pcie 33800000.pcie: iATU: unroll F, 4 ob, 4 ib, align 0K, limit 4G

as expected and supported.

Fixes: d64e5eabc4 ("pci: Add support for Designware IP block")
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
Cc: Nikita Ostrenkov <n.ostrenkov@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Message-id: 20240129060055.2616989-1-linux@roeck-us.net
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit 8a73152020)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-02-03 16:45:54 +03:00
..
bonito.c
designware.c pci-host: designware: Limit value range of iATU viewport register 2024-02-03 16:45:54 +03:00
dino.c
gpex-acpi.c hw/pci-host/gpex-acpi: Add support for dsdt construction for pxb-cxl 2022-05-13 07:57:26 -04:00
gpex.c
grackle.c hw/ppc/mac.h: Rename to include/hw/nvram/mac_nvram.h 2022-10-31 18:48:23 +00:00
i440fx.c i386/pc: create pci-host qdev prior to pc_memory_init() 2022-07-26 10:40:58 -04:00
Kconfig
meson.build ppc/pnv: add PnvPHB base/proxy device 2022-08-31 14:08:05 -03:00
mv643xx.h
mv64361.c
pam.c
pnv_phb3_msi.c
pnv_phb3_pbcq.c
pnv_phb3.c hw/pci-host: pnv_phb{3, 4}: Fix heap out-of-bound access failure 2022-09-20 12:31:53 -03:00
pnv_phb4_pec.c ppc/pnv: enable user created pnv-phb for powernv9 2022-08-31 14:08:06 -03:00
pnv_phb4.c hw/pci-host: pnv_phb{3, 4}: Fix heap out-of-bound access failure 2022-09-20 12:31:53 -03:00
pnv_phb.c hw/pci-host/pnv_phb: Avoid quitting QEMU if hotplug of pnv-phb-root-port fails 2022-11-10 18:22:10 -03:00
pnv_phb.h ppc/pnv: add pnv-phb-root-port device 2022-08-31 14:08:05 -03:00
ppce500.c
q35.c q35:Enable TSEG only when G_SMRAME and TSEG_EN both enabled 2022-06-15 11:11:37 +02:00
raven.c raven: disable reentrancy detection for iomem 2023-09-11 10:53:50 +03:00
remote.c
sabre.c
sh_pci.c
trace-events
trace.h
uninorth.c hw/ppc/mac.h: Rename to include/hw/nvram/mac_nvram.h 2022-10-31 18:48:23 +00:00
versatile.c
xen_igd_pt.c
xilinx-pcie.c