Jump to content
  • 0

[SOLVED] Zybo USB OTG - Reset via MIO 46




I'm trying to set up the USB OTG on Zybo board.

I've done the following:

1. Checked the "Peripherals I/O pin" field for the USB0 and MIO as well for reset the PHY chip into Re-customize IP ( double click on zynq ).It matched with the schematics.

2. I have checked the devicetree auto-generated by SDK ( 2017.2 ).I have attached it. Seems to be good.

3. I have plugged my usb key on J10 ( the bigger USB connector ) as I want zybo to be a host controller.

4. The jumper JP1 is shorted.

5. The MIO 46 have to provide the reset signal to the PHY chip if I understand correctly

6. The connection between zynq ps and PHY is ULPI ( 12 signals from MIO 28 to 39 )

7. When I boot the whole thing the device driver is correctly registered ( dmesg | grep usb ) but my usb key is not recognized.

8 If i stop the u-boot autoboot and issue the followings:

- usb info ---> says that the usb is stopped

- usb reset --> it rescan and detect correctly the host conroller and the usb key

- boot --> boot the whole thing but the usb key is not recognized.

I have searched a lot and, if I understand well, the following line on devicetree:

usb-reset = <&gpio0 46 0>;

declare that the gpio 46 have to became the reset signal for PHY chip ( active low , I have checked on Vivado into re-customize ip menu ) and in fact the "usb reset" on u-boot shell works but I don't know why I cannot recognize my usb key.

I have also read that the fsbl have to issue the reset signal.

I have done a search on fsbl source code and I have not found any USB reset function or something similar.

The only thing that I have found is into ps7_init.c but honestly I can't understand a lot of that code... :)

Anyone have encountered the same problem?? I have read that many peaple had problems with zybo USB OTG.

I have also tried to do this into 

u32 FsblHookBeforeHandoff(void)

but it doesn't boot ( maybe my mistake I have to retry ).


Thanks in advance.







Link to comment
Share on other sites

2 answers to this question

Recommended Posts


finally I have solved in this way:

- I have modified the system-top-dts adding:

    usb_phy0: phy0 {
        #phy-cells = <0>;
        compatible = "usb-nop-xceiv";
        reset-gpios = <&gpio0 46 1>;

- I have also modified the pcw.dtsi in this way:

&usb0 {
    status = "okay";
    dr_mode = "host";
    usb-phy = <&usb_phy0>;

Attached the result.

My usb key now is correctly detected and also the two partitions on it has been corectly detected into /dev.

Thx again I hope this can be useful for others that have same problem.




Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...