Hi everyone,
It has been a while. I have been busy with other things, mainly a new job, but I still get back to this hobby.
After a lot of comments and suggestions, I have started a re-write of my project so that it will boot on a 64-bit UEFI machine.
After a bit of work, of course having to write all the new 64-bit hardware specific tasks, I have got a working project.
Comments:
1) Even though you try your best not to assume a 32-bit machine, it is amazing how many places my code assumed pointers were 32-bits in size.
2) I (re)wrote the interrupt code to be 64-bit, writing a more efficient and easier to use method.
3) I also had a few bugs that I would never have found unless I did a re-write such as this.
4) Many more improvements and additions.
5) With the improvements, came the improved code for the ACPI, IOAPIC, and the HPET. I am still having issues on some machines with the xHCI, but am working on that as well.
6) I (hopefully) have written the new changes so that a couple of #defines will specify the target and the code should compile for a 32-bit Legacy, 32-bit UEFI, or 64-bit UEFI, simply by changing a few #defines.
I still have some work and testing, but it looks like my code will now work on a 64-bit machine just fine, in 64-bit native mode.
Anyway, just an update and a comment to say I am still here and still interested in this hobby of ours. For those interested, yes, I will be updating my books to show the new content and documentation needed to write a 64-bit kernel.
Hope all is well with you and yours,
Ben
-
http://www.fysnet.net/osdesign_book_series.htm