Arria 10 SoC – USB devices always enumerating as Full-Speed (Yocto 4.1, dwc2)
Hello,
My name is Ángel Manuel and I am currently working with an Intel SoC FPGA Arria 10. I am trying to connect an Intel RealSense SR300 camera to my system, but I am experiencing USB speed negotiation issues.
Environment:
Platform: Intel SoC FPGA Arria 10
OS: Linux (custom image built with Yocto 4.1 Langdale)
USB driver: dwc2
librealsense built with -DFORCE_RSUSB_BACKEND=ON
When I connect the RealSense SR300 camera, the USB link does not negotiate correctly and the device is always enumerated as Full-Speed (12M) instead of High-Speed or SuperSpeed. At first, I suspected a problem with the USB 3.0 connector of the SR300. However, when I tested with a standard USB 2.0 webcam, I observed exactly the same behavior: the device is still enumerated only as Full-Speed (12M). This suggests the issue is likely related to the USB controller configuration on the Arria 10 rather than the camera itself.
System Output
lsusb -t:
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M
|__ Port 1: Dev 2, If 1, Class=Audio, Driver=, 12M
|__ Port 1: Dev 2, If 2, Class=Audio, Driver=, 12M
dmesg:
[ 204.765768] usb 1-1: new full-speed USB device number 2 using dwc2
Yocto local.conf:
MACHINE = "arria10"
DISTRO_FEATURES:append = " systemd vfat"
DISTRO_FEATURES:remove = " sysvinit"
VIRTUAL-RUNTIME_init_manager = "systemd"
IMAGE_INSTALL:append = " kernel-module-uvcvideo"
KERNEL_MODULE_AUTOLOAD += "uvcvideo"
IMAGE_INSTALL:append = " \
packagegroup-core-boot \
pciutils \
usbutils \
v4l-utils \
i2c-tools \
librealsense2 \
"
EXTRA_OECMAKE:append:pn-librealsense2 = " -DFORCE_RSUSB_BACKEND=ON"