Public bug reported:
[ Impact ]
On the AMD/Xilinx VCK190 evaluation board running Ubuntu 24.04 (linux-
xilinx 6.8), the USB host controller never comes up. dwc3-xilinx fails
to probe:
dwc3-xilinx ff9d0000.usb: error -ENOENT: failed to get reset signal
dwc3-xilinx: probe of ff9d0000.usb failed with error -2
There is no USB bus at all (/sys/bus/usb/devices is empty, lsusb prints
nothing), so nothing plugged into the board's USB port works. The VCK190
port is USB 2.0-only by board design, so the missing SuperSpeed is
expected; the bug is that even USB 2.0 is dead.
On VCK190, U-Boot boots Linux with its own control device tree: flash-
kernel's boot script uses $fdtcontroladdr for this board, and image.fit
has no FDT. That DT is vck190_system-default.dtb from xlnx-versal-
firmware, which bootgen packs into boot1901.bin. It has no reset
controller and no "resets" property on usb@ff9d0000. Since Linux 6.7
(commit de7ecc4e0570, "usb: dwc3: xilinx: add reset-controller support")
dwc3-xilinx requires that reset, so the probe fails.
The fix adds the xlnx,versal-reset controller under the versal-firmware
node and VERSAL_RST_USB_0 (0xc104036) on the USB node. It also makes the
package install the DTB compiled from the DTS instead of the prebuilt
one, so the DTS change actually reaches the package.
[ Test Plan ]
On a VCK190 running the Ubuntu 24.04 server image:
1. Without the fix, confirm the failure:
journalctl -b -k | grep dwc3 -> "failed to get reset signal"
lsusb -> empty
2. Install xlnx-versal-firmware from -proposed. The postinst regenerates
/boot/firmware/boot1901.bin with bootgen.
3. Reboot.
4. Check:
- /sys/firmware/devicetree/base/axi/usb@ff9d0000/resets exists
- /sys/bus/platform/drivers/dwc3-xilinx/ff9d0000.usb exists (driver bound)
- lsusb shows the USB 2.0 root hub, and a plugged keyboard or USB stick
enumerates
Tested with a locally built package on a VCK190: after the update dwc3
probes, xHCI comes up, and a hub plus a USB HID keyboard/mouse
enumerate.
[ Where problems could occur ]
The change only touches the VCK190 system DT, which is used by U-Boot
and passed to Linux. A mistake there could keep U-Boot or Linux from
booting on VCK190. Other boards and the xlnx-firmware (ZCU) binary
package are not affected.
The new reset controller node is the same one the kernel's own Versal DT
(versal-clk.dtsi) already defines, and the USB reset ID matches the
upstream kernel DT.
Systems only get the new DT once boot1901.bin is regenerated. The
package postinst does that on installed systems, and image builds run
bootgen on the packaged .bif.
[ Other Info ]
The kernel's versal-vck190-revA.dtb already has the reset, but it is not
used on this board's boot path.
** Affects: xlnx-firmware (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2172026
Title:
[SRU] VCK190: USB host does not work, dwc3-xilinx fails to get reset
signal
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xlnx-firmware/+bug/2172026/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs