Sweet Potato won't see USB devices except for top left slot

Hello,

I have recently purchased the sweet potato and planned to use it for Lakka emulation. However, it seems like only the top left USB port is being detected by the potato. It seems to send power to the other USB items, but no data.

I have also tried different images, raspbian and Debian, on the chance it was the os but unfortunately they suffered the same issue.

I’ve tested to make sure it wasn’t just a controller that isn’t being detected, using a thumb drive and keyboard. To test to make sure it wasn’t too much power draw, I removed the others and tried to place a keyboard in the other slots and it only detects using the first one.

Speaking of power, I’m using the recommended loverpi charger with the on/off switch. I have tried plugging it into a UPS and a wall outlet.

Any solution to this? Thanks in advance!

Try updating the firmware. You mean to say that USB devices worked until Linux booted up?

I have this EXACT same issue except on aml-s905x-cc - only top left usb sending data - I’ve been looking for a solution but - from what i’m aware it does not have available firmware. How can we fix this??

In the u-boot stage, do USB keyboard and mice work? What do you have attached?

I have the same issue on Sweet Potato.
After boot only top left USB can communicate, other USBs are charge only. Here’s update process UART logs

Starting kernel ...

domain-0 init dvfs: 4
GXL:BL1:9ac50e:bb16dc;FEAT:ADFC318C:0;POC:1;RCY:0;SPI:0;0.0;CHK:0;
TE: 36566

BL2 Built : 15:21:18, Aug 28 2019. gxl g1bf2b53 - luan.yuan@droid15-sz

set vcck to 1120 mv
set vddee to 1000 mv
Board ID = 4
CPU clk: 1200MHz
DDR enable rdbi
DQS-corr enabled
DDR scramble enabled
DDR4 chl: Rank0 @ 1080MHz

bist_test rank: 0 18 02 2f 2c 20 39 13 00 27 2b 22 35 16 00 2d 2b 1c 3b 14 00 28 2b 1b 3c 690  
Rank0: 2048MB(auto)-2T-18
AddrBus test pass!
Load fip header from SPI, src: 0x0000c000, des: 0x01400000, size: 0x00004000, part: 0
New fip structure!
Load bl30 from SPI, src: 0x00010000, des: 0x013c0000, size: 0x0000d600, part: 0
Load bl31 from SPI, src: 0x00020000, des: 0x05100000, size: 0x0001b800, part: 0
Load bl33 from SPI, src: 0x0003c000, des: 0x01000000, size: 0x00089800, part: 0
NOTICE:  BL31: v1.3(release):c3714b49be
NOTICE:  BL31: Built : 09:23:36, Jun 20 2023. gxl bl-3.5.0 gc3714b49be - jenkins@walle02-sh
NOTICE:  BL3-1: GXL normal boot!
NOTICE:  BL31: BL33 decompress pass
mpu_config_enable:system pre init ok
OPS=0x84
dmc sec lock
[Image: gxl_v1.1.3509-d977ed20a4 2023-06-20 09:43:46 jenkins@walle02-sh]
21 0d 84 00 21 46 dc 02 ea 9a 37 2a c8 b9 e2 05 
[0.750270 Inits done]
secure task start!
high task start!
low task start!
ERROR:   Error initializing runtime service opteed_fast


U-Boot 2023.07+ (Oct 13 2023 - 16:21:04 -0400) Libre Computer AML-S905X-CC-V2

