I've come upon a curious issue with Bochs. Under question is a long-mode kernel with the following initial page structure:
Code: Select all
0x0000000000000000 identity maps physical 0x0..0x200000
0xFFFFFFFF80000000 (i.e. -2GB) maps physical 0x0..0x200000
0xFFFFFFFFC0000000 (i.e. -1GB) maps dynamically allocated pages for the kernel stack
0xFFFFFF8000000000 (i.e. 510th PML4) maps unto itself
Code: Select all
<bochs:1> info tab
cr3: 0x000000101000
0x00000000-0x001fffff -> 0x000000000000-0x0000001fffff
<bochs:2> page 0xFFFFFFFF80000000
PML4: 0x0000000000102003 ps a pcd pwt S W P
PDPE: 0x0000000000103003 ps a pcd pwt S W P
PDE: 0x0000000000105003 ps a pcd pwt S W P
PTE: 0x0000000000000003 g pat d a pcd pwt S W P
linear page 0xffffffff80000000 maps to physical page 0x000000000000
A search of the Bochs trackers and mailing lists turned up nothing. Is this a known issue, or am I missing something?
(running Bochs 2.6.2 compiled from the Arch build system w/ custom flags)