diff options
author | Lee Nipper <lee.nipper@gmail.com> | 2010-07-08 21:17:16 -0400 |
---|---|---|
committer | Josh Boyer <jwboyer@linux.vnet.ibm.com> | 2010-07-26 09:07:24 -0400 |
commit | ff349103964d43c28b7b80bdecf7ace0113b3dda (patch) | |
tree | 89de9ac8ea2d74044791b03c641861b5aba1bf98 /arch/powerpc/kernel/cputable.c | |
parent | 9a52e392bd053f1d282488517125c6c1ab77006a (diff) |
powerpc/40x: Distinguish AMCC PowerPC 405EX and 405EXr correctly
The recent AMCC 405EX Rev D without Security uses a PVR value
that matches the old 405EXr Rev A/B with Security.
The 405EX Rev D without Security would be shown
incorrectly as an 405EXr. The pvr_mask of 0xffff0004
is no longer sufficient to distinguish the 405EX from 405EXr.
This patch replaces 2 entries in the cpu_specs table
and adds 8 more, each using pvr_mask of 0xffff000f
and appropriate pvr_value to distinguish the AMCC
PowerPC 405EX and 405EXr instances.
The cpu_name for these entries now includes the
Rev, in similar fashion to the 440GX.
Signed-off-by: Lee Nipper <lee.nipper@gmail.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/powerpc/kernel/cputable.c')
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 118 |
1 files changed, 111 insertions, 7 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 87aa0f3c6047..65e2b4e10f97 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -1364,10 +1364,10 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1364 | .machine_check = machine_check_4xx, | 1364 | .machine_check = machine_check_4xx, |
1365 | .platform = "ppc405", | 1365 | .platform = "ppc405", |
1366 | }, | 1366 | }, |
1367 | { /* 405EX */ | 1367 | { /* 405EX Rev. A/B with Security */ |
1368 | .pvr_mask = 0xffff0004, | 1368 | .pvr_mask = 0xffff000f, |
1369 | .pvr_value = 0x12910004, | 1369 | .pvr_value = 0x12910007, |
1370 | .cpu_name = "405EX", | 1370 | .cpu_name = "405EX Rev. A/B", |
1371 | .cpu_features = CPU_FTRS_40X, | 1371 | .cpu_features = CPU_FTRS_40X, |
1372 | .cpu_user_features = PPC_FEATURE_32 | | 1372 | .cpu_user_features = PPC_FEATURE_32 | |
1373 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | 1373 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, |
@@ -1377,10 +1377,114 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1377 | .machine_check = machine_check_4xx, | 1377 | .machine_check = machine_check_4xx, |
1378 | .platform = "ppc405", | 1378 | .platform = "ppc405", |
1379 | }, | 1379 | }, |
1380 | { /* 405EXr */ | 1380 | { /* 405EX Rev. C without Security */ |
1381 | .pvr_mask = 0xffff0004, | 1381 | .pvr_mask = 0xffff000f, |
1382 | .pvr_value = 0x1291000d, | ||
1383 | .cpu_name = "405EX Rev. C", | ||
1384 | .cpu_features = CPU_FTRS_40X, | ||
1385 | .cpu_user_features = PPC_FEATURE_32 | | ||
1386 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1387 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1388 | .icache_bsize = 32, | ||
1389 | .dcache_bsize = 32, | ||
1390 | .machine_check = machine_check_4xx, | ||
1391 | .platform = "ppc405", | ||
1392 | }, | ||
1393 | { /* 405EX Rev. C with Security */ | ||
1394 | .pvr_mask = 0xffff000f, | ||
1395 | .pvr_value = 0x1291000f, | ||
1396 | .cpu_name = "405EX Rev. C", | ||
1397 | .cpu_features = CPU_FTRS_40X, | ||
1398 | .cpu_user_features = PPC_FEATURE_32 | | ||
1399 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1400 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1401 | .icache_bsize = 32, | ||
1402 | .dcache_bsize = 32, | ||
1403 | .machine_check = machine_check_4xx, | ||
1404 | .platform = "ppc405", | ||
1405 | }, | ||
1406 | { /* 405EX Rev. D without Security */ | ||
1407 | .pvr_mask = 0xffff000f, | ||
1408 | .pvr_value = 0x12910003, | ||
1409 | .cpu_name = "405EX Rev. D", | ||
1410 | .cpu_features = CPU_FTRS_40X, | ||
1411 | .cpu_user_features = PPC_FEATURE_32 | | ||
1412 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1413 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1414 | .icache_bsize = 32, | ||
1415 | .dcache_bsize = 32, | ||
1416 | .machine_check = machine_check_4xx, | ||
1417 | .platform = "ppc405", | ||
1418 | }, | ||
1419 | { /* 405EX Rev. D with Security */ | ||
1420 | .pvr_mask = 0xffff000f, | ||
1421 | .pvr_value = 0x12910005, | ||
1422 | .cpu_name = "405EX Rev. D", | ||
1423 | .cpu_features = CPU_FTRS_40X, | ||
1424 | .cpu_user_features = PPC_FEATURE_32 | | ||
1425 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1426 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1427 | .icache_bsize = 32, | ||
1428 | .dcache_bsize = 32, | ||
1429 | .machine_check = machine_check_4xx, | ||
1430 | .platform = "ppc405", | ||
1431 | }, | ||
1432 | { /* 405EXr Rev. A/B without Security */ | ||
1433 | .pvr_mask = 0xffff000f, | ||
1434 | .pvr_value = 0x12910001, | ||
1435 | .cpu_name = "405EXr Rev. A/B", | ||
1436 | .cpu_features = CPU_FTRS_40X, | ||
1437 | .cpu_user_features = PPC_FEATURE_32 | | ||
1438 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1439 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1440 | .icache_bsize = 32, | ||
1441 | .dcache_bsize = 32, | ||
1442 | .machine_check = machine_check_4xx, | ||
1443 | .platform = "ppc405", | ||
1444 | }, | ||
1445 | { /* 405EXr Rev. C without Security */ | ||
1446 | .pvr_mask = 0xffff000f, | ||
1447 | .pvr_value = 0x12910009, | ||
1448 | .cpu_name = "405EXr Rev. C", | ||
1449 | .cpu_features = CPU_FTRS_40X, | ||
1450 | .cpu_user_features = PPC_FEATURE_32 | | ||
1451 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1452 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1453 | .icache_bsize = 32, | ||
1454 | .dcache_bsize = 32, | ||
1455 | .machine_check = machine_check_4xx, | ||
1456 | .platform = "ppc405", | ||
1457 | }, | ||
1458 | { /* 405EXr Rev. C with Security */ | ||
1459 | .pvr_mask = 0xffff000f, | ||
1460 | .pvr_value = 0x1291000b, | ||
1461 | .cpu_name = "405EXr Rev. C", | ||
1462 | .cpu_features = CPU_FTRS_40X, | ||
1463 | .cpu_user_features = PPC_FEATURE_32 | | ||
1464 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1465 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1466 | .icache_bsize = 32, | ||
1467 | .dcache_bsize = 32, | ||
1468 | .machine_check = machine_check_4xx, | ||
1469 | .platform = "ppc405", | ||
1470 | }, | ||
1471 | { /* 405EXr Rev. D without Security */ | ||
1472 | .pvr_mask = 0xffff000f, | ||
1382 | .pvr_value = 0x12910000, | 1473 | .pvr_value = 0x12910000, |
1383 | .cpu_name = "405EXr", | 1474 | .cpu_name = "405EXr Rev. D", |
1475 | .cpu_features = CPU_FTRS_40X, | ||
1476 | .cpu_user_features = PPC_FEATURE_32 | | ||
1477 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1478 | .mmu_features = MMU_FTR_TYPE_40x, | ||
1479 | .icache_bsize = 32, | ||
1480 | .dcache_bsize = 32, | ||
1481 | .machine_check = machine_check_4xx, | ||
1482 | .platform = "ppc405", | ||
1483 | }, | ||
1484 | { /* 405EXr Rev. D with Security */ | ||
1485 | .pvr_mask = 0xffff000f, | ||
1486 | .pvr_value = 0x12910002, | ||
1487 | .cpu_name = "405EXr Rev. D", | ||
1384 | .cpu_features = CPU_FTRS_40X, | 1488 | .cpu_features = CPU_FTRS_40X, |
1385 | .cpu_user_features = PPC_FEATURE_32 | | 1489 | .cpu_user_features = PPC_FEATURE_32 | |
1386 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | 1490 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, |