cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
184 Views
Registered: ‎01-29-2019

Petalinux usb0 address - conflict in device tree when using recommended values in system-user.dtsi

I am trying to configure USB3.0 in peripheral mode for ZCU102 using Petalinux 2020.1.  I am using the configfs method to bind my gadget functions (UVC + serial).

For the USB3 peripheral configuration I followed the instructions on the wiki https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841729/Zynq+Ultrascale+MPSOC+Linux+USB+device+driver

In the device tree section given in the examples, there is a device tree conflict in the usb0 node address, given on the wiki as usb0: usb@fe200000 {

This conflicts with the usb0 node defined as usb0: usb@ff9d0000 {  in zynqmp.dtsi, which is somehow implicitly included in my build for zynqmp. 

Which is the correct address for usb0? I tried these two paths.

  • If it is supposed to be @ff9d0000 as defined in zynqmp.dtsi, then I can avoid the device tree compile conflict by not redefining usb0 as instructed by the wiki page. Instead just override the status and direction fields with &usb0 and &dwc3_0 references.
  • If it is supposed to be @fe200000 as defined on the wiki page, then remove the inclusion of zynqmp.dtsi from the device tree build and configure the devices elsewhere... where? Or can this node be deleted and redefined by system-user.dtsi?  

I went down the second path, following another forum post solution, and dwc3 did not show up in /sys/class/udc. So it was not possible to bind the USB functions to the driver.

I went down the first path, and a runtime problem appears immediately after binding the driver to UVC.  If I bind only the serial function, there's no problem.  Any idea why there's a problem with UVC?

[ 334.113420] configfs-gadget gadget: uvc: uvc_function_bind()
root@wm:/mvis/uvc-gadget# [ 355.130939] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[ 355.136855] rcu: 0-...0: (1 GPs behind) idle=ea2/1/0x4000000000000000 softirq=2722/2723 fqs=2626
[ 355.145800] (detected by 1, t=5254 jiffies, g=3417, q=57)
[ 355.151268] Task dump for CPU 0:
[ 355.154480] v4l_id R running task 0 668 645 0x00000002
[ 355.161520] Call trace:
[ 355.163958] __switch_to+0x1c4/0x288
[ 355.167519] 0xffffff887a12d180
[ 394.158971] udevd[166]: worker [645] /devices/platform/amba/ff9d0000.usb0/fe200000.dwc3/gadget/video4linux/video0 is taking a long time
[ 418.150938] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[ 418.156853] rcu: 0-...0: (1 GPs behind) idle=ea2/1/0x4000000000000000 softirq=2722/2723 fqs=10500
[ 418.165886] (detected by 3, t=21007 jiffies, g=3417, q=89)
[ 418.171440] Task dump for CPU 0:
[ 418.174652] v4l_id R running task 0 668 645 0x00000002

 

0 Kudos
1 Reply
Highlighted
Observer
Observer
74 Views
Registered: ‎01-29-2019

The wiki documentation discrepancy for recommended values (usb0: usb@ff9d0000 versus usb@fe200000) was corrected yesterday.

0 Kudos