I just got the board and set it up with starfive-jh7110-202306-nvme-minimal-desktop.img image. It boots fine and runs fine with one important exception - all USB ports are dead. Board does not recognize any USB devices. Tried keyboard, mouse, USB memory stick, ‘lsusb’ shows nothing . I wander if it’s defective hardware or possibly software or setup issue? Does anyone run into similar problem?
How are you powering your board?
@vfridman - It sounds like it might be a “device tree” issue, as in the device tree loaded does not match the hardware on the board. I don’t know much about this, I’ve just read about it and the procedure to [change it]-[look at it] on this forum and I think there was a change between board version 1.2A and 1.3B. Couldn’t find it immediately-easily though - a search for “device tree” got a LOT of results.
Also, if you’re using a nvme drive, and you can try an sdcard instead that would be interesting - perhaps indicate some conflict between the NVME drive and the USB hardware - maybe PCI lanes?
This assumes the issue is not hardware, which it certainly could be.
dmesg | fgrep -i cdns gives you?
If it gives you something like
cdns3-starfive 10210000.usbdrd: usb mode 2 2.0 probe success, then at least half of USB ports shall work (I don’t know which board rev you have tho, this is from v1.2a)
By default, board does not enable USB at all at boot, not even in U-Boot. It shall be started with proper device tree and driver probing procedure, as noted by replies above.
The board is powered by USB-C power brick with 65W max power.
Thanks for suggestion, I’ll look into device tree, however I don’t know much about it either. The board version is 1.3B. I tried with SD-card first and the issue was the same.
Yes, I have that trace in dmesg, however I just retested all four USB ports by connecting simple wired keyboard and running ‘lsusb’ and they all appear to be dead. I’m getting another board tomorrow, hopefully I’ll be able to see if it’s hardware fault or software setup problem.
One other thing I want to mention is that I updated firmware to latest, however the problem was present before and after this update.
lspci show up the xHCI USB 3.0 Controller (PCIe to 4 port USB 3.0 hub) ?
You may need to run
sudo apt install pciutils for access to the lspci command.
user@starfive:~$ lspci 00:00.0 PCI bridge: PLDA XpressRich-AXI Ref Design (rev 02) 01:00.0 USB controller: VIA Technologies, Inc. VL805/806 xHCI USB 3.0 Controller (rev 01) user@starfive:~$ which lspci /usr/bin/lspci user@starfive:~$ sudo dpkg -S /usr/bin/lspci pciutils: /usr/bin/lspci user@starfive:~$
Yes, lspci shows USB controller, the same as in your output.
That’s strange. I had many times devices not visible on VF2 at all due to broken or outdated device trees. Your dmesg does not show anything unusual, right?
So it sounds like the connections from the SoC to the VIA VL805 are all there and working fine. But there may be some issue from U16 (VIA Labs quad port USB 3.0 to PCIe host controller VL805-Q6) to the four port USB connector.(J11 and J12 - see design schematic)
That’s right, nothing strange in dmesg. I guess I’ll wait for second board to show up to rule out (or not) hardware failure.
Yeah, I tend to agree with @mzs here: probably something is physically broken on the board. If chip is detected but no power comes in then you might need to test this with another board. Sad news. Hope this will get somehow resolved for you!
As far as I know,
cdns3 driver does not require any firmware from Linux. Anyways, it’s SF’s Debian image: anything shall work out of the box with it.
Yeah, hopefully it will get resolved tomorrow.
Just one last question. You did not upgrade the OS/kernel away from the default engineering kernel (5.15.0-starfive). Because if you did one of the board features that has not been accepted into any upstream Linux kernel yet is USB support.
user@starfive:~$ uname -a Linux starfive 5.15.0-starfive #1 SMP Sun Jun 11 07:48:39 UTC 2023 riscv64 GNU/Linux
e.g. RISC-V/StarFive VisionFive 2 - Ubuntu Wiki
USB and PCIe are not supported by the 6.2 kernel. We expect future upstream kernel revisions to add these.
No, I didn’t touch the standard image in any way.
My guess would be that @vfridman in such case would never see
cdns3 dmesg lines at all.
It sounds like a hardware issue to me then - but I could be wrong. If it is it might be power related or one or more bad solder joints. My next step would be to check the voltage is actually 5 volts between the Test Points:
TP221 (VCC5V0_USB1) J11 connector pin 1 (USB-AL1003D) and TP254 (GND) TP230 (VCC5V0_USB2) J11 connector pin 12 (USB-AL1003D) and TP255 (GND) TP238 (VCC5V0_USB3) J12 connector pin 1 (USB-AL1003D) and TP252 (GND) TP239 (VCC5V0_USB4) J12 connector pin 12 (USB-AL1003D) and TP253 (GND)
( See page 17 of the design schematic.)
This might help narrow it down to an issue in the power supply path, or possibly dry or broken solder joint(s) in the data path.
I would also be examining the PCB (Printed Circuit Board) under high magnification from U16 (VIA VL805) to the two USB connectors (USB-AL1003D) J11 and J12 on both sides of the board.
EDIT: USB 2.0 and USB 3.0 (SuperSpeed) do not share data lines (And USB SS enumeration does not require the USB 2.0 D+/D- differential wires), so it might be worthwhile trying a USB 3.0 device (keyboard and mice are typically USB 2.0 devices). That might also help narrow down the problem to an issue with power traces or USB 2.0 data traces on the PCB. If a USB 3.0 device works, it would show that the power traces and USB 3.0 data traces on the PCB are good, and points to a problem with the USB 2.0 data traces. If a USB 3,0 device does not work then it might be a problem with the power traces on the PCB, or less likely - but still can not be ruled out, a problem with the both the USB 2.0 and USB 3.0 data traces.
What do you know… I connected USB 3.0 external SSD and it works. But USB 2.0 keyboard does not work no matter which connector I chose. So I guess it points to a hardware problem which only affects USB 2.0?
Got a new board and USB works. I was going to return defective one but maybe I’ll keep it and use it as a server so I don’t need to connect keyboard/mouse.
Very much appreciate everyone help, this is the great community.