Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
847 Views

Cyclone V U-boot/Linux USB device probe

Hi- 

 

I've been developing a Cyclone V SoC device recently, and have been running in to difficulty getting the HPS USB controller to be recognized. Everything else has been working fine on all levels, including HPS-to-FPGA, FPGA-to-HPS, etc, but I've been getting error messages pretty regularly from the USB controller. The odd thing is that it is almost as if u-boot or Linux expect to see a different type of name for the device than what is shown in the devicetree. Boot-up text and the devicetree entry are below. Linux device messages are basically the same as the Linux messages. If we are having PHY problems, would we see this message? 

 

Boot messages (u-boot): 

 

SOCFPGA_CYCLONE5# sf probe 

SF: Read data capture delay calibrated to 3 (0 - 7) 

SF: Detected N25Q512 with page size 64 KiB, total 64 MiB 

SOCFPGA_CYCLONE5# usb start 

(Re)start USB... 

USB0: Core Release: 0.000 

SNPSID is invalid (not DWC OTG device): 00000000 

lowlevel init failed 

USB error: all controllers failed lowlevel init 

 

Devicetree: 

 

arm_cpu_usb1: usb@0xffb40000 { 

compatible = "snps,dwc-otg-14.1", "snps,dwc-otg", "snps,dwc2"; 

reg = <0xffb40000 0x00001000>; 

interrupt-parent = <&arm_cpu_arm_gic_0>; 

interrupts = <0 128 4>; 

clocks = <&usb_mp_clk>; 

clock-names = "otg"; /* embeddedsw.dts.params.clock-names type STRING */ 

dev-nperio-tx-fifo-size = <4096>; /* embeddedsw.dts.params.dev-nperio-tx-fifo-size type NUMBER */ 

dev-perio-tx-fifo-size = "<512 512 512 512 512 512 512 512 512 512 512 512 512 512 512>"; /* embeddedsw.dts.params.dev-perio-tx-fifo-size type STRING */ 

dev-rx-fifo-size = <512>; /* embeddedsw.dts.params.dev-rx-fifo-size type NUMBER */ 

dev-tx-fifo-size = "<512 512 512 512 512 512 512 512 512 512 512 512 512 512 512>"; /* embeddedsw.dts.params.dev-tx-fifo-size type STRING */ 

dma-mask = <268435455>; /* embeddedsw.dts.params.dma-mask type NUMBER */ 

enable-dynamic-fifo = <1>; /* embeddedsw.dts.params.enable-dynamic-fifo type NUMBER */ 

host-nperio-tx-fifo-size = <2560>; /* embeddedsw.dts.params.host-nperio-tx-fifo-size type NUMBER */ 

host-perio-tx-fifo-size = <2560>; /* embeddedsw.dts.params.host-perio-tx-fifo-size type NUMBER */ 

host-rx-fifo-size = <2560>; /* embeddedsw.dts.params.host-rx-fifo-size type NUMBER */ 

phy-names = "usb2-phy"; /* embeddedsw.dts.params.phy-names type STRING */ 

status = "okay"; /* embeddedsw.dts.params.status type STRING */ 

ulpi-ddr = <0>; /* embeddedsw.dts.params.ulpi-ddr type NUMBER */ 

voltage-switch = <0>; /* embeddedsw.dts.params.voltage-switch type NUMBER */ 

phys = <&usbphy0>; /* appended from boardinfo */ 

}; //end usb@0xffb40000 (arm_cpu_usb1) 

 

usbphy0: usbphy@0 { 

# phy-cells = <0>; /* appended from boardinfo */ 

compatible = "usb-nop-xceiv"; /* appended from boardinfo */ 

status = "okay"; /* appended from boardinfo */ 

}; //end usbphy@0 (usbphy0)
0 Kudos
1 Reply
Altera_Forum
Honored Contributor I
69 Views

I believe this turned out to be a kernel issue, as an updated kernel doesn't see this issue. Still debugging, but not really important right now.

Reply