powerpc/476: define specific cpu table entry DD2 core
authorDave Kleikamp <shaggy@linux.vnet.ibm.com>
Wed, 26 Jan 2011 06:17:58 +0000 (06:17 +0000)
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>
Wed, 2 Feb 2011 11:58:53 +0000 (06:58 -0500)
The DD2 core still has some unstability.  Define CPU_FTR_476_DD2 to
enable workarounds in later patches.

This is based on an earlier, unreleased patch for DD1 by Ben Herrenschmidt.

Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
arch/powerpc/include/asm/cputable.h
arch/powerpc/kernel/cputable.c

index f0a211d..be3cdf9 100644 (file)
@@ -154,6 +154,7 @@ extern const char *powerpc_base_platform;
 #define CPU_FTR_NAP_DISABLE_L2_PR      ASM_CONST(0x0000000000002000)
 #define CPU_FTR_DUAL_PLL_750FX         ASM_CONST(0x0000000000004000)
 #define CPU_FTR_NO_DPM                 ASM_CONST(0x0000000000008000)
+#define CPU_FTR_476_DD2                        ASM_CONST(0x0000000000010000)
 #define CPU_FTR_NEED_COHERENT          ASM_CONST(0x0000000000020000)
 #define CPU_FTR_NO_BTIC                        ASM_CONST(0x0000000000040000)
 #define CPU_FTR_NODSISRALIGN           ASM_CONST(0x0000000000100000)
@@ -465,7 +466,7 @@ enum {
            CPU_FTRS_44X | CPU_FTRS_440x6 |
 #endif
 #ifdef CONFIG_PPC_47x
-           CPU_FTRS_47X |
+           CPU_FTRS_47X | CPU_FTR_476_DD2 |
 #endif
 #ifdef CONFIG_E200
            CPU_FTRS_E200 |
index be5ab18..bf7cf86 100644 (file)
@@ -1834,11 +1834,11 @@ static struct cpu_spec __initdata cpu_specs[] = {
                .machine_check          = machine_check_440A,
                .platform               = "ppc440",
        },
-       { /* 476 core */
-               .pvr_mask               = 0xffff0000,
-               .pvr_value              = 0x11a50000,
+       { /* 476 DD2 core */
+               .pvr_mask               = 0xffffffff,
+               .pvr_value              = 0x11a52080,
                .cpu_name               = "476",
-               .cpu_features           = CPU_FTRS_47X,
+               .cpu_features           = CPU_FTRS_47X | CPU_FTR_476_DD2,
                .cpu_user_features      = COMMON_USER_BOOKE |
                        PPC_FEATURE_HAS_FPU,
                .mmu_features           = MMU_FTR_TYPE_47x |
@@ -1862,6 +1862,20 @@ static struct cpu_spec __initdata cpu_specs[] = {
                .machine_check          = machine_check_47x,
                .platform               = "ppc470",
        },
+       { /* 476 others */
+               .pvr_mask               = 0xffff0000,
+               .pvr_value              = 0x11a50000,
+               .cpu_name               = "476",
+               .cpu_features           = CPU_FTRS_47X,
+               .cpu_user_features      = COMMON_USER_BOOKE |
+                       PPC_FEATURE_HAS_FPU,
+               .mmu_features           = MMU_FTR_TYPE_47x |
+                       MMU_FTR_USE_TLBIVAX_BCAST | MMU_FTR_LOCK_BCAST_INVAL,
+               .icache_bsize           = 32,
+               .dcache_bsize           = 128,
+               .machine_check          = machine_check_47x,
+               .platform               = "ppc470",
+       },
        {       /* default match */
                .pvr_mask               = 0x00000000,
                .pvr_value              = 0x00000000,