Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12603 Discussions

Cyclone V U-boot/Linux USB device probe

Altera_Forum
Honored Contributor II
1,427 Views

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 II
649 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.

0 Kudos
Reply