I am trying to get USB interfacing to work on the Zybo. Because I eventually want to build my own board, I am familiarizing myself with all parts of a functional toolchain. My toolchain looks like this:
Generate hardware platform with Vivado 2016.2, using Digilent HW Platform Guide as a reference. Exporting hardware from Vivado. (Note: Hello World SDK project runs successfully from this HW design).
Use Petalinux 2016.2 to create a project, load in files as necessary, and generate boot image, as described in UG1144. (Using hdf and bit generated with Vivado, FSBL and Device Tree unchanged from petalinux defaults)
Copy BOOT.BIN and image.ub to SD card
Linux boots properly, and I have shell access over UART. However, plugging and unplugging USB devices has no effect. By contrast, the prebuilt image provided in this Petalinux BSP repository based on the Digilent Linux BD can detect and identify USB peripherals.
The default device tree and kernel configuration *look* complaint with the Zynq Linux USB Xilinx wiki page, with the exception that the device tree lines are divided between zynq-7000.dtsi and pcw.dtsi, and Generic ULPI Transceiver Driver is not an option when running petalinux-config -c kernel.
Also, dmesg yields some information when run on the Zynq:
root@julianzybo:~# dmesg | grep -i usb
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
but lsusb isn't even present:
root@julianzybo:~# lsusb
-sh: lsusb: not found
Has anyone successfully built Linux from a custom hardware platform, and gotten USB to work?
EDIT: I have not connected any reset to USB0, but I do see the line
usb-reset = <&gpio0 46 0>;
in the Petalinux-BSP repository device tree. Perhaps a USB reset is necessary?
Question
jcloiacon
Good afternoon!
I am trying to get USB interfacing to work on the Zybo. Because I eventually want to build my own board, I am familiarizing myself with all parts of a functional toolchain. My toolchain looks like this:
Linux boots properly, and I have shell access over UART. However, plugging and unplugging USB devices has no effect. By contrast, the prebuilt image provided in this Petalinux BSP repository based on the Digilent Linux BD can detect and identify USB peripherals.
The default device tree and kernel configuration *look* complaint with the Zynq Linux USB Xilinx wiki page, with the exception that the device tree lines are divided between zynq-7000.dtsi and pcw.dtsi, and Generic ULPI Transceiver Driver is not an option when running petalinux-config -c kernel.
Also, dmesg yields some information when run on the Zynq:
root@julianzybo:~# dmesg | grep -i usb usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver usbcore: registered new interface driver usb-storage usbcore: registered new interface driver usbhid usbhid: USB HID core driver
but lsusb isn't even present:
root@julianzybo:~# lsusb -sh: lsusb: not found
Has anyone successfully built Linux from a custom hardware platform, and gotten USB to work?
EDIT: I have not connected any reset to USB0, but I do see the line
usb-reset = <&gpio0 46 0>;
in the Petalinux-BSP repository device tree. Perhaps a USB reset is necessary?
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.