U-Boot qemu_arm64_defconfig crashes under KVM

Hi,
This is a heads up that the U-Boot image generated by qemu_arm64_defconfig crashes during xhci-pci probe when running under KVM on a native ARM host:
Bus xhci_pci: Register 8001040 NbrPorts 8 Starting the controller "Synchronous Abort" handler, esr 0x96000010, far 0x10090040 elr: 0000000000055114 lr : 00000000000550f8 (reloc) elr: 000000004f724114 lr : 000000004f7240f8 x0 : 0000000010090040 x1 : 0000000000000001 x2 : 0000000000000000 x3 : 0000000000003e80 x4 : 0000000000000038 x5 : 000000004e58e7a2 x6 : 0000000000000000 x7 : 0000000000000000 x8 : 000000004e58ec30 x9 : 00000000ffffffd8 x10: 000000000000000d x11: 0000000000000006 x12: 000000004e58ea88 x13: 000000004e58ed90 x14: 0000000000000000 x15: 000000004e58e7a2 x16: 000000004f716d84 x17: 0000000000000000 x18: 000000004e68ed90 x19: 000000004e695b00 x20: 0000000000000000 x21: 0000000010090040 x22: 0000000010090000 x23: 000000004f79553c x24: 0000000000000000 x25: 0000000000000000
This was noticed by a patch series[1] for OpenEmbedded-core that added simple "Do barebox and U-Boot reach their shell?" tests.
After investigation and help from the Qemu/KVM maintainers[2], it turns out that this is a known quirk: software that wants to run under KVM needs to take care what instructions it uses for MMIO accesses.
Linux doesn't suffer from this issue, because it implements readl/writel in assembly and makes sure they use KVM-friendly instructions.
I'll suggest on the OE-core mailing list that the bootloader tests should be conducted with KVM disabled.
Nevertheless, running barebox under KVM alerted me to some issues that exist outside of KVM too, so I prepared a series that enables barebox to run under KVM[3].
I thought to mention that here in case someone is interested in getting U-Boot to work under KVM as well. Also feel free to backport any other barebox goodies along the way. :-)
[1]: https://lore.kernel.org/all/b77f2c6737c330ef9ecce325d50a4aaa25b3e536.camel@l... [2]: https://lore.kernel.org/all/89f184d6-5b61-4c77-9f3b-c0a8f6a75d60@pengutronix... [3]: https://lore.kernel.org/barebox/20241009060511.4121157-5-a.fatoum@pengutroni...
Cheers, Ahmad
participants (1)
-
Ahmad Fatoum