Oh, thanks, William, I was inspired doing this by your post!
Oh, cool ! Glad someone reads my stuff now and then 
The problem is that "usb start" starts *u-boot*'s USB subsystem, it
(probably) has nothing to do with the CPU.
You explicitly mentioned that used a USB HDD with external power supply,
but I'm trying to boot off a USB flash drive. The CPU doesn't provide USB
power at early stage. If I provide power from an external source,
everything works fine.
Right so in that case, I explicitly mentioned using external power for a
hard drive. As many hard drives need at least 1-3A when spinning up, then
typically for a 3.5" HDD 1A after that. I just assumed that flash stick
would / should work, because most of them are pulling less than 500mA, or
is what I'd guess at any rate. However, you tested it seems, where I did
not.
The latest u-boot supports loading overlays, I'm not sure whether it's
possible to load an overlays with the correct configuration of that pin and
*then* load kernel and stuff from USB flash drive.
So I do not know all the specifics, and quite honestly Robert would
probably know better than I. But *maybe* there is a way you can create a
new overlay, based on the board file, to get the USB power up. A lot of
overlays are already set in the board file by default, or more specifically
references to hardware are in the board file, and in some cases all you
need to do is write an overlay that targets the hardware in question, and
provide status="okay". With that said. . . I'm not 100% sure how soon the
overlays get loaded. As in if they're actually loaded in uboot, or if
they're somehow loaded just prior, or simotaneously when the kernel is
loaded via cmdline options.
It's a really interesting problem to solve, one that I'd like to figure out
myself - even. If only I were not already busy with a ton of things at
work
Which, yeah, I'll probably be spending part of my weekend doing too
. . .