On Tue, May 10, 2022 at 8:35 AM Bertrand Marquis
<[email protected]> wrote:
>
> 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]>

Thanks for this - my review is from inspecting the patch applied; I
have yet to test it but there's no need to hold this back with
positive reports now from Bruce and Bertrand.

Reviewed-by: Christopher Clark <[email protected]>

thanks,

Christopher

> ---
>  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 (#7285): 
https://lists.yoctoproject.org/g/meta-virtualization/message/7285
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