Hello Oleksandr,

> On 2 Nov 2020, at 10:12 am, Oleksandr Andrushchenko 
> <[email protected]> wrote:
> 
> Hi,
> 
> On 11/2/20 11:55 AM, Bertrand Marquis wrote:
>> Hi,
>> 
>>> On 2 Nov 2020, at 05:55, Oleksandr Andrushchenko <[email protected]> wrote:
>>> 
>>> Hi, Julien!
>>> 
>>> On 10/30/20 7:18 PM, Julien Grall wrote:
>>>> Hi Oleksandr,
>>>> 
>>>> On 30/10/2020 10:44, Oleksandr Andrushchenko wrote:
>>>>> On 10/20/20 6:25 PM, Rahul Singh wrote:
>>>>>> Add support for ARM architected SMMUv3 implementations. It is based on
>>>>>> the Linux SMMUv3 driver.
>>>>>> 
>>>>>> Major differences between the Linux driver are as follows:
>>>>>> 1. Only Stage-2 translation is supported as compared to the Linux driver
>>>>>>      that supports both Stage-1 and Stage-2 translations.
>>>>> First of all thank you for the efforts!
>>>>> 
>>>>> I tried the patch with QEMU and would like to know if my understanding 
>>>>> correct
>>>>> 
>>>>> that this combination will not work as of now:
>>>>> 
>>>>> (XEN) SMMUv3: /smmuv3@9050000: SMMUv3: DT value = eventq
>>>>> (XEN) Data Abort Trap. Syndrome=0x1940010
>>>>> (XEN) Walking Hypervisor VA 0x40031000 on CPU0 via TTBR 0x00000000b8469000
>>>>> (XEN) 0TH[0x0] = 0x00000000b8468f7f
>>>>> 
>>>>> [snip]
>>>>> 
>>>>> If this is expected then is there any plan to make QEMU work as well?
>>>>> 
>>>>> I see [1] says that "Only stage 1 and AArch64 PTW are supported." on QEMU 
>>>>> side.
>>>> Just for clarication, you are trying to boot Xen on QEMU, right?
>>> Exactly
>>>> You might be able to use the stage-1 page-tables to isolate each device in 
>>>> Xen. However, I don't think you will be able to share the P2M because the 
>>>> page-tables layout between stage-1 and stage-2 is different.
>>> So, it is even more work then
>> Overall it would make more sense to spend some time adding proper support in 
>> Qemu then trying to modify the driver to support Qemu right now.
>> 
>>>>> 
>>>>> We are interested in QEMU/SMMUv3 as a flexible platform for PCI 
>>>>> passthrough
>>>>> 
>>>>> implementation, so it could allow testing different setups and 
>>>>> configurations with QEMU.
>>>> I would recommend to get the SMMU supporting supporting stage-2 
>>>> page-tables.
>>> You mean in QEMU?
>> See before.
>> 
>>>> Regardless that, I think Xen should be able to say the SMMU is not 
>>>> supported rather than crashing.
>>> Yes, that would be nice
>> Fully agree and we will look into that.
>> 
>> Anything you could share so that we could quickly reproduce your setup would 
>> be more then great.
> 
> Nothing special,
> 
> qemu/aarch64-softmmu/qemu-system-aarch64 -machine type=virt -machine 
> virt,gic-version=2 \
> 
> -machine virtualization=true -cpu cortex-a57 -smp 4 -m 2048 -nic 
> user,hostfwd=tcp:127.0.0.1:2222-:22 \
> 
> -nographic -serial mon:stdio [..snip..]
> 
> I also set iommu to smmuv3 in my tests, QEMU emulator version 4.2.1

I just checked and confirmed that QEMU is booting with XEN SMMUv3 patch and XEN 
is able to say SMMU translation is not supported. As XEN supports Stage-2 
translation and QEMU supports Stage-1 only.


(XEN) SMMUv3: /smmuv3@9050000: SMMUv3: DT value = eventq
(XEN) SMMUv3: /smmuv3@9050000: IDR0.COHACC overridden by FW configuration 
(false)
(XEN) SMMUv3: /smmuv3@9050000: no translation support!
(XEN) I/O virtualisation disabled

Only difference I observed is that you have to add option "-machine 
virt,iommu=smmuv3 “ when launching the QEMU.

Please let me know if it also works for you.
 
> 
>> 
>> Regards
>> Bertrand
>> 
>>>> Cheers,
>>>> 
>>> Thank you,
>>> 
>>> Oleksandr

Reply via email to