Remove the pci node from the qemu device tree when runqemu is used with
xen-qemuboot.

Linux is ending up in an infinite loop when trying to access PCI
configuration space when running on top of Xen on arm32.
As we do not need or support any of the devices on PCI on arm32 at the
moment, just remove the node from the device tree generated by qemu.

The problem does not appear at the moment without Xen and it is unclear
why it is with Xen.
This will be investigated but in the meantime provide a working
configuration for users.

Signed-off-by: Bertrand Marquis <[email protected]>
---
 classes/qemuboot-xen-dtb.bbclass | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/classes/qemuboot-xen-dtb.bbclass b/classes/qemuboot-xen-dtb.bbclass
index d43d23a..1f17a86 100644
--- a/classes/qemuboot-xen-dtb.bbclass
+++ b/classes/qemuboot-xen-dtb.bbclass
@@ -63,6 +63,21 @@ write_lops_xen_section() {
 EOF
 }
 
+write_lop_rm_pci() {
+    cat <<EOF >"$1"
+/dts-v1/;
+/ {
+    compatible = "system-device-tree-v1";
+    lops {
+        lop_1 {
+            compatible = "system-device-tree-v1,lop,modify";
+            modify = "/pcie@10000000::";
+        };
+     };
+};
+EOF
+}
+
 write_lop_add_to_xen_cmdline() {
     EXTRA_XEN_BOOTARGS="$2"
     cat <<EOF >"$1"
@@ -135,6 +150,13 @@ generate_xen_qemuboot_dtb() {
     write_lop_add_to_xen_cmdline "${B}/lop-xen-cmdline.dts" \
         "${QB_XEN_CMDLINE_EXTRA}"
 
+    # On Qemu Arm32, Dom0 accessing PCI config space ends up in an
+    # infinite loop. Remove pci node from the device tree
+    if [ "${MACHINE}" = "qemuarm" ]; then
+        write_lop_rm_pci "${B}/lop-rm-pci.dts"
+        LOP_MODULE_ARGS="${LOP_MODULE_ARGS} -i ${B}/lop-rm-pci.dts"
+    fi
+
     if [ -z "${QB_XEN_DOMAIN_MODULES}" ]; then
         bbwarn "No domain modules: please set QB_XEN_DOMAIN_MODULES"
     fi
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#7273): 
https://lists.yoctoproject.org/g/meta-virtualization/message/7273
Mute This Topic: https://lists.yoctoproject.org/mt/91015801/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to