Files
lk/lib/uefi
Kelvin Zhang b10701feaa [lib][uefi] Make load_pe_file extern linkage
This function was previously put in anon namespace, making it
unavailable for other source files to consume. Since we made this
function an API for consumption, move outside anon namespace so
that linkers can find it.
2025-05-28 16:04:10 -07:00
..
2024-11-06 10:12:17 -08:00

Build

make qemu-virt-arm64-test

Note, this may fail if your system does not have aarch64-elf-gcc installed. To address, download from here, unzip, and add the extracted dir to PATH.

Run

qemu-system-aarch64 -cpu max -m 512 -smp 1 -machine virt,highmem=off \
	-kernel build-qemu-virt-arm64-test/lk.elf \
	-net none -nographic \
	-drive if=none,file=lib/uefi/helloworld_aa64.efi,id=blk,format=raw \
	-device virtio-blk-device,drive=blk

Once you see the main console prompt, enter uefi_load virtio0 to load the hello world UEFI application.

starting app shell
entering main console loop
] uefi_load virtio0
bio_read returns 4096, took 1 msecs (4096000 bytes/sec)
PE header machine type: aa64
Valid UEFI application found.
Entry function located at 0xffff000780067380
Hello World!