Do not report Architectural Performance Monitoring in CPUID

Reporting true capabilities breaks Win7 x64 installation
This commit is contained in:
Stanislav Shwartsman 2013-05-07 15:34:58 +00:00
parent 694dc8a0e1
commit 1304b3fb4b
7 changed files with 42 additions and 0 deletions

View File

@ -417,10 +417,16 @@ void atom_n270_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const
void atom_n270_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
{
// CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
/*
leaf->eax = 0x07280203;
leaf->ebx = 0x00000000;
leaf->ecx = 0x00000000;
leaf->edx = 0x00002501;
*/
leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation
leaf->ebx = 0;
leaf->ecx = 0;
leaf->edx = 0;
BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
}

View File

@ -468,10 +468,16 @@ void core2_penryn_t9600_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const
void core2_penryn_t9600_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
{
// CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
/*
leaf->eax = 0x07280202;
leaf->ebx = 0x00000000;
leaf->ecx = 0x00000000;
leaf->edx = 0x00000503;
*/
leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation
leaf->ebx = 0;
leaf->ecx = 0;
leaf->edx = 0;
BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
}

View File

@ -417,10 +417,16 @@ void core_duo_t2400_yonah_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const
void core_duo_t2400_yonah_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
{
// CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
/*
leaf->eax = 0x07280201;
leaf->ebx = 0x00000000;
leaf->ecx = 0x00000000;
leaf->edx = 0x00000000;
*/
leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation
leaf->ebx = 0;
leaf->ecx = 0;
leaf->edx = 0;
BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
}

View File

@ -492,10 +492,16 @@ void corei5_arrandale_m520_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const
void corei5_arrandale_m520_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
{
// CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
/*
leaf->eax = 0x07300403;
leaf->ebx = 0x00000004;
leaf->ecx = 0x00000000;
leaf->edx = 0x00000603;
*/
leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation
leaf->ebx = 0;
leaf->ecx = 0;
leaf->edx = 0;
BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
}

View File

@ -468,10 +468,16 @@ void corei5_lynnfield_750_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) const
void corei5_lynnfield_750_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
{
// CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
/*
leaf->eax = 0x07300403;
leaf->ebx = 0x00000044;
leaf->ecx = 0x00000000;
leaf->edx = 0x00000603;
*/
leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation
leaf->ebx = 0;
leaf->ecx = 0;
leaf->edx = 0;
BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
}

View File

@ -555,10 +555,16 @@ void corei7_ivy_bridge_3770k_t::get_std_cpuid_leaf_7(Bit32u subfunction, cpuid_f
void corei7_ivy_bridge_3770k_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
{
// CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
/*
leaf->eax = 0x07300403;
leaf->ebx = 0x00000000;
leaf->ecx = 0x00000000;
leaf->edx = 0x00000603;
*/
leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation
leaf->ebx = 0;
leaf->ecx = 0;
leaf->edx = 0;
BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
}

View File

@ -514,10 +514,16 @@ void corei7_sandy_bridge_2600k_t::get_std_cpuid_leaf_6(cpuid_function_t *leaf) c
void corei7_sandy_bridge_2600k_t::get_std_cpuid_leaf_A(cpuid_function_t *leaf) const
{
// CPUID function 0x0000000A - Architectural Performance Monitoring Leaf
/*
leaf->eax = 0x07300803;
leaf->ebx = 0x00000000;
leaf->ecx = 0x00000000;
leaf->edx = 0x00000603;
*/
leaf->eax = 0; // reporting true capabilities breaks Win7 x64 installation
leaf->ebx = 0;
leaf->ecx = 0;
leaf->edx = 0;
BX_INFO(("WARNING: Architectural Performance Monitoring is not implemented"));
}