UEFI bootup on AArch64
Posted: Thu Jan 21, 2021 11:52 am
Hello,
i am trying to port a research operating system from x64 to AArch64. And encountered the problem that objcopy has no target efi-app-aarch64. Even pei-arm-little seems to be broken with made up magic numbers. I have found three possible approaches to deal with that.
The easiest way seems to pluck elf2efi from iPXE and extend it. Is it sufficient to copy the content unsupported sections from the ELF to the PE and set the right characteristics?
Gnuefi generates the efi header in assembly and relocates itself. But everything except the data seems to be put in the text section.
The most elegant way seems to me to use clang, lld and the gnuefi headers. But I can't switch from GCC to clang without a lot of effort, otherwise I would have to rewrite our plugins.
Did I miss something? A bootloader or other project that can load ELFs like under x64? I just want to get the contents of my ELF loaded into memory without making too big changes to the section structure and at the same time I would like to have access to stuff like the device tree and the memory map.
Any advice is appreciated.
i am trying to port a research operating system from x64 to AArch64. And encountered the problem that objcopy has no target efi-app-aarch64. Even pei-arm-little seems to be broken with made up magic numbers. I have found three possible approaches to deal with that.
The easiest way seems to pluck elf2efi from iPXE and extend it. Is it sufficient to copy the content unsupported sections from the ELF to the PE and set the right characteristics?
Gnuefi generates the efi header in assembly and relocates itself. But everything except the data seems to be put in the text section.
The most elegant way seems to me to use clang, lld and the gnuefi headers. But I can't switch from GCC to clang without a lot of effort, otherwise I would have to rewrite our plugins.
Did I miss something? A bootloader or other project that can load ELFs like under x64? I just want to get the contents of my ELF loaded into memory without making too big changes to the section structure and at the same time I would like to have access to stuff like the device tree and the memory map.
Any advice is appreciated.