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

From: bob prohaska <fbsd_at_www.zefox.net>
Date: Mon, 19 Sep 2022 22:15:53 UTC
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