Model: Libre Computer AML-S905X-CC V2
SoC:   Amlogic Meson GXL (S905X) Revision 21:d (84:2)
DRAM:  2 GiB
Core:  181 devices, 32 uclasses, devicetree: separate
WDT:   Not starting watchdog@98d0
MMC:   mmc@72000: 1, mmc@74000: 0
Loading Environment from FAT... Card did not respond to voltage select! : -110
** Bad device specification mmc 0 **
Card did not respond to voltage select! : -110
** Bad device specification mmc 0 **
Couldn't find partition mmc 0
Card did not respond to voltage select! : -110
** Bad device specification mmc 0 **
Couldn't find partition mmc 0
Error: could not access storage.
[BL31]: tee size: 0
[BL31]: tee size: 0
starting USB...
Bus usb@c9000000: dwc3_meson_gxl_get_phys: usb2 ports: 2
Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb@c9000000 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
Hit any key to stop autoboot:  0 
Scanning for bootflows in all bootdevs
Seq  Method       State   Uclass    Part  Name                      Filename
---  -----------  ------  --------  ----  ------------------------  ----------------
Scanning global bootmeth 'efi_mgr':
Scanning bootdev 'mmc@74000.bootdev':
Card did not respond to voltage select! : -110
Scanning bootdev 'mmc@72000.bootdev':
Card did not respond to voltage select! : -110
Scanning bootdev 'usb_mass_storage.lun0.bootdev':
  0  script       ready   usb_mass_    1  usb_mass_storage.lun0.boo /boot.scr
** Booting bootflow 'usb_mass_storage.lun0.bootdev.part_1' with script
arch=arm
baudrate=115200
board=aml-s905x-cc-v2
board_name=aml-s905x-cc-v2
boot_source=spi
boot_targets=mmc0 mmc1 usb spi
bootcmd=bootflow scan -lb
bootdelay=1
bootdevice=0
cpu=armv8
devnum=0
devtype=usb
distro_bootpart=1
ethaddr=9e:4f:f2:e8:59:a1
fdt_addr_r=0x08008000
fdtcontroladdr=75e9eee0
fdtfile=amlogic/meson-gxl-s905x-libretech-cc-v2.dtb
fdtoverlay_addr_r=0x01000000
kernel_addr_r=0x08080000
kernel_comp_addr_r=0x0d080000
kernel_comp_size=0x2000000
loadaddr=0x1000000
preboot=usb start
prefix=/
pxefile_addr_r=0x01080000
ramdisk_addr_r=0x13000000
scriptaddr=0x08000000
soc=meson
splashdevpart=0
splashfile=boot.bmp
splashimage=0x1000000
splashpos=m,m
splashsource=mmc_fs
stderr=vidconsole,serial
stdin=usbkbd,serial
stdout=vidconsole,serial
stop=while true; do sleep 1; done
vendor=libre-computer
ver=U-Boot 2023.07+ (Oct 13 2023 - 16:21:04 -0400) Libre Computer AML-S905X-CC-V2

Environment size: 887/4092 bytes
Working FDT set to 75e9eee0
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
SPI NOR found
20 bytes read in 0 ms
Firmware checksum loaded
819200 bytes read in 20 ms (39.1 MiB/s)
Firmware loaded
Checksum verified
device 0 offset 0x0, size 0xc8000
   Updating, 48% 3945137 B/s   Updating, 96% 3965901 B/s0 bytes written, 819200 bytes skipped in 0.212s, speed 3956890 B/s
Firmware updated
device 0 offset 0x0, size 0xc8000
SF: 819200 bytes @ 0x0 Read: OK
Firmware read
Firmware checksum match
Flash Completed

If I can help in debugging that, please let me know! I don’t know how I can test keyboard in u-boot stage.

I connected an android phone to “charge only” USB port and then powered on the sbc. The first few seconds I could see a notification letting me select connection type, but when OS (in my case Batocera 38) began booting, the notification disappeared, so only charge notification remained visible. From that, I assume, before loading OS the USBs do work, but then something goes wrong.

As batocera is a third party project, it is recommended to post on their forum indicating the error you experienced. They may not have the USB hub driver in place.

If anyone is interested in Batocera, you can find working build in the issue V38 Sweet Potato (v2) only one USB port works · Issue #10925 · batocera-linux/batocera.linux · GitHub.

That was indeed a software issue. Thanks.

2 Likes

Thanks for the followup.

2 Likes