Skip to content

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

  1. Get the kernel and disk image from https://people.debian.org/~aurel32/qemu/mips/
  2. Boot the guest as described above.
  3. 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).

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information