The host PCI bridge disappeared on the big endian MIPS Malta machine
Host environment
- Operating system: Linux
- OS/kernel version: Fedora 41
- Architecture: x86_64
- QEMU flavor: qemu-system-mips
- QEMU version: Current head (commit 40efe733)
- QEMU command line:
qemu-system-mips -nographic -kernel vmlinux-3.2.0-4-4kc-malta -drive file=debian_wheezy_mips_standard.qcow2,snapshot=on -append "printk.time=0 console=ttyS0 root=/dev/sda1"
Emulated/Virtualized environment
- Operating system: Linux
- OS/kernel version: 3.2.0
- Architecture: mips (32-bit big endian)
Description of problem
The tests/avocado/linux_ssh_mips_malta.py test currently fails for the big endian machines. It tries to check for the PCI host bridge with lspci -d 11ab:4620
, but that does not show the expected output anymore -- it looks like the host bridge cannot be correctly discovered by the guest Linux kernel anymore.
Steps to reproduce
- Get the kernel and disk image from https://people.debian.org/~aurel32/qemu/mips/
- Boot the guest as described above.
- lspci -d 11ab:4620
Additional information
This used to work fine before commit 145e2198 , so this rework likely introduced the bug. Looking at the code that got removed there, I could see an additional check phb->config_reg & 0x00fff800
that is not present in the new code anymore, so the space for the host bridge itself likely should not get swapped. Reverting 3d85c7c1 and 145e2198 seems to fix the problem (at least on little endian hosts).