This issue might be obvious, but maybe some could help out.
I've been writing a 64bit kernel and want to detect the memory size and layout for the kernel heap.
Since - as far as I've read and understand - grub only reports up to 4GB of RAM, I started looking at the INT 15h e820 BIOS call.
After GRUB2 handoff, I disable interrupts and do the INT 15 ah=0xe820 call, however it never returns to the caller function or ASM snippet but always to address 0xe05b.
In this case the return address should be 0x507d - so it's not an address turncation issue.
1) Any ideas what the reason might be?
2) Is there a better way to detect memory above 4GB?
I skipped the code, since I don't belive it will to be relevant. How ever if requested I will post it.

Regards,
Mao