Rock64, U-Boot 2024.01, and direct USB3 booting: part way there

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sat, 20 Jan 2024 23:37:31 UTC
U-Boot 2024.01 handles the USB3 port. This means I've
gotten the boot sequence to load the kernel from the
USB3 boot media.

The details:

U-Boot 2024.01 is on media that the internal code can
handle for finding, loading, and starting U-Boot. In
my context, this is a removable E.MMC device. Nothing
else on this device is needed. EFI/ must not be
present. dtb/ should(/must?) not be present.

The USB3 media I'm using looks like it could use a
usb_pgood_delay 2000 (or some such) but I've a powered
USB3 hub that tends to lead to avoiding such a setting
being required, and I'm using that so far.

The msdosfs is on the USB3 media and has the
EFI/BOOT/bootaa64.efi . It was copied from the
USF /boot/loader.efi .

The msdosfs also has a dtb/rockchip/rk3328-rock64.dtb
for U-Boot to find and use. It was copied over from
the UFS /boot/dtb/rockchip/rk3328-rock64.dtb .

(I ignore here also having materials for a RPi* boot.)

On plugging in power, the boot sequence finds, loads,
and starts the FreeBSD kernel based on the the UFS
file system on the USB3 media.

But it does not mount from ufs:/dev/ufs/rootfs .
boot -v reports the following. I unsure if the
"regulator: shutting down . . ." notices indicate
something has been disabled that would be needed.
There are no "Root mount waiting for:" notices.
There is a "Unresolved linked clock found: usb480m_phy"
notice.

. . .
usbus1: 480Mbps High Speed USB v2.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 5.0Gbps Super Speed USB v3.0
. . .
ugen4.1: <Synopsys XHCI root HUB> at usbus4
uhub3 on usbus4
uhub3: <Synopsys XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus4
. . .
Release APs...done
Trying to mount root from ufs:/dev/ufs/rootfs [rw]...
GEOM: new disk mmcsd0
TCP_ratelimit: Is now initialized
GEOM: new disk mmcsd0boot0
Unresolved linked clock found: hdmi_phy
GEOM: new disk mmcsd0boot1
Unresolved linked clock found: usb480m_phy
mmcsd0: Error indicated: 4 Failed
regulator: shutting down unused regulators
regulator: shutting down vcc_sd... busy
uhub1: 1 port with 1 removable, self powered
uhub3: 2 ports with 2 removable, self powered
uhub0: 1 port with 1 removable, self powered
uhub2: 1 port with 1 removable, self powered
ugen4.2: <vendor 0x05e3 product 0x0610> at usbus4
uhub4 on uhub3
uhub4: <vendor 0x05e3 product 0x0610, class 9/0, rev 2.10/92.10, addr 1> on usbus4
uhub4: MTT enabled
uhub4: 4 ports with 1 removable, self powered
ugen4.3: <vendor 0x05e3 product 0x0616> at usbus4
uhub5 on uhub3
uhub5: <vendor 0x05e3 product 0x0616, class 9/0, rev 3.00/92.10, addr 2> on usbus4
uhub5: 4 ports with 1 removable, self powered
ugen4.4: <OWC Envoy Pro mini> at usbus4
umass0 on uhub5
umass0: <OWC Envoy Pro mini, class 0/0, rev 3.00/1.00, addr 3> on usbus4
umass0:0:0: Attached to scbus0
pass0 at umass-sim0 bus 0 scbus0 target 0 lun 0
pass0: <OWC Envoy Pro mini 0> Fixed Direct Access SPC-4 SCSI device
pass0: Serial Number REDACTED
pass0: 400.000MB/s transfers
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <OWC Envoy Pro mini 0> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number REDACTED
da0: 400.000MB/s transfers
da0: 228936MB (468862128 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
da0: Delete methods: <NONE(*),ZERO>

And there is no more output.

The same media boots the RPi4B tried just fine.
Via an EDK2 microsd card also being involved, it
boots the RPi5 just fine as well.

===
Mark Millard
marklmi at yahoo.com