Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Howdy, I just registered as I plan on taking on my OS project seriously now... I'm starting with AMD64, and I printed the manuals from the site. However, I didn't find the sequence to start long mode... Can anybody point me to a tut or a man that says how?
The long mode startup sequence is outlined in detail in the "AMD64 Architecture Programmer's Manual Volume 2: System Programming Rev 3.13" document, in chapter 14.
The relevant code is in main.cpp, and loader.asm. You'll notice I've also got a workaround for GRUB's inability to read elf64 files. The 32 bit loader is loaded by grub, which then goes into long mode. It reads the elf64 kernel, passed as a GRUB module, and jumps to it once we're in long mode.
Hope that helps. Feel free to contact me if you're stumped.
Thanks a lot guys... I actually found right there in ch14 a piece of code that jumps into 32-bit PM and then 64-bit LM... I am having problems making _that_ code work... I don't know what's wrong....