Changeset 76886 in vbox
- Timestamp:
- Jan 18, 2019 10:57:02 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 22 edited
-
include/VBox/vmm/cpum.h (modified) (2 diffs)
-
include/iprt/asm-amd64-x86.h (modified) (1 diff)
-
include/iprt/x86.h (modified) (1 diff)
-
include/iprt/x86.mac (modified) (2 diffs)
-
src/VBox/HostDrivers/Support/SUPDrv.cpp (modified) (5 diffs)
-
src/VBox/Main/src-server/HostImpl.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMAll/GIMAll.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMAll/GIMAllHv.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR0/CPUMR0.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/CPUM.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp (modified) (5 diffs)
-
src/VBox/VMM/VMMR3/CPUMR3Db.cpp (modified) (2 diffs)
-
src/VBox/VMM/VMMR3/HM.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/TM.cpp (modified) (1 diff)
-
src/VBox/VMM/tools/VBoxCpuReport.cpp (modified) (15 diffs)
-
src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c (modified) (1 diff)
-
src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h (modified) (1 diff)
-
src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-GetCpuVendor.c (modified) (1 diff)
-
src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h (modified) (1 diff)
-
src/VBox/ValidationKit/testdriver/vbox.py (modified) (1 diff)
-
src/VBox/ValidationKit/testdriver/vboxtestvms.py (modified) (2 diffs)
-
src/VBox/ValidationKit/testmanager/core/testbox.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpum.h
r76678 r76886 95 95 CPUMCPUVENDOR_VIA, 96 96 CPUMCPUVENDOR_CYRIX, 97 CPUMCPUVENDOR_SHANGHAI, 97 98 CPUMCPUVENDOR_UNKNOWN, 98 99 /** 32bit hackishness. */ … … 265 266 kCpumMicroarch_NEC_V30, 266 267 kCpumMicroarch_NEC_End, 268 269 kCpumMicroarch_Shanghai_First, 270 kCpumMicroarch_Shanghai_Wudaokou = kCpumMicroarch_Shanghai_First, 271 kCpumMicroarch_Shanghai_Unknown, 272 kCpumMicroarch_Shanghai_End, 267 273 268 274 kCpumMicroarch_Unknown, -
trunk/include/iprt/asm-amd64-x86.h
r76585 r76886 1476 1476 1477 1477 /** 1478 * Tests if it a Shanghai CPU based on the ASMCpuId(0) output. 1479 * 1480 * @returns true/false. 1481 * @param uEBX EBX return from ASMCpuId(0). 1482 * @param uECX ECX return from ASMCpuId(0). 1483 * @param uEDX EDX return from ASMCpuId(0). 1484 */ 1485 DECLINLINE(bool) ASMIsShanghaiCpuEx(uint32_t uEBX, uint32_t uECX, uint32_t uEDX) 1486 { 1487 return uEBX == UINT32_C(0x68532020) 1488 && uECX == UINT32_C(0x20206961) 1489 && uEDX == UINT32_C(0x68676e61); 1490 } 1491 1492 1493 /** 1494 * Tests if this is a Shanghai CPU. 1495 * 1496 * @returns true/false. 1497 * @remarks ASSUMES that cpuid is supported by the CPU. 1498 */ 1499 DECLINLINE(bool) ASMIsShanghaiCpu(void) 1500 { 1501 uint32_t uEAX, uEBX, uECX, uEDX; 1502 ASMCpuId(0, &uEAX, &uEBX, &uECX, &uEDX); 1503 return ASMIsShanghaiCpuEx(uEBX, uECX, uEDX); 1504 } 1505 1506 1507 /** 1478 1508 * Checks whether ASMCpuId_EAX(0x00000000) indicates a valid range. 1479 1509 * -
trunk/include/iprt/x86.h
r76678 r76886 397 397 #define X86_CPUID_VENDOR_VIA_ECX 0x736c7561 /* auls */ 398 398 #define X86_CPUID_VENDOR_VIA_EDX 0x48727561 /* aurH */ 399 400 #define X86_CPUID_VENDOR_SHANGHAI_EBX 0x68532020 /* Sh */ 401 #define X86_CPUID_VENDOR_SHANGHAI_ECX 0x20206961 /* ai */ 402 #define X86_CPUID_VENDOR_SHANGHAI_EDX 0x68676e61 /* angh */ 399 403 /** @} */ 400 404 -
trunk/include/iprt/x86.mac
r76678 r76886 28 28 %ifndef IPRT_INCLUDED_x86_h 29 29 %define IPRT_INCLUDED_x86_h 30 %ifndef RT_WITHOUT_PRAGMA_ONCE 31 %endif 30 32 %ifndef VBOX_FOR_DTRACE_LIB 31 33 %else … … 86 88 %define X86_CPUID_VENDOR_VIA_ECX 0x736c7561 87 89 %define X86_CPUID_VENDOR_VIA_EDX 0x48727561 90 %define X86_CPUID_VENDOR_SHANGHAI_EBX 0x68532020 91 %define X86_CPUID_VENDOR_SHANGHAI_ECX 0x20206961 92 %define X86_CPUID_VENDOR_SHANGHAI_EDX 0x68676e61 88 93 %define X86_CPUID_FEATURE_ECX_SSE3 RT_BIT_32(0) 89 94 %define X86_CPUID_FEATURE_ECX_PCLMUL RT_BIT_32(1) -
trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp
r76553 r76886 4150 4150 /* Check if the vendor is Intel (or compatible). */ 4151 4151 if ( ASMIsIntelCpuEx(uVendorEbx, uVendorEcx, uVendorEdx) 4152 || ASMIsViaCentaurCpuEx(uVendorEbx, uVendorEcx, uVendorEdx)) 4152 || ASMIsViaCentaurCpuEx(uVendorEbx, uVendorEcx, uVendorEdx) 4153 || ASMIsShanghaiCpuEx(uVendorEbx, uVendorEcx, uVendorEdx)) 4153 4154 { 4154 4155 /* Check VT-x support. In addition, VirtualBox requires MSR and FXSAVE/FXRSTOR to function. */ … … 4198 4199 * @remarks Must be called with preemption disabled. 4199 4200 * The caller is also expected to check that the CPU is an Intel (or 4200 * VIA ) CPU -and- that it supports VT-x. Otherwise, this function4201 * might throw a \#GP fault as it tries to read/write MSRs that may not4202 * be present!4201 * VIA/Shanghai) CPU -and- that it supports VT-x. Otherwise, this 4202 * function might throw a \#GP fault as it tries to read/write MSRs 4203 * that may not be present! 4203 4204 */ 4204 4205 SUPR0DECL(int) SUPR0GetVmxUsability(bool *pfIsSmxModeAmbiguous) … … 4268 4269 Assert(ASMIsValidStdRange(uMaxId)); 4269 4270 Assert( ASMIsIntelCpuEx( uVendorEBX, uVendorECX, uVendorEDX) 4270 || ASMIsViaCentaurCpuEx(uVendorEBX, uVendorECX, uVendorEDX)); 4271 || ASMIsViaCentaurCpuEx(uVendorEBX, uVendorECX, uVendorEDX) 4272 || ASMIsShanghaiCpuEx( uVendorEBX, uVendorECX, uVendorEDX)); 4271 4273 #endif 4272 4274 ASMCpuId(1, &uDummy, &uDummy, &fFeaturesECX, &uDummy); … … 4373 4375 * @retval VERR_SVM_DISABLED 4374 4376 * @retval VERR_UNSUPPORTED_CPU if not identifiable as an AMD, Intel or VIA 4375 * (centaur) CPU.4377 * (centaur)/Shanghai CPU. 4376 4378 * 4377 4379 * @param pfCaps Where to store the capabilities. … … 4456 4458 * @retval VERR_SVM_DISABLED 4457 4459 * @retval VERR_UNSUPPORTED_CPU if not identifiable as an AMD, Intel or VIA 4458 * (centaur) CPU.4460 * (centaur)/Shanghai CPU. 4459 4461 * 4460 4462 * @param pSession The session handle. -
trunk/src/VBox/Main/src-server/HostImpl.cpp
r76592 r76886 334 334 /* VT-x? */ 335 335 if ( ASMIsIntelCpuEx(uVendorEBX, uVendorECX, uVendorEDX) 336 || ASMIsViaCentaurCpuEx(uVendorEBX, uVendorECX, uVendorEDX)) 336 || ASMIsViaCentaurCpuEx(uVendorEBX, uVendorECX, uVendorEDX) 337 || ASMIsShanghaiCpuEx(uVendorEBX, uVendorECX, uVendorEDX)) 337 338 { 338 339 if ( (fFeaturesEcx & X86_CPUID_FEATURE_ECX_VMX) -
trunk/src/VBox/VMM/VMMAll/GIMAll.cpp
r76553 r76886 436 436 case CPUMCPUVENDOR_INTEL: 437 437 case CPUMCPUVENDOR_VIA: 438 case CPUMCPUVENDOR_SHANGHAI: 438 439 { 439 440 if (puDisOpcode) -
trunk/src/VBox/VMM/VMMAll/GIMAllHv.cpp
r76553 r76886 1403 1403 if ( ( uDisOpcode == OP_VMCALL 1404 1404 && ( enmGuestCpuVendor == CPUMCPUVENDOR_INTEL 1405 || enmGuestCpuVendor == CPUMCPUVENDOR_VIA)) 1405 || enmGuestCpuVendor == CPUMCPUVENDOR_VIA 1406 || enmGuestCpuVendor == CPUMCPUVENDOR_SHANGHAI)) 1406 1407 || ( uDisOpcode == OP_VMMCALL 1407 1408 && enmGuestCpuVendor == CPUMCPUVENDOR_AMD)) -
trunk/src/VBox/VMM/VMMR0/CPUMR0.cpp
r76678 r76886 784 784 if ( ( ASMIsIntelCpuEx(u32EBX, u32ECX, u32EDX) 785 785 || ASMIsAmdCpuEx(u32EBX, u32ECX, u32EDX) 786 || ASMIsViaCentaurCpuEx(u32EBX, u32ECX, u32EDX)) 786 || ASMIsViaCentaurCpuEx(u32EBX, u32ECX, u32EDX) 787 || ASMIsShanghaiCpuEx(u32EBX, u32ECX, u32EDX)) 787 788 && ASMIsValidStdRange(uMaxLeaf)) 788 789 { -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r76877 r76886 1149 1149 PCCPUMFEATURES pGuestFeatures = &pVM->cpum.s.GuestFeatures; 1150 1150 if ( pHostFeatures->enmCpuVendor == CPUMCPUVENDOR_INTEL 1151 || pHostFeatures->enmCpuVendor == CPUMCPUVENDOR_VIA) 1151 || pHostFeatures->enmCpuVendor == CPUMCPUVENDOR_VIA 1152 || pHostFeatures->enmCpuVendor == CPUMCPUVENDOR_SHANGHAI) 1152 1153 { 1153 1154 #define VMXFEATDUMP(a_szDesc, a_Var) \ -
trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp
r76678 r76886 431 431 } 432 432 433 if (enmVendor == CPUMCPUVENDOR_SHANGHAI) 434 { 435 switch (bFamily) 436 { 437 case 6: 438 case 7: 439 return kCpumMicroarch_Shanghai_Wudaokou; 440 default: 441 break; 442 } 443 return kCpumMicroarch_Shanghai_Unknown; 444 } 445 433 446 if (enmVendor == CPUMCPUVENDOR_CYRIX) 434 447 { … … 588 601 CASE_RET_STR(kCpumMicroarch_VIA_Isaiah); 589 602 CASE_RET_STR(kCpumMicroarch_VIA_Unknown); 603 604 CASE_RET_STR(kCpumMicroarch_Shanghai_Wudaokou); 605 CASE_RET_STR(kCpumMicroarch_Shanghai_Unknown); 590 606 591 607 CASE_RET_STR(kCpumMicroarch_Cyrix_5x86); … … 619 635 case kCpumMicroarch_Cyrix_End: 620 636 case kCpumMicroarch_NEC_End: 637 case kCpumMicroarch_Shanghai_End: 621 638 case kCpumMicroarch_32BitHack: 622 639 break; … … 1603 1620 return CPUMCPUVENDOR_VIA; 1604 1621 1622 if (ASMIsShanghaiCpuEx(uEBX, uECX, uEDX)) 1623 return CPUMCPUVENDOR_SHANGHAI; 1624 1605 1625 if ( uEBX == UINT32_C(0x69727943) /* CyrixInstead */ 1606 1626 && uECX == UINT32_C(0x64616574) … … 1634 1654 case CPUMCPUVENDOR_VIA: return "VIA"; 1635 1655 case CPUMCPUVENDOR_CYRIX: return "CYRIX"; 1656 case CPUMCPUVENDOR_SHANGHAI: return "SHANGHAI"; 1636 1657 case CPUMCPUVENDOR_UNKNOWN: return "UNKNOWN"; 1637 1658 -
trunk/src/VBox/VMM/VMMR3/CPUMR3Db.cpp
r76678 r76886 215 215 #include "cpus/VIA_QuadCore_L4700_1_2_GHz.h" 216 216 217 #include "cpus/ZHAOXIN_KaiXian_KX_U5581_1_8GHz.h" 218 217 219 218 220 … … 304 306 #ifdef VBOX_CPUDB_AMD_Athlon_64_3200_h 305 307 &g_Entry_AMD_Athlon_64_3200, 308 #endif 309 310 #ifdef VBOX_CPUDB_ZHAOXIN_KaiXian_KX_U5581_1_8GHz_h 311 &g_Entry_ZHAOXIN_KaiXian_KX_U5581_1_8GHz, 306 312 #endif 307 313 -
trunk/src/VBox/VMM/VMMR3/HM.cpp
r76678 r76886 1090 1090 #undef HM_REG_COUNTER 1091 1091 1092 const char *const *papszDesc = ASMIsIntelCpu() || ASMIsViaCentaurCpu() ? &g_apszVmxExitReasons[0] 1093 : &g_apszSvmExitReasons[0]; 1092 const char *const *papszDesc = 1093 ASMIsIntelCpu() || ASMIsViaCentaurCpu() || ASMIsShanghaiCpu() 1094 ? &g_apszVmxExitReasons[0] 1095 : &g_apszSvmExitReasons[0]; 1094 1096 1095 1097 /* -
trunk/src/VBox/VMM/VMMR3/TM.cpp
r76553 r76886 957 957 return true; 958 958 } 959 else if (CPUMGetHostCpuVendor(pVM) == CPUMCPUVENDOR_SHANGHAI) 960 { 961 /* 962 * Shanghai - Check the model, family and stepping. 963 */ 964 /** @todo use ASMGetCpuFamily() and ASMGetCpuModel() here. */ 965 ASMCpuId(1, &uEAX, &uEBX, &uECX, &uEDX); 966 unsigned uFamily = (uEAX >> 8) & 0x0f; 967 if ( uFamily == 0x06 968 || uFamily == 0x07) 969 { 970 return true; 971 } 972 } 959 973 } 960 974 return false; -
trunk/src/VBox/VMM/tools/VBoxCpuReport.cpp
r76553 r76886 548 548 if (!fGp) 549 549 fFlags = 0; 550 /* VIA HACK - writing to 0x0000317e on a quad core make the core unresponsive. */551 else if (uMsr == 0x0000317e && g_enmVendor == CPUMCPUVENDOR_VIA)550 /* VIA/Shanghai HACK - writing to 0x0000317e on a quad core make the core unresponsive. */ 551 else if (uMsr == 0x0000317e && (g_enmVendor == CPUMCPUVENDOR_VIA || g_enmVendor == CPUMCPUVENDOR_SHANGHAI)) 552 552 { 553 553 uValue = 0; … … 601 601 if (RT_FAILURE(rc)) 602 602 return RTMsgErrorRc(rc, "Out of memory (uMsr=%#x).\n", uMsr); 603 if ( g_enmVendor != CPUMCPUVENDOR_VIA603 if ( (g_enmVendor != CPUMCPUVENDOR_VIA && g_enmVendor != CPUMCPUVENDOR_SHANGHAI) 604 604 || uValue 605 605 || fFlags) … … 2515 2515 case 0x00001438: 2516 2516 case 0x0000317f: 2517 if (g_enmVendor == CPUMCPUVENDOR_VIA )2517 if (g_enmVendor == CPUMCPUVENDOR_VIA || g_enmVendor == CPUMCPUVENDOR_SHANGHAI) 2518 2518 return VBCPUREPBADNESS_BOND_VILLAIN; 2519 2519 break; … … 2602 2602 2603 2603 /** 2604 * Checks if this might be a VIA dummy register.2604 * Checks if this might be a VIA/Shanghai dummy register. 2605 2605 * 2606 2606 * @returns true if it's a dummy, false if it isn't. … … 2609 2609 * @param fFlags The flags. 2610 2610 */ 2611 static bool isMsrVia Dummy(uint32_t uMsr, uint64_t uValue, uint32_t fFlags)2612 { 2613 if (g_enmVendor != CPUMCPUVENDOR_VIA )2611 static bool isMsrViaShanghaiDummy(uint32_t uMsr, uint64_t uValue, uint32_t fFlags) 2612 { 2613 if (g_enmVendor != CPUMCPUVENDOR_VIA && g_enmVendor != CPUMCPUVENDOR_SHANGHAI) 2614 2614 return false; 2615 2615 … … 3213 3213 || fGpMaskN != fGpMask0) 3214 3214 { 3215 if (!fEarlyEndOk && !isMsrVia Dummy(uMsr, paMsrs[i].uValue, paMsrs[i].fFlags))3215 if (!fEarlyEndOk && !isMsrViaShanghaiDummy(uMsr, paMsrs[i].uValue, paMsrs[i].fFlags)) 3216 3216 { 3217 3217 vbCpuRepDebug("MSR %s (%#x) range ended unexpectedly early on %#x: ro=%d ign=%#llx/%#llx gp=%#llx/%#llx [N/0]\n", … … 3303 3303 3304 3304 /** 3305 * Reports a VIA dummy range.3305 * Reports a VIA/Shanghai dummy range. 3306 3306 * 3307 3307 * @returns VBox status code. … … 3311 3311 * last MSR entry in the range. 3312 3312 */ 3313 static int reportMsr_Via DummyRange(VBCPUREPMSR const *paMsrs, uint32_t cMsrs, uint32_t *pidxLoop)3313 static int reportMsr_ViaShanghaiDummyRange(VBCPUREPMSR const *paMsrs, uint32_t cMsrs, uint32_t *pidxLoop) 3314 3314 { 3315 3315 /* Figure how many. */ … … 3318 3318 while ( cRegs < cMsrs 3319 3319 && paMsrs[cRegs].uMsr == uMsr + cRegs 3320 && isMsrVia Dummy(paMsrs[cRegs].uMsr, paMsrs[cRegs].uValue, paMsrs[cRegs].fFlags))3320 && isMsrViaShanghaiDummy(paMsrs[cRegs].uMsr, paMsrs[cRegs].uValue, paMsrs[cRegs].fFlags)) 3321 3321 { 3322 3322 cRegs++; … … 3458 3458 while ( cRegs < cMsrs 3459 3459 && paMsrs[cRegs].uMsr == uMsr + cRegs 3460 && !isMsrVia Dummy(paMsrs[cRegs].uMsr, paMsrs[cRegs].uValue, paMsrs[cRegs].fFlags) )3460 && !isMsrViaShanghaiDummy(paMsrs[cRegs].uMsr, paMsrs[cRegs].uValue, paMsrs[cRegs].fFlags) ) 3461 3461 cRegs++; 3462 3462 if (cRegs & 1) … … 4200 4200 * want to handle there to avoid making the code below unreadable. 4201 4201 */ 4202 else if (isMsrViaDummy(uMsr, uValue, fFlags)) 4203 rc = reportMsr_ViaDummyRange(&paMsrs[i], cMsrs - i, &i); 4202 /** @todo r=klaus check if Shanghai CPUs really are behaving the same */ 4203 else if (isMsrViaShanghaiDummy(uMsr, uValue, fFlags)) 4204 rc = reportMsr_ViaShanghaiDummyRange(&paMsrs[i], cMsrs - i, &i); 4204 4205 /* 4205 4206 * This shall be sorted by uMsr as much as possible. … … 4567 4568 case CPUMCPUVENDOR_VIA: return "VIA"; 4568 4569 case CPUMCPUVENDOR_CYRIX: return "Cyrix"; 4570 case CPUMCPUVENDOR_SHANGHAI: return "Shanghai"; 4569 4571 case CPUMCPUVENDOR_INVALID: 4570 4572 case CPUMCPUVENDOR_UNKNOWN: … … 4672 4674 char *pszHit; 4673 4675 while ((pszHit = strstr(pszName, pszWord)) != NULL) 4674 mem move(pszHit, pszHit + cchWord, strlen(pszHit + cchWord) + 1);4676 memset(pszHit, ' ', cchWord); 4675 4677 } 4676 4678 … … 4749 4751 " */\n" 4750 4752 "\n" 4751 "#ifndef VBOX_CPUDB_%s \n"4752 "#define VBOX_CPUDB_%s \n"4753 "#ifndef VBOX_CPUDB_%s_h\n" 4754 "#define VBOX_CPUDB_%s_h\n" 4753 4755 "\n", 4754 4756 pszName, … … 4807 4809 "};\n" 4808 4810 "\n" 4809 "#endif /* !VBOX_ DB_%s*/\n"4811 "#endif /* !VBOX_CPUDB_%s_h */\n" 4810 4812 "\n", 4811 4813 pszCpuDesc, -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r76553 r76886 4747 4747 CASE_PRED(BS3CG1PRED_VENDOR_INTEL, pThis->bCpuVendor == BS3CPUVENDOR_INTEL); 4748 4748 CASE_PRED(BS3CG1PRED_VENDOR_VIA, pThis->bCpuVendor == BS3CPUVENDOR_VIA); 4749 CASE_PRED(BS3CG1PRED_VENDOR_SHANGHAI, pThis->bCpuVendor == BS3CPUVENDOR_SHANGHAI); 4749 4750 4750 4751 #undef CASE_PRED -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h
r76579 r76886 775 775 BS3CG1PRED_VENDOR_INTEL, 776 776 BS3CG1PRED_VENDOR_VIA, 777 BS3CG1PRED_VENDOR_SHANGHAI, 777 778 778 779 BS3CG1PRED_END -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-GetCpuVendor.c
r76553 r76886 43 43 if (ASMIsViaCentaurCpuEx(uEbx, uEcx, uEdx)) 44 44 return BS3CPUVENDOR_VIA; 45 if (ASMIsShanghaiCpuEx(uEbx, uEcx, uEdx)) 46 return BS3CPUVENDOR_SHANGHAI; 45 47 return BS3CPUVENDOR_UNKNOWN; 46 48 } -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
r76579 r76886 1537 1537 BS3CPUVENDOR_VIA, 1538 1538 BS3CPUVENDOR_CYRIX, 1539 BS3CPUVENDOR_SHANGHAI, 1539 1540 BS3CPUVENDOR_UNKNOWN, 1540 1541 BS3CPUVENDOR_END -
trunk/src/VBox/ValidationKit/testdriver/vbox.py
r76553 r76886 3097 3097 return sCpuDesc.startswith("VIA") or sCpuDesc == 'CentaurHauls'; 3098 3098 3099 def isHostCpuShanghai(self, fQuiet = False): 3100 """ 3101 Checks if the host CPU vendor is Shanghai (or Zhaoxin). 3102 3103 Returns True / False. 3104 """ 3105 sCpuDesc = self._getHostCpuDesc(fQuiet); 3106 return sCpuDesc.startswith("ZHAOXIN") or sCpuDesc.strip(' ') == 'Shanghai'; 3107 3099 3108 def isHostCpuP4(self, fQuiet = False): 3100 3109 """ -
trunk/src/VBox/ValidationKit/testdriver/vboxtestvms.py
r76553 r76886 443 443 elif self.isViaIncompatible() and oTestDrv.isHostCpuVia(): 444 444 fRc = None; # Skip the test. 445 elif self.isShanghaiIncompatible() and oTestDrv.isHostCpuShanghai(): 446 fRc = None; # Skip the test. 445 447 elif self.isP4Incompatible() and oTestDrv.isHostCpuP4(): 446 448 fRc = None; # Skip the test. … … 561 563 return True; 562 564 return False; 565 566 def isShanghaiIncompatible(self): 567 """ 568 Identifies VMs that doesn't work on Shanghai. 569 570 Returns True if NOT supported on Shanghai, False if it IS supported. 571 """ 572 # For now treat it just like VIA, to be adjusted later 573 return self.isViaIncompatible() 563 574 564 575 def isP4Incompatible(self): -
trunk/src/VBox/ValidationKit/testmanager/core/testbox.py
r76553 r76886 504 504 if uMod == 0x0a: return 'VIA_C7_C5J'; 505 505 if uMod == 0x0f: return 'VIA_Isaiah'; 506 elif sCpuVendor == ' Shanghai ': 507 if uFam == 0x07: 508 if uMod == 0x0b: return 'Shanghai_KX-5000'; 506 509 return None; 507 510 … … 544 547 if self.sCpuVendor == 'AuthenticAMD': return 'AMD'; 545 548 if self.sCpuVendor == 'CentaurHauls': return 'VIA'; 549 if self.sCpuVendor == ' Shanghai ': return 'Shanghai'; 546 550 return self.sCpuVendor; 547 551
Note:
See TracChangeset
for help on using the changeset viewer.

