Thanks awokd and Taiidan!
You were both right that it had to do with my SeaBIOS configuration. I can now see the "Press ESC for boot menu." screen!
I'll just wrap up this thread with the configurations I used to fix my issue in case someone searches this in the future.
awokd:
PCIe VGA cards have an option ROM (aka blob) in the card's firmware. Most onboard video devices don't have separate firmware, that's why their blob is included in the system's firmware. Ordinarily, Seabios will execute these blobs which then initializes the video cards. However, with this in your Seabios config, I'm not sure how it handles those:
# VGA ROM # CONFIG_NO_VGABIOS=y
Taiidan:
You simply need to select "Execute Option ROM's on PCI-e devices" and "Execute VGA Option ROM's" in menuconfig with the appropriate security settings - this will load it from the card and it is what the factory vendor BIOS does.
I wasn't able to find the options worded in exactly that way on my version of coreboot and SeaBIOS, however setting the following did the equivalent. These settings are not on by default and I had to change them in the menuconfig.
SeaBIOS menuconfig -> VGA ROM -> VGA Hardware Type -> Set to 'coreboot linear framebuffer'
This resulted in the following changes in the SeaBIOS config, where 'CONFIG_NO_VGABIOS=y' was turned off as awokd suspected:
# CONFIG_NO_VGABIOS is not set CONFIG_VGA_COREBOOT=y CONFIG_BUILD_VGABIOS=y CONFIG_VGA_EMULATE_TEXT=y CONFIG_VGA_FIXUP_ASM=y CONFIG_VGA_ALLOCATE_EXTRA_STACK=y CONFIG_VGA_VBE=y
Also, I tried with and without src/device/Kconfig MULTIPLE_VGA_ADAPTERS change and it made no difference. So that can remain turned off.
Here are the versions of coreboot and SeaBIOS I used. Using relatively new commits on master at the time of writing this. coreboot commit: https://review.coreboot.org/cgit/coreboot.git/commit/?id=3cf94032bced9345f4b... SeaBIOS commit: https://review.coreboot.org/cgit/seabios.git/commit/?id=844b86464a5cbfffb62b...
Attached the final configs I used for my system. Make sure to specify the SeaBIOS payload config path in the coreboot menuconfig (to something other than payloads/external/SeaBIOS/seabios/.config) or else make will clobber your SeaBIOS settings.
Thanks!