It's always the assumptions that get you!
Here is a workaround that I did to get my RPI4 to boot aarch64 from USB3 SSD without an SD card inserted.
From a freshly built RPI4 running archlinuxarm 64 bit from an SD Card, I did the following:
1. Plug in the USB3 adapter with the SATA SSD attached. (do this after booted or it will not be recognized)
2. Follow the instructions at
https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4 except for the part about the fstab. In this case you will simple want to edit root/etc/fstab and change the device from mmcblk0p1 to sda1. Mine looks like /dev/sda1 instead of /dev/mmcblk0p1
3. The only boot directory file that needs changing are the initrd files.
4. On the booted RPI4 from the SDcard, modify /etc/mkinitcpio.conf and add
pcie_brcmstb into MODULES and save.
4.1 Also make the same change to root/etc/mkinitcpio.conf so any rebuilds done during system upgrades will work.
5. Run $this->bbcode_second_pass_code('', 'mkinitcpio -P')
6. Copy the 2 files it created in the host /boot to the boot directory you have /dev/sda1 mounted on.
$this->bbcode_second_pass_quote('', 'i')nitramfs-linux.img
initramfs-linux-fallback.img
7. Unmount root and boot
8 Remove the SD Card and boot from the SSD.
There has to be a better way, but I have not found it. I did figure out a couple of things.
The u-boot is already fixed.
The latest firmware for the RPI4 supports USB booting.
Nothing in boot.txt needs to be changed.
It's just the pcie_brcmstb module in the /etc/mkinitcpio.conf file that needs updating and the initrd needs rebuilding.