This is great, thank you so much! I will take a thorough look at this and send a much better proposal with work breakdown.
Hi Saad Mahmood,
I'm not the most familiar with EFI, but maybe I can help.
It might be worth taking a look at the x86-efiboot code to see what you
are up against.
Get netbsd-current (easiest from this github mirror:
https://github.com/netbsd/src) and take a look at
sys/arch/i386/stand/efiboot.
This file becomes /usr/mdec/*.efi in a regular install on x86
(regular tools like 'objdump -d' actually work on it!)
Try to understand which parts are x86 specific, and which aren't.
The assembly files surely are, so there's a bit of assembly too.
Note that there might be some non-netbsd code you can reuse, so you will
not need to do everything from scratch.
You're missing a written plan for how to divide your time to the various
tasks, and also the tasks themselves.
A crude plan is:
- Familiarize with relevant parts (setup QEMU+UEFI, FDT, ARM assembly...)
- Copy paste the code and add to the build system
- Adapt x86 code
- <lots of work until it works>
- Deduplicate your implementation, cleanup