mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
GT64120's PCI endianness swapping works on little-endian hosts, but doesn't on big-endian ones. Instead of complicating how CFGADDR/CFGDATA registers deal with endianness, use the existing MemoryRegionOps from hw/pci/pci_host.c. Doing so also reduce the access to internal PCI_HOST_BRIDGE fields. Map the PCI_HOST_BRIDGE MemoryRegionOps into the corresponding CFGADDR/CFGDATA regions in the ISD MMIO and remove the unused code in the current ISD read/write handlers. Update the mapping when PCI0_CMD register is accessed (in case the endianness is changed). This allows using the GT64120 on a big-endian host (and boot the MIPS Malta machine in little-endian). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230104133935.4639-6-philmd@linaro.org> |
||
|---|---|---|
| .. | ||
| bootloader.c | ||
| boston.c | ||
| cps.c | ||
| fuloong2e.c | ||
| fw_cfg.c | ||
| fw_cfg.h | ||
| gt64xxx_pci.c | ||
| jazz.c | ||
| Kconfig | ||
| loongson3_bootp.c | ||
| loongson3_bootp.h | ||
| loongson3_virt.c | ||
| malta.c | ||
| meson.build | ||
| mips_int.c | ||
| mipssim.c | ||
| trace-events | ||
| trace.h | ||