Hi Christopher,

> On 18 May 2022, at 01:14, Christopher Clark <[email protected]> 
> wrote:
> 
> 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 and I agree.

This is an hack but I think it is better at the moment to have something 
running and I will create a task on my side to investigate this in the future.

Cheers
Bertrand


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