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.
The memory at the top of the 32 bit adress space (00000000FFFC0000) seems to be the bios memory space.
When switching to 64bit long mode, will the bios memory change to the top of 64 bit adress space (FFFFFFFFFFFC0000) or stay at the same adress (00000000FFFC0000) ?
Baold wrote:When switching to 64bit long mode, will the bios memory change to the top of 64 bit adress space (FFFFFFFFFFFC0000) or stay at the same adress (00000000FFFC0000) ?
The physical memory layout (including where the BIOS is) is controlled by the chipset. The chipset doesn't know (or care) what mode the CPU is running in, and nothing in physical memory changes when you switch to long mode (or from any CPU mode to any other CPU mode).
However, to enable long mode you need to setup paging. This means you create your own virtual address space that might (or might not) look like the physical address space. You choose how virtual addresses are mapped to physical addresses.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.