U-boot on RPI3, sees disk but won't boot it

bob prohaska <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
Dealing with a Pi3B running stable-13, current as of today.

Root device is a USB hard drive on a powered hub, no microSD.

About half the time it boots hands-off via power cycling or
shutdown -r, other times it stops in u-boot reporting:

U-Boot 2022.04 (Sep 05 2022 - 16:28:34 -0700)

DRAM:  948 MiB
RPI 3 Model B (0xa02082)
Core:  69 devices, 10 uclasses, devicetree: board
MMC:   mmc@7e300000: 2
Loading Environment from FAT... In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   No ethernet found.
starting USB...
Bus usb@7e980000: USB DWC2
scanning bus usb@7e980000 for devices... 6 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

This looks a bit strange, since u-boot was loaded from the USB disk....
Next:

MMC Device 0 not found
no mmc device at slot 0
MMC Device 1 not found
no mmc device at slot 1
Card did not respond to voltage select! : -110

Device 0: unknown device
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-b8-27-eb-ba-68-d5
Retrieving file: pxelinux.cfg/00000000
Retrieving file: pxelinux.cfg/0000000
Retrieving file: pxelinux.cfg/000000
Retrieving file: pxelinux.cfg/00000
Retrieving file: pxelinux.cfg/0000
Retrieving file: pxelinux.cfg/000
Retrieving file: pxelinux.cfg/00
Retrieving file: pxelinux.cfg/0
Retrieving file: pxelinux.cfg/default-arm-bcm283x-rpi
Retrieving file: pxelinux.cfg/default-arm-bcm283x
Retrieving file: pxelinux.cfg/default-arm
Retrieving file: pxelinux.cfg/default
Config file not found

At this point one can enumerate the USB devices:

U-Boot> usb tree
USB device tree:
  1  Hub (480 Mb/s, 0mA)
  |   U-Boot Root Hub 
  |
  +-2  Hub (480 Mb/s, 2mA)
    |
    +-3  Vendor specific (12 Mb/s, 90mA)
    |    FTDI FT232R USB UART AM00KE3E
    |  
    +-4  Vendor specific (480 Mb/s, 2mA)
    |  
    +-5  Hub (480 Mb/s, 100mA)
      |  GenesysLogic USB2.1 Hub 
      |
      +-6  Mass Storage (480 Mb/s, 500mA)
         
U-Boot> 

The obvious oddity is that clearly a mass storage device has
been found (indeed, u-boot was started from it) but u-boot
does not recognize it as the device to boot from. 

So far it appears that rebooting from multi-user via shutdown -r
works about half the time. If the disk isn't recognized, an immediate
reset command usually ends the same way. Simply waiting for 15-30
minutes before rebooting _usually_ results in successful disk 
discovery and boot. 

Can anyone suggest simple experiments that might shed light on
what's going on? The u-boot employed was compiled from ports
and system up to date at the time. The same type of disk on a
Pi4 running -current (no powered hub needed) boots without 
problems. 

Thanks for reading,

bob prohaska
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.