Changeset 85353 in vbox for trunk/src/VBox
- Timestamp:
- Jul 15, 2020 4:40:28 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 139348
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/tools/VBoxCpuReport.cpp
r82969 r85353 523 523 #endif 524 524 /* Skip 0xc0011012..13 as it seems to be bad for our health (Phenom II X6 1100T). */ 525 /* Ditto for 0x0000002ff (MSR_IA32_MTRR_DEF_TYPE) on AMD (Ryzen 7 1800X). */ 525 526 /* Ditto for 0x0000002a (EBL_CR_POWERON) and 0x00000277 (MSR_IA32_CR_PAT) on Intel (Atom 330). */ 526 527 /* And more of the same for 0x280 on Intel Pentium III. */ 527 528 if ( ((uMsr >= 0xc0011012 && uMsr <= 0xc0011013) && (g_enmVendor == CPUMCPUVENDOR_AMD || g_enmVendor == CPUMCPUVENDOR_HYGON)) 529 || ( uMsr == 0x2ff 530 && (g_enmVendor == CPUMCPUVENDOR_AMD || g_enmVendor == CPUMCPUVENDOR_HYGON) 531 && g_enmMicroarch >= kCpumMicroarch_AMD_Zen_First) 528 532 || ( (uMsr == 0x2a || uMsr == 0x277) 529 533 && g_enmVendor == CPUMCPUVENDOR_INTEL … … 2527 2531 case 0xc001001a: 2528 2532 case 0xc001001d: 2533 2534 case 0xc0010058: /* MMIO Configuration Base Address on AMD Zen CPUs. */ 2535 if (CPUMMICROARCH_IS_AMD_FAM_ZEN(g_enmMicroarch)) 2536 return VBCPUREPBADNESS_BOND_VILLAIN; 2537 break; 2538 2529 2539 case 0xc0010064: /* P-state fequency, voltage, ++. */ 2530 2540 case 0xc0010065: /* P-state fequency, voltage, ++. */ … … 3367 3377 fSkipMask |= UINT64_C(0x0000000ffffff000); 3368 3378 3379 /* @todo This makes the host unstable on a AMD Ryzen 1800X CPU, skip everything for now. 3380 * Figure out exactly what causes the issue. 3381 */ 3382 if ( g_enmMicroarch >= kCpumMicroarch_AMD_Zen_First 3383 && g_enmMicroarch >= kCpumMicroarch_AMD_Zen_End) 3384 fSkipMask |= UINT64_C(0xffffffffffffffff); 3385 3369 3386 return reportMsr_GenFunctionEx(uMsr, "Ia32ApicBase", uValue, fSkipMask, 0, NULL); 3370 3387 } … … 3564 3581 /* Had a spot of trouble on an old macbook pro with core2 duo T9900 (penryn) 3565 3582 running 64-bit win81pe. Not giving PAT such a scrutiny fixes it. */ 3583 /* This hangs the host on a AMD Ryzen 1800X CPU */ 3566 3584 if ( uMsr != 0x00000277 3567 3585 || ( g_enmVendor == CPUMCPUVENDOR_INTEL 3568 3586 ? g_enmMicroarch >= kCpumMicroarch_Intel_Core7_First 3569 3587 : g_enmVendor == CPUMCPUVENDOR_AMD || g_enmVendor == CPUMCPUVENDOR_HYGON 3570 ? g_enmMicroarch != kCpumMicroarch_AMD_K8_90nm_AMDV 3588 ? ( g_enmMicroarch != kCpumMicroarch_AMD_K8_90nm_AMDV 3589 && !CPUMMICROARCH_IS_AMD_FAM_ZEN(g_enmMicroarch)) 3571 3590 : true) ) 3572 3591 { … … 3644 3663 cRegs++; 3645 3664 } 3646 if (cRegs & 3) 3665 3666 /** aeichner: An AMD Ryzen 7 1800X CPU triggers this and I'm too lazy to check the correctness in detail. */ 3667 if ( (cRegs & 3) 3668 && !CPUMMICROARCH_IS_AMD_FAM_ZEN(g_enmMicroarch)) 3647 3669 return RTMsgErrorRc(VERR_INVALID_PARAMETER, "MC MSR range is odd: cRegs=%#x\n", cRegs); 3648 3670
Note:
See TracChangeset
for help on using the changeset viewer.