VirtualBox

Changeset 49993 in vbox


Ignore:
Timestamp:
Dec 20, 2013 3:29:24 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
91427
Message:

CPUM: VIA MSR mappings (rough cut).

Location:
trunk/src/VBox/VMM
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/CPUMR3Db.cpp

    r49979 r49993  
    184184#include "cpus/AMD_Athlon_64_3200.h"
    185185
     186#include "cpus/VIA_QuadCore_L4700_1_2_GHz.h"
     187
    186188
    187189
     
    221223#ifdef VBOX_CPUDB_AMD_Athlon_64_3200
    222224    &g_Entry_AMD_Athlon_64_3200,
     225#endif
     226
     227#ifdef VBOX_CPUDB_VIA_QuadCore_L4700_1_2_GHz
     228    &g_Entry_VIA_QuadCore_L4700_1_2_GHz,
    223229#endif
    224230};
  • trunk/src/VBox/VMM/tools/VBoxCpuReport.cpp

    r49988 r49993  
    11771177        case 0x0000124a: return "VIA_UNK_0000_124a";
    11781178
    1179         case 0x00002000: return "P6_CR0";
    1180         case 0x00002002: return "P6_CR2";
    1181         case 0x00002003: return "P6_CR3";
    1182         case 0x00002004: return "P6_CR4";
    1183         case 0x0000203f: return "P6_UNK_0000_203f"; /* P6_M_Dothan. */
    1184         case 0x000020cd: return "P6_UNK_0000_20cd"; /* P6_M_Dothan. */
    1185         case 0x0000303f: return "P6_UNK_0000_303f"; /* P6_M_Dothan. */
    1186         case 0x000030cd: return "P6_UNK_0000_30cd"; /* P6_M_Dothan. */
     1179        case 0x00001301: return "VIA_UNK_0000_1301";
     1180        case 0x00001302: return "VIA_UNK_0000_1302";
     1181        case 0x00001303: return "VIA_UNK_0000_1303";
     1182        case 0x00001304: return "VIA_UNK_0000_1304";
     1183        case 0x00001305: return "VIA_UNK_0000_1305";
     1184        case 0x00001306: return "VIA_UNK_0000_1306";
     1185        case 0x00001307: return "VIA_UNK_0000_1307";
     1186        case 0x00001308: return "VIA_UNK_0000_1308";
     1187        case 0x00001309: return "VIA_UNK_0000_1309";
     1188        case 0x0000130d: return "VIA_UNK_0000_130d";
     1189        case 0x0000130e: return "VIA_UNK_0000_130e";
     1190        case 0x00001312: return "VIA_UNK_0000_1312";
     1191        case 0x00001315: return "VIA_UNK_0000_1315";
     1192        case 0x00001317: return "VIA_UNK_0000_1317";
     1193        case 0x00001318: return "VIA_UNK_0000_1318";
     1194        case 0x0000131a: return "VIA_UNK_0000_131a";
     1195        case 0x0000131b: return "VIA_UNK_0000_131b";
     1196        case 0x00001402: return "VIA_UNK_0000_1402";
     1197        case 0x00001403: return "VIA_UNK_0000_1403";
     1198        case 0x00001404: return "VIA_UNK_0000_1404";
     1199        case 0x00001405: return "VIA_UNK_0000_1405";
     1200        case 0x00001406: return "VIA_UNK_0000_1406";
     1201        case 0x00001407: return "VIA_UNK_0000_1407";
     1202        case 0x00001410: return "VIA_UNK_0000_1410";
     1203        case 0x00001411: return "VIA_UNK_0000_1411";
     1204        case 0x00001412: return "VIA_UNK_0000_1412";
     1205        case 0x00001413: return "VIA_UNK_0000_1413";
     1206        case 0x00001414: return "VIA_UNK_0000_1414";
     1207        case 0x00001415: return "VIA_UNK_0000_1415";
     1208        case 0x00001416: return "VIA_UNK_0000_1416";
     1209        case 0x00001417: return "VIA_UNK_0000_1417";
     1210        case 0x00001418: return "VIA_UNK_0000_1418";
     1211        case 0x00001419: return "VIA_UNK_0000_1419";
     1212        case 0x0000141a: return "VIA_UNK_0000_141a";
     1213        case 0x0000141b: return "VIA_UNK_0000_141b";
     1214        case 0x0000141c: return "VIA_UNK_0000_141c";
     1215        case 0x0000141d: return "VIA_UNK_0000_141d";
     1216        case 0x0000141e: return "VIA_UNK_0000_141e";
     1217        case 0x0000141f: return "VIA_UNK_0000_141f";
     1218        case 0x00001420: return "VIA_UNK_0000_1420";
     1219        case 0x00001421: return "VIA_UNK_0000_1421";
     1220        case 0x00001422: return "VIA_UNK_0000_1422";
     1221        case 0x00001423: return "VIA_UNK_0000_1423";
     1222        case 0x00001424: return "VIA_UNK_0000_1424";
     1223        case 0x00001425: return "VIA_UNK_0000_1425";
     1224        case 0x00001426: return "VIA_UNK_0000_1426";
     1225        case 0x00001427: return "VIA_UNK_0000_1427";
     1226        case 0x00001428: return "VIA_UNK_0000_1428";
     1227        case 0x00001429: return "VIA_UNK_0000_1429";
     1228        case 0x0000142a: return "VIA_UNK_0000_142a";
     1229        case 0x0000142b: return "VIA_UNK_0000_142b";
     1230        case 0x0000142c: return "VIA_UNK_0000_142c";
     1231        case 0x0000142d: return "VIA_UNK_0000_142d";
     1232        case 0x0000142e: return "VIA_UNK_0000_142e";
     1233        case 0x0000142f: return "VIA_UNK_0000_142f";
     1234        case 0x00001434: return "VIA_UNK_0000_1434";
     1235        case 0x00001435: return "VIA_UNK_0000_1435";
     1236        case 0x00001436: return "VIA_UNK_0000_1436";
     1237        case 0x00001437: return "VIA_UNK_0000_1437";
     1238        case 0x00001438: return "VIA_UNK_0000_1438";
     1239        case 0x0000143a: return "VIA_UNK_0000_143a";
     1240        case 0x0000143c: return "VIA_UNK_0000_143c";
     1241        case 0x0000143d: return "VIA_UNK_0000_143d";
     1242        case 0x00001440: return "VIA_UNK_0000_1440";
     1243        case 0x00001441: return "VIA_UNK_0000_1441";
     1244        case 0x00001442: return "VIA_UNK_0000_1442";
     1245        case 0x00001449: return "VIA_UNK_0000_1449";
     1246        case 0x00001450: return "VIA_UNK_0000_1450";
     1247        case 0x00001451: return "VIA_UNK_0000_1451";
     1248        case 0x00001452: return "VIA_UNK_0000_1452";
     1249        case 0x00001453: return "VIA_UNK_0000_1453";
     1250        case 0x00001460: return "VIA_UNK_0000_1460";
     1251        case 0x00001461: return "VIA_UNK_0000_1461";
     1252        case 0x00001462: return "VIA_UNK_0000_1462";
     1253        case 0x00001463: return "VIA_UNK_0000_1463";
     1254        case 0x00001465: return "VIA_UNK_0000_1465";
     1255        case 0x00001466: return "VIA_UNK_0000_1466";
     1256        case 0x00001470: return "VIA_UNK_0000_1470";
     1257        case 0x00001471: return "VIA_UNK_0000_1471";
     1258        case 0x00001480: return "VIA_UNK_0000_1480";
     1259        case 0x00001481: return "VIA_UNK_0000_1481";
     1260        case 0x00001482: return "VIA_UNK_0000_1482";
     1261        case 0x00001483: return "VIA_UNK_0000_1483";
     1262        case 0x00001484: return "VIA_UNK_0000_1484";
     1263        case 0x00001485: return "VIA_UNK_0000_1485";
     1264        case 0x00001486: return "VIA_UNK_0000_1486";
     1265        case 0x00001490: return "VIA_UNK_0000_1490";
     1266        case 0x00001491: return "VIA_UNK_0000_1491";
     1267        case 0x00001492: return "VIA_UNK_0000_1492";
     1268        case 0x00001493: return "VIA_UNK_0000_1493";
     1269        case 0x00001494: return "VIA_UNK_0000_1494";
     1270        case 0x00001495: return "VIA_UNK_0000_1495";
     1271        case 0x00001496: return "VIA_UNK_0000_1496";
     1272        case 0x00001497: return "VIA_UNK_0000_1497";
     1273        case 0x00001498: return "VIA_UNK_0000_1498";
     1274        case 0x00001499: return "VIA_UNK_0000_1499";
     1275        case 0x0000149a: return "VIA_UNK_0000_149a";
     1276        case 0x0000149b: return "VIA_UNK_0000_149b";
     1277        case 0x0000149c: return "VIA_UNK_0000_149c";
     1278        case 0x0000149f: return "VIA_UNK_0000_149f";
     1279        case 0x00001523: return "VIA_UNK_0000_1523";
     1280
     1281        case 0x00002000: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_CR0" : NULL;
     1282        case 0x00002002: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_CR2" : NULL;
     1283        case 0x00002003: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_CR3" : NULL;
     1284        case 0x00002004: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_CR4" : NULL;
     1285        case 0x0000203f: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_UNK_0000_203f" /* P6_M_Dothan. */ : NULL;
     1286        case 0x000020cd: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_UNK_0000_20cd" /* P6_M_Dothan. */ : NULL;
     1287        case 0x0000303f: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_UNK_0000_303f" /* P6_M_Dothan. */ : NULL;
     1288        case 0x000030cd: return g_enmVendor == CPUMCPUVENDOR_INTEL ? "P6_UNK_0000_30cd" /* P6_M_Dothan. */ : NULL;
     1289
     1290        case 0x0000317a: return "VIA_UNK_0000_317a";
     1291        case 0x0000317b: return "VIA_UNK_0000_317b";
     1292        case 0x0000317d: return "VIA_UNK_0000_317d";
     1293        case 0x0000317e: return "VIA_UNK_0000_317e";
     1294        case 0x0000317f: return "VIA_UNK_0000_317f";
     1295        case 0x80000198: return "VIA_UNK_8000_0198";
    11871296
    11881297        case 0xc0000080: return "AMD64_EFER";
     
    22632372        case 0x00001249:
    22642373        case 0x0000124a:
     2374        case 0x00001404:
     2375        case 0x00001405:
     2376        case 0x00001413:
     2377        case 0x0000142c: /* Caused rip to be set to 297 or some such weirdness... */
     2378        case 0x0000142e:
     2379        case 0x00001435:
     2380        case 0x00001436:
     2381        case 0x00001438:
     2382        case 0x0000317f:
    22652383            if (g_enmVendor == CPUMCPUVENDOR_VIA)
    22662384                return VBCPUREPBADNESS_BOND_VILLAIN;
     
    22962414        case 0x000001a0: /* IA32_MISC_ENABLE */
    22972415        case 0x00000199: /* IA32_PERF_CTL */
    2298         case 0x00002000: /* P6_CR0 */
    2299         case 0x00002003: /* P6_CR3 */
    2300         case 0x00002004: /* P6_CR4 */
     2416            return VBCPUREPBADNESS_MIGHT_BITE;
     2417        case 0x00002000: /* P6_CR0. */
     2418        case 0x00002003: /* P6_CR3. */
     2419        case 0x00002004: /* P6_CR4. */
     2420            if (g_enmVendor == CPUMCPUVENDOR_INTEL)
     2421                return VBCPUREPBADNESS_MIGHT_BITE;
     2422            break;
    23012423        case 0xc0000080: /* MSR_K6_EFER */
    23022424            return VBCPUREPBADNESS_MIGHT_BITE;
     
    29873109        cRegs++;
    29883110        if (!(cRegs % 0x80))
    2989             vbCpuRepPrintf("VIA dummy detection cRegs=%#x...\n", cRegs);
     3111            vbCpuRepDebug("VIA dummy detection %#llx..%#llx (%#x regs)...\n", uMsr, uMsr + cRegs - 1, cRegs);
    29903112    }
    29913113
     
    38113933        uint64_t    uValue     = paMsrs[i].uValue;
    38123934        int         rc;
    3813 #if 1
    3814         if (uMsr < 0x00001200)
     3935#if 0
     3936        if (uMsr < 0x00003170)
    38153937            continue;
    3816         if (uMsr >= 0x00001238)
     3938        if (uMsr >= 0x00003170)
    38173939        {
    38183940            vbCpuRepDebug("produceMsrReport: uMsr=%#x (%s)...\n", uMsr, getMsrNameHandled(uMsr));
     
    40024124    uint64_t uValue = 0;
    40034125    msrProberRead(uMsr, &uValue);
    4004     reportMsr_Amd64Efer(uMsr, uValue);
     4126    /* Try for a triple fault... */
     4127    msrProberWrite(uMsr, uValue ^ MSR_K6_EFER_LME);
     4128    msrProberRead(uMsr, &uValue);
     4129    msrProberWrite(uMsr, uValue ^ MSR_K6_EFER_NXE);
    40054130#endif
    40064131    return VINF_SUCCESS;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette