cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
himalaya
Visitor
Visitor
175 Views
Registered: ‎01-25-2021

Unable to use USB3 (Ultrascale+, ZCU102)

Hello,

I am trying to use USB3 on a petalinux (version 2020.2) running on the ZCU102 board (Zynq MP Ultrascale+), more precisely I want to use the board as a USB device (gadget).

I have followed this tutorial and I tried to use Mass Storage in peripheral mode and Ethernet gadget in peripheral mode, but none of them works.

 

Below is the state of my project with the settings:

  • My jumpers configuration on the board is of course set to Device mode
  • I have updated my system-user.dtsi by adding:

 

&usb0 {
    status = "okay";
};
  
&dwc3_0 {
    status = "okay";
    dr_mode = "peripheral";
};​

 

  • I have enabled following kernel options:
    • In Device Drivers -> USB support -> USB Gadget Support
      • usb_gadget.PNG
        Note that "USB Gadget Drivers" option is not present, is it now named "USB Gadget precomposed configurations"?
    • In File systems -> Pseudo filesystems
      • fs.PNG
        Note that this option is not selected as a Module like in the tutorial: is it a problem?

 

My USB gadget doesn't work, below are my observations:

  • The /sys/class/udc folder contains nothing
  • When I execute "insmod g_mass_storage.ko" (for the mass storage peripheral tutorial), I get the following error:

            udc-core: couldn't find an available UDC - added [g_mass_storage] to list of pending drivers

  • When I execute "echo "fe200000.dwc3" > UDC" (for the ethernet peripheral tutorial), I get the following error:

          echo: write error: No such device

  • When I use the dtc tools to transform the image/linux/system.dtb file into a human readable file, I can see the following data:

 

 

usb0@ff9d0000 {
        ...
        status = "okay";
        ...

        dwc3@fe200000 {
                ...
                status = "okay";
                dr_mode = "host";
                ...
        };
};

 

It seems that the dwc3 peripheral is still configured in host mode...

 

Any help would be greatly appreciated!

Thank you in advance.

 

0 Kudos
1 Reply
pmdcube
Visitor
Visitor
36 Views
Registered: ‎11-04-2020

Hello,

I am facing the same kind of issue. Did you find a solution?

For your information, I checked the dts file by decompiling the dtb and in my case it is clearly noted as peripheral.
Did you do a clean build? I had to do that to have the peripheral mode enabled in the dtb.

Hope this helps,

Pi-r

0 Kudos