Hi Alvise, Thanks for your help. I'm using pl330-vfio-dev branch but it's not up-to-date. Then I update the qemu code. Now I can start up the guest. I run the following cmd in guest : echo 1 > /sys/kernel/debug/vosys_dmatest/start dmaengine: dma_sync_wait: timeout! vosys dmatest: tx error vosys dmatest: src and destination do not match dmesg | grep vosys vosys dmatest: vosys dmatest module init vosys dmatest: tx error vosys dmatest: tx completed And at the terminal running isim_system there is an error : ERROR: DMAC330 channel thread abort. ERROR: DMAC330: Instruction fetch ERROR, thread set to FAULTING state Is there something wrong? Thanks, Shannon On 2014/6/24 17:14, Alvise Rigo wrote: > This is a QEMU error. Are you using the pl330-vfio-dev branch? Is it > up-to-date? > > alvise > > Il 24/06/2014 11:00, Shannon Zhao ha scritto: >> Hi Bharat, >> >> >> ls -l /sys/bus/platform/devices/2c0a0000.dma/iommu_group/devices >> total 0 >> lrwxrwxrwx 1 root root 0 Jan 1 02:58 2c0a0000.dma -> ../../../../devices/2c0a0000.dma >> >> Then I run "echo 2c0a0000.dma > /sys/bus/platform/drivers/vfio-platform/bind". There is /dev/vfio/0. >> >> But there is also an error reported. >> >> -nographic can not be used with -daemonize >> char device redirected to /dev/pts/3 (label pty0-base) >> PL330_VFIO: === VFIO device file descriptor 13 === >> Device has 1 region(s): >> PL330_VFIO: - Region 0: size=0x1000 offset=0x0 flags=0x7 >> PL330_VFIO: - IRQ 0: range of 1, flags=0x7 >> PL330_VFIO: - IRQ 1: range of 1, flags=0x7 >> PL330_VFIO: - IRQ 2: range of 1, flags=0x7 >> PL330_VFIO: - IRQ 3: range of 1, flags=0x7 >> PL330_VFIO: - IRQ 4: range of 1, flags=0x7 >> qemu-system-arm: -device pl330,vfio_group=/dev/vfio/0,vfio_device=2c0a0000.dma,vfio_container=/dev/vfio/vfio: Property '.vfio_group' not found >> >> Thanks, >> Shannon >> On 2014/6/24 16:08, Bharat.Bhushan@xxxxxxxxxxxxx wrote: >>> >>> >>>> -----Original Message----- >>>> From: Shannon Zhao [mailto:zhaoshenglong@xxxxxxxxxx] >>>> Sent: Tuesday, June 24, 2014 1:16 PM >>>> To: Bhushan Bharat-R65777; Alvise Rigo; a.motakis@xxxxxxxxxxxxxxxxxxxxxx; >>>> iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx; kvmarm@xxxxxxxxxxxxxxxxxxxxx; >>>> zhangchengxing@xxxxxxxxxx >>>> Subject: Re: Vfio-on-arm: the device tree does not contain the DMA device >>>> >>>> Hi Bharat, >>>> >>>> Thanks for your help. >>>> >>>> I executed the following cmd: >>>> echo vfio-platform > >>>> /sys/bus/platform/devices/2c0a0000.dma/driver_override >>> >>> You have to bind the device with vfio-platform driver after the above command. >>> >>>> But there is no /dev/vfio/0 and error reported starting guest >>>> >>>> -nographic can not be used with -daemonize >>>> char device redirected to /dev/pts/3 (label pty0-base) >>>> PL330_VFIO: Group is not viable (not all devices bound for vfio) >>> >>> A bit surprised; it should be failing when opening /dev/vfio/0 but it is failing in VFIO_GROUP_GET_STATUS ioctl. >>> >>> Also looks like there are more device attached to the said iommu-group. >>> Can check by running below command: >>> #ls -l /sys/bus/pci/devices/2c0a0000.dma/iommu_group/devices >>> >>> Thanks >>> -Bharat >>> >>>> qemu-system-arm: Error while probing real device. >>>> >>>> qemu-system-arm: Initialization of device pl330 failed Is there something >>>> wrong? >>>> >>>> Thank you very much. >>>> Shannon >>>> >>>> On 2014/6/24 15:05, Bharat.Bhushan@xxxxxxxxxxxxx wrote: >>>>> >>>>> >>>>>> -----Original Message----- >>>>>> From: Shannon Zhao [mailto:zhaoshenglong@xxxxxxxxxx] >>>>>> Sent: Tuesday, June 24, 2014 12:30 PM >>>>>> To: Alvise Rigo; Bhushan Bharat-R65777; >>>>>> a.motakis@xxxxxxxxxxxxxxxxxxxxxx; iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx; >>>>>> kvmarm@xxxxxxxxxxxxxxxxxxxxx; zhangchengxing@xxxxxxxxxx >>>>>> Subject: Re: Vfio-on-arm: the device tree does not contain the DMA >>>>>> device >>>>>> >>>>>> Hi Alvise, >>>>>> >>>>>> Thanks for your help. >>>>>> Now I can see /dev/vfio/vfio and /dev/vfio/0 after executing "echo >>>>>> 2c0a0000.dma >>>>>>> /sys/bus/platform/drivers/vfio-platform/vfio_bind". >>>>>> But when using qemu to start guest, there is an error : >>>>>> >>>>>> -nographic can not be used with -daemonize char device redirected to >>>>>> /dev/pts/3 (label pty0-base) >>>>>> PL330_VFIO: === VFIO device file descriptor 13 === Device has 1 >>>>>> region(s): >>>>>> PL330_VFIO: - Region 0: size=0x1000 offset=0x2c0a0000 flags=0x7 >>>>>> PL330_VFIO: - IRQ 0: range of 1, flags=0x7 ------------[ cut here >>>>>> ]------------ kernel BUG at mm/slub.c:3386! >>>>>> Internal error: Oops - BUG: 0 [#1] SMP ARM Modules linked in: >>>>>> CPU: 2 PID: 1746 Comm: qemu-system-arm Tainted: G W 3.14.0-rc1+ #19 >>>>>> task: ee665580 ti: ed0b8000 task.ti: ed0b8000 PC is at >>>>>> kfree+0x128/0x134 LR is at vfio_set_trigger.isra.5+0x40/0x104 >>>>>> pc : [<800d9e3c>] lr : [<80319094>] psr: 400f0013 >>>>>> sp : ed0b9e64 ip : 000800f3 fp : 000014ac >>>>>> r10: 00000000 r9 : ed0b8000 r8 : edeb3b80 >>>>>> r7 : 0000000e r6 : 80620584 r5 : 00000000 r4 : eea0b000 >>>>>> r3 : 00000400 r2 : 800f38b0 r1 : eea0ce60 r0 : 00000400 >>>>>> Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user >>>>>> Control: 30c53c7d Table: eddac080 DAC: 00000000 Process >>>>>> qemu-system-arm (pid: 1746, stack limit = 0xed0b8240) >>>>>> Stack: (0xed0b9e64 to 0xed0ba000) >>>>>> 9e60: ee603700 00000000 ee603700 0000000e edeb3b80 00000000 80319094 >>>>>> 9e80: ee603700 00003b6e 00000000 edeb3b80 ee603700 00003b6e 0000000d >>>>>> 80319208 >>>>>> 9ea0: 0000000e edeb3b80 80492a18 edeb3b80 ee57f780 80319690 00000024 >>>>>> 008b2074 >>>>>> 9ec0: 008b2074 8031886c 00000001 008b2074 00000018 00000024 00000000 >>>>>> 00000000 >>>>>> 9ee0: 00000001 00000004 00000001 00000001 ee088e70 008b2060 ee57f780 >>>>>> 803155d0 >>>>>> 9f00: 803155b0 800ef430 80477a58 00080802 ed0b8000 800e1358 00000020 >>>>>> ed0b9f50 >>>>>> 9f20: ed0b9f60 00000003 8061e808 00080802 ed0b9f60 800e14f0 00000000 >>>>>> 806522f8 >>>>>> 9f40: 80477a58 8061e808 ede4c1c0 8011af18 00000000 00000009 8053bbc0 >>>>>> 00000000 >>>>>> 9f60: ee683610 00000001 ee57f780 008b2060 00003b6e 0000000d ed0b8000 >>>>>> 00000000 >>>>>> 9f80: 000014ac 800ef9ac 0000000e 00000001 008b2060 00429eb0 0000000d >>>>>> 00000036 >>>>>> 9fa0: 8001c464 8001c2e0 008b2060 00429eb0 0000000d 00003b6e 008b2060 >>>>>> 00000001 >>>>>> 9fc0: 008b2060 00429eb0 0000000d 00000036 00000000 7ea99040 0089a220 >>>>>> 000014ac >>>>>> 9fe0: 003fa474 7ea98fc4 000bc5c8 76ceb2ec 200f0010 0000000d 00000000 >>>>>> 8062c770 [<800d9e3c>] (kfree) from [<80319094>] >>>>>> (vfio_set_trigger.isra.5+0x40/0x104) >>>>>> [<80319094>] (vfio_set_trigger.isra.5) from [<80319208>] >>>>>> (vfio_platform_set_irq_trigger+0xb0/0x144) >>>>>> [<80319208>] (vfio_platform_set_irq_trigger) from [<80319690>] >>>>>> (vfio_platform_set_irqs_ioctl+0x44/0x58) >>>>>> [<80319690>] (vfio_platform_set_irqs_ioctl) from [<8031886c>] >>>>>> (vfio_platform_ioctl+0x2e0/0x314) >>>>>> [<8031886c>] (vfio_platform_ioctl) from [<803155d0>] >>>>>> (vfio_device_fops_unl_ioctl+0x20/0x2c) >>>>>> [<803155d0>] (vfio_device_fops_unl_ioctl) from [<800ef430>] >>>>>> (do_vfs_ioctl+0x78/0x5b8) >>>>>> [<800ef430>] (do_vfs_ioctl) from [<800ef9ac>] (SyS_ioctl+0x3c/0x5c) >>>>>> [<800ef9ac>] (SyS_ioctl) from [<8001c2e0>] >>>>>> (ret_fast_syscall+0x0/0x30) >>>>>> Code: 15913038 e1a01003 e8bd45f0 eaff28e5 (e7f001f2) >>>>>> >>>>>> I'm using branch vfio-platform-v4 for kernel and pl330-vfio-dev for qemu. >>>>>> Following is qemu cmdline: >>>>>> ./qemu-system-arm -enable-kvm -M vexpress-a15 -cpu cortex-a15 \ >>>>>> -chardev pty,id=pty0,mux=on -monitor chardev:pty0 \ >>>>>> -serial chardev:pty0 -daemonize \ >>>>>> -device >>>>>> pl330,vfio_group="/dev/vfio/0",vfio_device="2c0a0000.dma",vfio_contai >>>>>> ner="/dev/v >>>>>> fio/vfio" \ >>>>>> -append "earlyprintk ip=dhcp console=ttyAMA0 rootwait" \ >>>>>> -kernel zImage -dtb guest-a15.dtb -initrd filesystem.cpio.gz >>>>>> - nographic >>>>>> >>>>>> If I change to branch vfio-platform-v6 for kernel, there is "/dev/vfio/vfio". >>>>>> But no "/sys/bus/platform/drivers/vfio-platform/vfio_bind". >>>>> >>>>> Can you Check if you have driver_override at >>>> "/sys/bus/platform/devices/DEVICE-XXX/ ? >>>>> If yes then you should use driver_override mechanism to bind that device to >>>> vfio-platform driver. >>>>> >>>>> Thanks >>>>> -Bharat >>>>> >>>>>> And if I use above qemu cmdline to start guest, there is also an error : >>>>>> PL330_VFIO: Group is not viable (not all devices bound for vfio) >>>>>> qemu-system-arm: Error while probing real device. >>>>>> >>>>>> qemu-system-arm: Initialization of device pl330 failed >>>>>> >>>>>> The usage about v4 and v6 has changed ? >>>>>> And would you tell me when you will update the guideline about vfio-on-arm? >>>>>> >>>>>> Thanks, >>>>>> Shannon >>>>>> On 2014/6/20 16:37, Alvise Rigo wrote: >>>>>>> Linaro has a great set of pre-built images here http://releases.linaro.org/. >>>>>>> >>>>>>> For example these should work fine: >>>>>>> http://releases.linaro.org/13.12/ubuntu/saucy-images >>>>>>> >>>>>>> alvise >>>>>>> >>>>>>> Il 20/06/2014 10:23, Shannon Zhao ha scritto: >>>>>>>> Hi Alvise, >>>>>>>> >>>>>>>> I'm so sorry that I can't use qemu-debootstrap because my >>>>>>>> environment can't >>>>>> access some links using proxy. >>>>>>>> Are there other ways to get a proper fs? >>>>>>>> >>>>>>>> Thanks >>>>>>>> Shannon >>>>>>>> >>>>>>>> On 2014/6/20 15:15, Alvise Rigo wrote: >>>>>>>>> Hi Shannon, >>>>>>>>> >>>>>>>>> If you follow the steps in the section "Creating the File System" >>>>>>>>> of the guide you should be able to obtain a working fs. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> alvise >>>>>>>>> >>>>>>>>> Il 20/06/2014 04:57, Shannon Zhao ha scritto: >>>>>>>>>> Hi Bharat, >>>>>>>>>> >>>>>>>>>> Thanks for your advice . >>>>>>>>>> >>>>>>>>>> I'm using the rootfs getting from the url >>>>>> "http://www.virtualopensystems.com/downloads/guides/kvm_on_arm/fs-ali >>>>>> p- >>>>>> armel.cramfs". >>>>>>>>>> >>>>>>>>>> Can you give me another link to get a newer rootfs? >>>>>>>>>> >>>>>>>>>> Thank you >>>>>>>>>> Shannon >>>>>>>>>> >>>>>>>>>> On 2014/6/19 20:20, Bharat.Bhushan@xxxxxxxxxxxxx wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>> From: Shannon Zhao [mailto:zhaoshenglong@xxxxxxxxxx] >>>>>>>>>>>> Sent: Thursday, June 19, 2014 5:47 PM >>>>>>>>>>>> To: Bhushan Bharat-R65777; Alvise Rigo; >>>>>>>>>>>> a.motakis@xxxxxxxxxxxxxxxxxxxxxx; >>>>>>>>>>>> iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx; kvmarm@xxxxxxxxxxxxxxxxxxxxx >>>>>>>>>>>> Subject: Re: Vfio-on-arm: the device tree does not contain the >>>>>>>>>>>> DMA device >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 2014/6/19 20:12, Bharat.Bhushan@xxxxxxxxxxxxx wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>>>> From: Shannon Zhao [mailto:zhaoshenglong@xxxxxxxxxx] >>>>>>>>>>>>>> Sent: Thursday, June 19, 2014 5:38 PM >>>>>>>>>>>>>> To: Alvise Rigo; Bhushan Bharat-R65777; >>>>>>>>>>>>>> a.motakis@xxxxxxxxxxxxxxxxxxxxxx; >>>>>>>>>>>>>> iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx; >>>>>>>>>>>>>> kvmarm@xxxxxxxxxxxxxxxxxxxxx >>>>>>>>>>>>>> Subject: Re: Vfio-on-arm: the device tree does not contain >>>>>>>>>>>>>> the DMA device >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Alvise, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I run following cmds : >>>>>>>>>>>>>> echo 2c0a0000.dma > >>>>>>>>>>>>>> /sys/bus/platform/drivers/vfio-platform/vfio_bind >>>>>>>>>>>>> >>>>>>>>>>>>> run "ls /dev/vfio/" before and after the above command >>>>>>>>>>>> Hi Bharat, >>>>>>>>>>>> >>>>>>>>>>>> Nothing appeared either before or after the cmd "echo >>>>>>>>>>>> 2c0a0000.dma > /sys/bus/platform/drivers/vfio-platform/vfio_bind". >>>>>>>>>>>> There is only /dev/vfio. >>>>>>>>>>> >>>>>>>>>>> I am not sure, but may be you are using pretty old rootfs with >>>>>>>>>>> broken udev >>>>>> rules. Try to fetch a newer rootfs form somewhere. >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> -Bharat >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks >>>>>>>>>>>>> -Bharat >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> ./qemu-system-arm -enable-kvm -M vexpress-a15 -cpu cortex-a15 \ >>>>>>>>>>>>>> -device >>>>>>>>>>>>>> >>>>>>>>>>>> >>>>>> pl330,vfio_group="/dev/vfio/0",vfio_device="2c0a0000.dma",vfio_contai >>>>>> ner="/dev/v >>>>>>>>>>>>>> fio/vfio" \ >>>>>>>>>>>>>> -append "earlyprintk ip=dhcp console=ttyAMA0 rootwait" \ >>>>>>>>>>>>>> -kernel zImage -dtb guest-a15.dtb -initrd >>>>>>>>>>>>>> filesystem.cpio.gz >>>>>> - >>>>>>>>>>>>>> nographic But the error still exists. >>>>>>>>>>>>>> qemu-system-arm: -device >>>>>>>>>>>>>> >>>>>>>>>>>> >>>>>> pl330,vfio_group=/dev/vfio/0,vfio_device=2c0a0000.dma,vfio_container= >>>>>> /dev/vfio/v >>>>>>>>>>>>>> fio: Parameter 'driver' expects pluggable device type >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Shannon >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 2014/6/19 19:26, Alvise Rigo wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Il 19/06/2014 13:11, Shannon Zhao ha scritto: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 2014/6/19 18:47, Alvise Rigo wrote: >>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Il 19/06/2014 11:38, Shannon Zhao ha scritto: >>>>>>>>>>>>>>>>>> Hi Bharat, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On 2014/6/19 17:19, Bharat.Bhushan@xxxxxxxxxxxxx wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>>>>>>>>>> From: kvmarm-bounces@xxxxxxxxxxxxxxxxxxxxx >>>>>>>>>>>>>>>>>>>> [mailto:kvmarm- bounces@xxxxxxxxxxxxxxxxxxxxx] On >>>>>>>>>>>>>>>>>>>> Behalf Of Shannon Zhao >>>>>>>>>>>>>>>>>>>> Sent: Thursday, June 19, 2014 2:45 PM >>>>>>>>>>>>>>>>>>>> To: Alvise Rigo; a.motakis@xxxxxxxxxxxxxxxxxxxxxx; >>>>>>>>>>>>>>>>>>>> iommu@lists.linux- foundation.org; >>>>>>>>>>>>>>>>>>>> kvmarm@xxxxxxxxxxxxxxxxxxxxx >>>>>>>>>>>>>>>>>>>> Subject: Re: Vfio-on-arm: the device tree does not >>>>>>>>>>>>>>>>>>>> contain the DMA device >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi Alvise, >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Thanks for your reply. >>>>>>>>>>>>>>>>>>>> I have apply the patch and could see the DMA devices. >>>>>>>>>>>>>>>>>>>> But there is no vosys_dmatest int the directory >>>>>>>>>>>>>>>>>>>> "/sys/kernel/debug/" after mounting debugfs. >>>>>>>>>>>>>>>>>>>> I found that the branch vfio-platform-v4 doesn't >>>>>>>>>>>>>>>>>>>> contain the module vosys_dmatest. >>>>>>>>>>>>>>>>>>>> Then I port it from the branch pl330_dmatest and run >>>>>> vosys_dmatest >>>>>>>>>>>>>> successfully. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> echo 1 > /sys/kernel/debug/vosys_dmatest/start >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> [ 6145.343419] dmaengine: __dma_request_channel: >>>>>>>>>>>>>>>>>>>> success >>>>>>>>>>>>>> (dma0chan0) >>>>>>>>>>>>>>>>>>>> [ 6145.344000] vosys dmatest: callback: transfer completed >>>>>>>>>>>>>>>>>>>> [ 6145.344147] vosys dmatest: tx completed >>>>>>>>>>>>>>>>>>>> [ 6145.344589] vosys dmatest: source and destination match. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Download the qemu and use following command to start a guest: >>>>>>>>>>>>>>>>>>>> ./qemu-system-arm -enable-kvm -M vexpress-a15 -cpu >>>>>>>>>>>>>>>>>>>> cortex- >>>>>> a15 \ >>>>>>>>>>>>>>>>>>>> -device >>>>>>>>>>>>>> pl330,vfio_group="/dev/vfio/0",vfio_device="2c0a0000.dma",\ >>>>>>>>>>>>>>>>>>>> vfio_container="/dev/vfio/vfio" \ >>>>>>>>>>>>>>>>>>>> -append "earlyprintk ip=dhcp console=ttyAMA0 rootwait" >>>>>> \ >>>>>>>>>>>>>>>>>>>> -kernel zImage -dtb guest.dtb -initrd >>>>>> filesystem.cpio.gz >>>>>>>>>>>>>>>>>>>> - nographic An error reported: >>>>>>>>>>>>>>>>>>>> qemu-system-arm: -device >>>>>>>>>>>>>>>>>>>> pl330,vfio_group=/dev/vfio/0,vfio_device=2c0a0000.dma,: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Why do we need to give "vfio_group=/dev/vfio/0" ? >>>>>>>>>>>>>>>>>> I refer to the url >>>>>>>>>>>>>> "http://www.virtualopensystems.com/en/solutions/guides/vfio-on-arm/". >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> could not open disk image vfio_container=/dev/vfio: >>>>>>>>>>>>>>>>>>>> Could not open 'vfio_container=/dev/vfio': No such >>>>>>>>>>>>>>>>>>>> file or directory >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Are you unbinding "2c0a0000.dma" from its driver and >>>>>>>>>>>>>>>>>>> binding with >>>>>> "vfio- >>>>>>>>>>>>>> playform" driver ? >>>>>>>>>>>>>>>>>> How to unbind "2c0a0000.dma" from its driver? >>>>>>>>>>>>>>>>>> I have tried following cmd to bind "2c0a0000.dma" with >>>>>>>>>>>>>>>>>> "vfio- >>>>>> playform" >>>>>>>>>>>>>> driver. >>>>>>>>>>>>>>>>>> echo 2c0a0000.dma > >>>>>>>>>>>>>>>>>> /sys/bus/platform/drivers/vfio-platform/vfio_bind >>>>>>>>>>>>>>>>>> But there is no /dev/vfio/0 or /dev/vfio/vfio . >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Can you please verify that while configuring the host you enabled: >>>>>>>>>>>>>>>>> - Device Drivers -> IOMMU Hardware Support -> ARM Ltd. >>>>>>>>>>>>>>>>> System MMU >>>>>>>>>>>>>>>>> (SMMU) Support and >>>>>>>>>>>>>>>>> - Device Drivers -> VFIO Non-Privileged userspace driver >>>>>>>>>>>>>>>>> framework >>>>>>>>>>>>>>>>> -> VFIO support for platform devices >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi Alvise, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I have checked the two configuration are enabled. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Then try the following cmd, but another error reported: >>>>>>>>>>>>>>>> qemu-system-arm: -device >>>>>>>>>>>>>>>> pl330,vfio_group=/dev/vfio/0,vfio_device=2c0a0000.dma,vfio_ >>>>>>>>>>>>>>>> container= >>>>>>>>>>>>>>>> /dev/vfio/vfio: Parameter 'driver' expects pluggable device >>>>>>>>>>>>>>>> type >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Do I need to unbind the "2c0a0000.dma" from its driver and >>>>>>>>>>>>>>>> binding >>>>>> with >>>>>>>>>>>>>> "vfio-platform" driver as Bharat mentioned ? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Yes, the 2c0a0000.dma should not be bound to any driver at >>>>>>>>>>>>>>> boot, so you just need to: >>>>>>>>>>>>>>> echo 2c0a0000.dma > >>>>>>>>>>>>>>> /sys/bus/platform/drivers/vfio-platform/vfio_bind >>>>>>>>>>>>>>> to bind the device to the VFIO driver. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>> alvise >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Then try to update the pl330-vfio-dev branch and run QEMU >>>>>>>>>>>>>>>>> with the >>>>>>>>>>>> following >>>>>>>>>>>>>> command: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> ./qemu-system-arm -enable-kvm -M vexpress-a15 -cpu cortex-a15 \ >>>>>>>>>>>>>>>>> -device >>>>>>>>>>>>>> >>>>>>>>>>>> >>>>>> pl330,vfio_group="/dev/vfio/0",vfio_device="2c0a0000.dma",vfio_contai >>>>>> ner="/dev/v >>>>>>>>>>>>>> fio/vfio" \ >>>>>>>>>>>>>>>>> -append "earlyprintk ip=dhcp console=ttyAMA0 rootwait" \ >>>>>>>>>>>>>>>>> -kernel zImage -dtb guest.dtb -initrd >>>>>>>>>>>>>>>>> filesystem.cpio.gz >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> that means without breaking the "-device pl330" options. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>>> alvise >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>>>>> -Bharat >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Is there something I'm wrong or do I miss some steps? >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Thank you, >>>>>>>>>>>>>>>>>>>> Shannon >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On 2014/6/18 21:24, Alvise Rigo wrote: >>>>>>>>>>>>>>>>>>>>> Hi Shannon, >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thank you for reporting this issue, the device tree >>>>>>>>>>>>>>>>>>>>> file was >>>>>> indeed >>>>>>>>>>>>>> missing. >>>>>>>>>>>>>>>>>>>>> To solve the problem, you can apply the following >>>>>>>>>>>>>>>>>>>>> patch to the repository you mentioned >>>>>>>>>>>>>>>>>>>>> (git://github.com/virtualopensystems/arm-dts.git). >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> For your information, soon we will update the guide >>>>>>>>>>>>>>>>>>>>> with a newer version of VFIO with this issue fixed. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thank you, >>>>>>>>>>>>>>>>>>>>> alvise >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> --- >>>>>>>>>>>>>>>>>>>>> fast_models/rtsm_ve-cortex_a15x4_a7x4.dts | 100 >>>>>>>>>>>>>>>>>>>>> +++++++++++++++++++++++++++++- >>>>>>>>>>>>>>>>>>>>> 1 file changed, 97 insertions(+), 3 deletions(-) >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> diff --git a/fast_models/rtsm_ve-cortex_a15x4_a7x4.dts >>>>>>>>>>>>>>>>>>>>> b/fast_models/rtsm_ve-cortex_a15x4_a7x4.dts >>>>>>>>>>>>>>>>>>>>> index ef1275b..79c6af2 100644 >>>>>>>>>>>>>>>>>>>>> --- a/fast_models/rtsm_ve-cortex_a15x4_a7x4.dts >>>>>>>>>>>>>>>>>>>>> +++ b/fast_models/rtsm_ve-cortex_a15x4_a7x4.dts >>>>>>>>>>>>>>>>>>>>> @@ -142,7 +142,7 @@ >>>>>>>>>>>>>>>>>>>>> cpu7: cpu@7 { >>>>>>>>>>>>>>>>>>>>> device_type = "cpu"; >>>>>>>>>>>>>>>>>>>>> compatible = "arm,cortex-a7"; >>>>>>>>>>>>>>>>>>>>> - reg = <0x104>; >>>>>>>>>>>>>>>>>>>>> + reg = <0x103>; >>>>>>>>>>>>>>>>>>>>> cluster = <&cluster1>; >>>>>>>>>>>>>>>>>>>>> core = <&core7>; >>>>>>>>>>>>>>>>>>>>> }; >>>>>>>>>>>>>>>>>>>>> @@ -159,7 +159,7 @@ >>>>>>>>>>>>>>>>>>>>> #address-cells = <0>; >>>>>>>>>>>>>>>>>>>>> interrupt-controller; >>>>>>>>>>>>>>>>>>>>> reg = <0 0x2c001000 0 0x1000>, >>>>>>>>>>>>>>>>>>>>> - <0 0x2c002000 0 0x2000>, >>>>>>>>>>>>>>>>>>>>> + <0 0x2c002000 0 0x1000>, >>>>>>>>>>>>>>>>>>>>> <0 0x2c004000 0 0x2000>, >>>>>>>>>>>>>>>>>>>>> <0 0x2c006000 0 0x2000>; >>>>>>>>>>>>>>>>>>>>> interrupts = <1 9 0xf04>; @@ -183,6 +183,101 @@ >>>>>>>>>>>>>>>>>>>>> <1 10 0xf08>; >>>>>>>>>>>>>>>>>>>>> }; >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> + smmu@2c0b0000 { >>>>>>>>>>>>>>>>>>>>> + compatible = "arm,smmu-v2"; >>>>>>>>>>>>>>>>>>>>> + reg = <0x0 0x2c0b0000 0x0 0x10000>; >>>>>>>>>>>>>>>>>>>>> + #global-interrupts = <2>; >>>>>>>>>>>>>>>>>>>>> + interrupts = <0 58 4>, >>>>>>>>>>>>>>>>>>>>> + <0 59 4>, >>>>>>>>>>>>>>>>>>>>> + <0 60 4>, >>>>>>>>>>>>>>>>>>>>> + <0 60 4>, >>>>>>>>>>>>>>>>>>>>> + <0 60 4>, >>>>>>>>>>>>>>>>>>>>> + <0 60 4>, >>>>>>>>>>>>>>>>>>>>> + <0 60 4>, >>>>>>>>>>>>>>>>>>>>> + <0 60 4>, >>>>>>>>>>>>>>>>>>>>> + <0 60 4>; >>>>>>>>>>>>>>>>>>>>> + mmu-masters = <&dma0 0x0 0x8>, >>>>>>>>>>>>>>>>>>>>> + <&dma1 0x1 0x9>, >>>>>>>>>>>>>>>>>>>>> + <&dma2 0x2 0xa>, >>>>>>>>>>>>>>>>>>>>> + <&dma3 0x3 0xb>; >>>>>>>>>>>>>>>>>>>>> + }; >>>>>>>>>>>>>>>>>>>>> + >>>>>>>>>>>>>>>>>>>>> + dma0: dma@2c0a0000 { >>>>>>>>>>>>>>>>>>>>> + compatible = "arm,pl330"; >>>>>>>>>>>>>>>>>>>>> + reg = <0 0x2c0a0000 0 0x1000>; >>>>>>>>>>>>>>>>>>>>> + interrupts = <0 64 4>, >>>>>>>>>>>>>>>>>>>>> + <0 65 4>, >>>>>>>>>>>>>>>>>>>>> + <0 66 4>, >>>>>>>>>>>>>>>>>>>>> + <0 67 4>, >>>>>>>>>>>>>>>>>>>>> + <0 68 4>, >>>>>>>>>>>>>>>>>>>>> + <0 69 4>, >>>>>>>>>>>>>>>>>>>>> + <0 70 4>, >>>>>>>>>>>>>>>>>>>>> + <0 71 4>; >>>>>>>>>>>>>>>>>>>>> + #dma-cells = <1>; >>>>>>>>>>>>>>>>>>>>> + #stream-id-cells = <2>; >>>>>>>>>>>>>>>>>>>>> + clocks = <&oscclk6a>; >>>>>>>>>>>>>>>>>>>>> + clock-names = "apb_pclk"; >>>>>>>>>>>>>>>>>>>>> + }; >>>>>>>>>>>>>>>>>>>>> + >>>>>>>>>>>>>>>>>>>>> + dma1: dma@2c0a1000 { >>>>>>>>>>>>>>>>>>>>> + compatible = "arm,pl330", "arm,primecell"; >>>>>>>>>>>>>>>>>>>>> + reg = <0 0x2c0a1000 0 0x1000>; >>>>>>>>>>>>>>>>>>>>> + interrupts = <0 96 4>, >>>>>>>>>>>>>>>>>>>>> + <0 97 4>, >>>>>>>>>>>>>>>>>>>>> + <0 98 4>, >>>>>>>>>>>>>>>>>>>>> + <0 99 4>, >>>>>>>>>>>>>>>>>>>>> + <0 100 4>, >>>>>>>>>>>>>>>>>>>>> + <0 101 4>, >>>>>>>>>>>>>>>>>>>>> + <0 102 4>, >>>>>>>>>>>>>>>>>>>>> + <0 103 4>; >>>>>>>>>>>>>>>>>>>>> + #dma-cells = <1>; >>>>>>>>>>>>>>>>>>>>> + #stream-id-cells = <2>; >>>>>>>>>>>>>>>>>>>>> + clocks = <&oscclk6a>; >>>>>>>>>>>>>>>>>>>>> + clock-names = "apb_pclk"; >>>>>>>>>>>>>>>>>>>>> + }; >>>>>>>>>>>>>>>>>>>>> + >>>>>>>>>>>>>>>>>>>>> + dma2: dma@2c0a2000 { >>>>>>>>>>>>>>>>>>>>> + compatible = "arm,pl330", "arm,primecell"; >>>>>>>>>>>>>>>>>>>>> + reg = <0 0x2c0a2000 0 0x1000>; >>>>>>>>>>>>>>>>>>>>> + interrupts = <0 128 4>, >>>>>>>>>>>>>>>>>>>>> + <0 129 4>, >>>>>>>>>>>>>>>>>>>>> + <0 130 4>, >>>>>>>>>>>>>>>>>>>>> + <0 131 4>, >>>>>>>>>>>>>>>>>>>>> + <0 132 4>, >>>>>>>>>>>>>>>>>>>>> + <0 133 4>, >>>>>>>>>>>>>>>>>>>>> + <0 134 4>, >>>>>>>>>>>>>>>>>>>>> + <0 135 4>; >>>>>>>>>>>>>>>>>>>>> + #dma-cells = <1>; >>>>>>>>>>>>>>>>>>>>> + #stream-id-cells = <2>; >>>>>>>>>>>>>>>>>>>>> + clocks = <&oscclk6a>; >>>>>>>>>>>>>>>>>>>>> + clock-names = "apb_pclk"; >>>>>>>>>>>>>>>>>>>>> + }; >>>>>>>>>>>>>>>>>>>>> + >>>>>>>>>>>>>>>>>>>>> + dma3: dma@2c0a3000 { >>>>>>>>>>>>>>>>>>>>> + compatible = "arm,pl330", "arm,primecell"; >>>>>>>>>>>>>>>>>>>>> + reg = <0 0x2c0a3000 0 0x1000>; >>>>>>>>>>>>>>>>>>>>> + interrupts = <0 160 4>, >>>>>>>>>>>>>>>>>>>>> + <0 161 4>, >>>>>>>>>>>>>>>>>>>>> + <0 162 4>, >>>>>>>>>>>>>>>>>>>>> + <0 163 4>, >>>>>>>>>>>>>>>>>>>>> + <0 164 4>, >>>>>>>>>>>>>>>>>>>>> + <0 165 4>, >>>>>>>>>>>>>>>>>>>>> + <0 166 4>, >>>>>>>>>>>>>>>>>>>>> + <0 167 4>; >>>>>>>>>>>>>>>>>>>>> + #dma-cells = <1>; >>>>>>>>>>>>>>>>>>>>> + #stream-id-cells = <2>; >>>>>>>>>>>>>>>>>>>>> + clocks = <&oscclk6a>; >>>>>>>>>>>>>>>>>>>>> + clock-names = "apb_pclk"; >>>>>>>>>>>>>>>>>>>>> + }; >>>>>>>>>>>>>>>>>>>>> + >>>>>>>>>>>>>>>>>>>>> + oscclk6a: oscclk6a { >>>>>>>>>>>>>>>>>>>>> + /* Reference 24MHz clock */ >>>>>>>>>>>>>>>>>>>>> + compatible = "fixed-clock"; >>>>>>>>>>>>>>>>>>>>> + #clock-cells = <0>; >>>>>>>>>>>>>>>>>>>>> + clock-frequency = <24000000>; >>>>>>>>>>>>>>>>>>>>> + clock-output-names = "oscclk6a"; >>>>>>>>>>>>>>>>>>>>> + }; >>>>>>>>>>>>>>>>>>>>> + >>>>>>>>>>>>>>>>>>>>> smb { >>>>>>>>>>>>>>>>>>>>> compatible = "simple-bus"; >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> @@ -244,4 +339,3 @@ >>>>>>>>>>>>>>>>>>>>> /include/ "rtsm_ve-motherboard.dtsi" >>>>>>>>>>>>>>>>>>>>> }; >>>>>>>>>>>>>>>>>>>>> }; >>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>> Shannon >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>> kvmarm mailing list >>>>>>>>>>>>>>>>>>>> kvmarm@xxxxxxxxxxxxxxxxxxxxx >>>>>>>>>>>>>>>>>>>> https://lists.cs.columbia.edu/mailman/listinfo/kvmarm >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> . >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> . >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> . >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Shannon >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> . >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Shannon >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> . >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> . >>>>>>> >>>>>> >>>>>> -- >>>>>> Shannon >>>>> >>>> >>>> -- >>>> Shannon >>> >> > > . > -- Shannon _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm