On Tue, Mar 15, 2011 at 11:29:21PM +0100, Sebastian
I was now able to reproduce it:
It happens because your Bochs 2.4.5 version was
x86-64 support and --enable-long-phy-address and only supports
32-bit phys_bits. You can recompile it or upgrade to 2.4.6 to fix
It sounds like SeaBIOS should be able to detect this at runtime and
apply the right mask. The mtrr code in seabios came from Bochs BIOS -
which I think was just for kvm. So, maybe just some tweaks are needed
A Bochs CPU level 6 processor should support 36 bits. SeaBIOS assumes
this and sets phys_bits to 36. If CPUID leaf 0x80000008 is available this assumption
is modified and the supplied value is used. The Bochs CPU code suggests this leaf is
only available on 64-bit CPUs.
If you compile Bochs 2.4.5 without --enable-long-phy-address the valid 36 bit
assumption is violated and you get a family 6 CPU with only 32 bits.
I don't think trying to fix the detection is worth it, because the problem disappears
Bochs version 2.4.6 or --enable-long-phy-address on older versions.