I ran into this issue while trying to migrate the root filesystem into a
btrfs subvolume on an USB hard drive.
I'm also using a Raspberry Pi 4B.
I followed Ryutaroh's advice of loading the reset_raspberrypi module, as
follows:
> echo reset_raspberrypi >/etc/initramfs-tools/modules
> update-initramfs -uk all
And now I can boot from USB.
Note that this issue also causes any other USB devices to be missing
while in initramfs, including USB keyboards, which might be useful in a
rescue shell.
Sidenote: the rescue shell only seems to be spawned on the serial
terminal currently, so having a USB keyboard is still useless in that
regard, but that's another issue.
I feel inclined to agree with the idea of adding the file
> /usr/share/initramfs-tools/modules.d/raspi-firmware.conf
with the contents
> reset_raspberrypi
to the package raspi-firmware, provided that it doesn't interfere with
the rest of the Raspberry Pi family.
Best regards, João Matos