No, I did not made the 64-bit AROS working natively. Not yet… Instead I was working on 32-bit bootstrap code.
Since the BIOS of x86_64 PCs boots into 16-bit mode and GRUB switches from 16-bit mode into 32-bit one, the new kernel for AROS should be a 32-bit ELF executable. Therefore, the idea of bootstrap was born.
The bootstrap is a small 32-bit application which is loaded by GRUB. It is responsible for setting an environment for 64-bit system up, like the descriptors and MMU page tables. It contains also an ELF-relocator, which is used to load embedded 64-bit ELF image of kernel into arbitrary memory location. The same relocator is used to link any additional modules loaded by GRUB with the kernel.
And you know what?… The bootstrap works already 😀
It’s not an achivement worth mentioning (the binary of bootstrap is less than 12KB), but I felt that I have to share my hapiness with you.