The base address of the LFB appears to be outside of the RAM I've provided to qemu.
I passed the argument -m 512M when running the qemu-system-x86_64 command like so:
Code: Select all
qemu-system-x86_64 -serial stdio -L $(OVMF_DIR) -bios OVMF.fd -cdrom myos.iso -m 512M
Oddly enough, when I write to this location, pixels get plotted on the screen.
Since the FrameBufferBase field in the EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE struct is a EFI_PHYSICAL_ADDRESS, does that mean that the address could be completely outside of the memory given to qemu?
I feel like there's some super obvious rule in the spec I'm just completely overlooking, but I definitely need to understand this before I start assigning my own virtual addresses to things.