diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2011-11-06 12:51:07 -0500 |
---|---|---|
committer | galak <galak@spiff.(none)> | 2012-03-15 13:12:21 -0400 |
commit | 10241842fbe900276634fee8d37ec48a7d8a762f (patch) | |
tree | 0670101e231cd01549a72f4349a2e7a23de719fa | |
parent | f0b8b3417d836f89d873f6d5de43d54f02cb11e2 (diff) |
powerpc: Add initial e6500 cpu support
Add basic support for e6500 core in its single threaded mode.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/include/asm/cputable.h | 12 | ||||
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 18 |
2 files changed, 26 insertions, 4 deletions
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h index ad55a1ccb9fb..b9219e99bd2a 100644 --- a/arch/powerpc/include/asm/cputable.h +++ b/arch/powerpc/include/asm/cputable.h | |||
@@ -390,6 +390,10 @@ extern const char *powerpc_base_platform; | |||
390 | CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \ | 390 | CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \ |
391 | CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ | 391 | CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ |
392 | CPU_FTR_DEBUG_LVL_EXC) | 392 | CPU_FTR_DEBUG_LVL_EXC) |
393 | #define CPU_FTRS_E6500 (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | \ | ||
394 | CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \ | ||
395 | CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ | ||
396 | CPU_FTR_DEBUG_LVL_EXC) | ||
393 | #define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN) | 397 | #define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN) |
394 | 398 | ||
395 | /* 64-bit CPUs */ | 399 | /* 64-bit CPUs */ |
@@ -442,7 +446,7 @@ extern const char *powerpc_base_platform; | |||
442 | 446 | ||
443 | #ifdef __powerpc64__ | 447 | #ifdef __powerpc64__ |
444 | #ifdef CONFIG_PPC_BOOK3E | 448 | #ifdef CONFIG_PPC_BOOK3E |
445 | #define CPU_FTRS_POSSIBLE (CPU_FTRS_E5500 | CPU_FTRS_A2) | 449 | #define CPU_FTRS_POSSIBLE (CPU_FTRS_E6500 | CPU_FTRS_E5500 | CPU_FTRS_A2) |
446 | #else | 450 | #else |
447 | #define CPU_FTRS_POSSIBLE \ | 451 | #define CPU_FTRS_POSSIBLE \ |
448 | (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ | 452 | (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ |
@@ -483,7 +487,7 @@ enum { | |||
483 | #endif | 487 | #endif |
484 | #ifdef CONFIG_E500 | 488 | #ifdef CONFIG_E500 |
485 | CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC | | 489 | CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC | |
486 | CPU_FTRS_E5500 | | 490 | CPU_FTRS_E5500 | CPU_FTRS_E6500 | |
487 | #endif | 491 | #endif |
488 | 0, | 492 | 0, |
489 | }; | 493 | }; |
@@ -491,7 +495,7 @@ enum { | |||
491 | 495 | ||
492 | #ifdef __powerpc64__ | 496 | #ifdef __powerpc64__ |
493 | #ifdef CONFIG_PPC_BOOK3E | 497 | #ifdef CONFIG_PPC_BOOK3E |
494 | #define CPU_FTRS_ALWAYS (CPU_FTRS_E5500 & CPU_FTRS_A2) | 498 | #define CPU_FTRS_ALWAYS (CPU_FTRS_E6500 & CPU_FTRS_E5500 & CPU_FTRS_A2) |
495 | #else | 499 | #else |
496 | #define CPU_FTRS_ALWAYS \ | 500 | #define CPU_FTRS_ALWAYS \ |
497 | (CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \ | 501 | (CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \ |
@@ -528,7 +532,7 @@ enum { | |||
528 | #endif | 532 | #endif |
529 | #ifdef CONFIG_E500 | 533 | #ifdef CONFIG_E500 |
530 | CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC & | 534 | CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC & |
531 | CPU_FTRS_E5500 & | 535 | CPU_FTRS_E5500 & CPU_FTRS_E6500 & |
532 | #endif | 536 | #endif |
533 | CPU_FTRS_POSSIBLE, | 537 | CPU_FTRS_POSSIBLE, |
534 | }; | 538 | }; |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 81db9e2a8a20..4dccf51064ea 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -2019,6 +2019,24 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
2019 | .machine_check = machine_check_e500mc, | 2019 | .machine_check = machine_check_e500mc, |
2020 | .platform = "ppce5500", | 2020 | .platform = "ppce5500", |
2021 | }, | 2021 | }, |
2022 | { /* e6500 */ | ||
2023 | .pvr_mask = 0xffff0000, | ||
2024 | .pvr_value = 0x80400000, | ||
2025 | .cpu_name = "e6500", | ||
2026 | .cpu_features = CPU_FTRS_E6500, | ||
2027 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, | ||
2028 | .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | | ||
2029 | MMU_FTR_USE_TLBILX, | ||
2030 | .icache_bsize = 64, | ||
2031 | .dcache_bsize = 64, | ||
2032 | .num_pmcs = 4, | ||
2033 | .oprofile_cpu_type = "ppc/e6500", | ||
2034 | .oprofile_type = PPC_OPROFILE_FSL_EMB, | ||
2035 | .cpu_setup = __setup_cpu_e5500, | ||
2036 | .cpu_restore = __restore_cpu_e5500, | ||
2037 | .machine_check = machine_check_e500mc, | ||
2038 | .platform = "ppce6500", | ||
2039 | }, | ||
2022 | #ifdef CONFIG_PPC32 | 2040 | #ifdef CONFIG_PPC32 |
2023 | { /* default match */ | 2041 | { /* default match */ |
2024 | .pvr_mask = 0x00000000, | 2042 | .pvr_mask = 0x00000000, |