On 08/07/2016 20:59, Eduardo Habkost wrote: > > + if (env->features[FEAT_1_EDX] & CPUID_PSE36) { > > + cpu->phys_bits = 36; > > + } else { > > + cpu->phys_bits = 32; > > But TCG_PHYS_ADDR_BITS is still 36. Does this mean TCG > reserved-bit handling is broken if pse36 is disabled?
This makes sense as a default, apparently if you don't have PSE36 but you have phys_bits > 32, Windows complains: commit 45fd08effd461f85d0480d3b8f85a07751fc55b3 Author: aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> Date: Tue Oct 14 19:20:52 2008 +0000 target-i386: Add Core Duo Definition This patch adds a CPU definition for the Core Duo CPU. I tried to resemble the original as closely as possible and document what features are missing still. This patch enables the use of a recent CPU definition on 32 bit platforms. It also fixes two issues that went along the line: - invalid xlevel in core2duo spec While looking though the CPUIDs again, I found that xlevel is actually 8. - non-PSE36 support The CoreDuo CPUID does not expose the PSE36 capability, but CPUID 0x80000008 is tied to 36 bits. This broke Windows XP installation for me, so I just set it to 32 bits width when PSE36 is not available. The original CPU also exposes 32 bit width in CPUID 0x80000008. Signed-off-by: Alexander Graf <ag...@suse.de> Signed-off-by: Aurelien Jarno <aurel...@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5488 c046a42c-6fe2-441c-8c8c-71466251a162 As long as it's overridable I guess it's fine... Paolo