Referring to this firmware: https://github.com/pftf/RPi4
TLDR; v1.21 + latest EEPROM works
As many have discovered, v1.19 and v1.20 of the firmware were broken due
to problems handling the devicetree. I found discussion of it here:
https://github.com/raspberrypi/firmware/issues/1445 and here:
https://github.com/raspberrypi/firmware/issues/1489
v1.21 was released a couple days ago. I just tested it and the problem
has been solved. It also works without the need for a serial console.
The whole thing can be done from keyboard+monitor console. This may have
been possible in a few previous versions, but I never bothered testing it.
I can confirm that as of at least v1.21 no serial console is necessary.
For those who land here via Google, read the directions in the page linked
at the top. The latest versions are found here:
https://github.com/pftf/RPi4/releases
Follow the directions up to the point of seeing the UEFI screen. From
there:
Device Manager -> Raspberry Pi Configuration -> Advanced Configuration:
Limit RAM to 3 GB: Disabled (OpenBSD doesn't need this)
System Table Connection: ACPI + Devicetree
Save, Esc back to top, reset, enjoy (or curse at the next problem that
pops up).
I have seen no difference between "Devicetree" and "ACPI + Devicetree",
but "ACPI" without devicetree will fail. I grabbed a dmesg from
both and did a diff. The only difference was memory usage. Someone
smarter that I might confirm if ACPI is needed at all.
It is important to have the lastest RPi 4 EEPROM code. I am using the
version from 2020-09-14. See here:
https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md
It is claimed that booting entirely from USB without the SD card is
possible with the lastest EEPROM, but I have not tried it yet.