Hello, As you may have guessed from my musings on the mailing list to date, I've been creating a patch to enable the multiboot2 loader on ARM64/aarch64.
Why? I am playing with GNU Mach (not sure why - blame COVID-19) on Raspberry PI. I guess the key driver for why it's interesting to a wider audience came from Krystian Hebel - "MB2 is one of the most commonly used (if not the most common) boot protocols for hobby OSes.", so I propose we should support it on a platform which in it's various guises is very easily available to hobby programmers. As part of this effort, I've also found that definition of "struct multiboot_tag_elf_sections" does not match the multiboot2 specification documentation and does not align the elf sections to a 8 byte boundary. This causes issues on aarch64 as the 64 bit numbers within the elf sections are then misaligned throughout. Although the version of the structure document in the multiboot2 documentation would align it correctly, the grub and reference implemntations do not match the documentation. Hence, I have created a new struct multiboot_tag_elf64_sections which is correctly aligned, and also given the next available tag number. I have prepared an update to the multiboot2 specification to document this, which will follow seperately. This sequence of patches: 01 - Updates multiboot2 definitions to include the new elf64 tag, adds awareness of the ARCHITECTURE_AARCH64 to multiboot2. 02 - Add relocator code for ARM64, based on MIPS code 03 - Adds mmap_ functions on ARM64 to support multiboot loader 04 - Adds aarch64 target to the ifdefs in multiboot loader code 05 - Updates Makefile.core.def to compile the multiboot2 loader on the arm-efi target. I apologise for any inadvertant breach of ettique in the way these patches are presented - I'm a bit new to this text patch process but I've tried my best. Signed-off-by: Chris Plant <ch...@monkeyircd.org> _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel