Merge master.kernel.org:/home/rmk/linux-2.6-arm
[powerpc.git] / arch / powerpc / kernel / cputable.c
index cc4e9eb..43c74a6 100644 (file)
@@ -52,6 +52,9 @@ extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec);
 #define COMMON_USER            (PPC_FEATURE_32 | PPC_FEATURE_HAS_FPU | \
                                 PPC_FEATURE_HAS_MMU)
 #define COMMON_USER_PPC64      (COMMON_USER | PPC_FEATURE_64)
+#define COMMON_USER_POWER4     (COMMON_USER_PPC64 | PPC_FEATURE_POWER4)
+#define COMMON_USER_POWER5     (COMMON_USER_PPC64 | PPC_FEATURE_POWER5)
+#define COMMON_USER_POWER5_PLUS        (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS)
 
 
 /* We only set the spe features if the kernel was compiled with
@@ -75,10 +78,8 @@ struct cpu_spec      cpu_specs[] = {
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/power3",
-               .oprofile_model         = &op_model_rs64,
-#endif
+               .oprofile_type          = RS64,
        },
        {       /* Power3+ */
                .pvr_mask               = 0xffff0000,
@@ -90,10 +91,8 @@ struct cpu_spec      cpu_specs[] = {
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/power3",
-               .oprofile_model         = &op_model_rs64,
-#endif
+               .oprofile_type          = RS64,
        },
        {       /* Northstar */
                .pvr_mask               = 0xffff0000,
@@ -105,10 +104,8 @@ struct cpu_spec    cpu_specs[] = {
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/rs64",
-               .oprofile_model         = &op_model_rs64,
-#endif
+               .oprofile_type          = RS64,
        },
        {       /* Pulsar */
                .pvr_mask               = 0xffff0000,
@@ -120,10 +117,8 @@ struct cpu_spec    cpu_specs[] = {
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/rs64",
-               .oprofile_model         = &op_model_rs64,
-#endif
+               .oprofile_type          = RS64,
        },
        {       /* I-star */
                .pvr_mask               = 0xffff0000,
@@ -135,10 +130,8 @@ struct cpu_spec    cpu_specs[] = {
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/rs64",
-               .oprofile_model         = &op_model_rs64,
-#endif
+               .oprofile_type          = RS64,
        },
        {       /* S-star */
                .pvr_mask               = 0xffff0000,
@@ -150,56 +143,48 @@ struct cpu_spec   cpu_specs[] = {
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/rs64",
-               .oprofile_model         = &op_model_rs64,
-#endif
+               .oprofile_type          = RS64,
        },
        {       /* Power4 */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x00350000,
                .cpu_name               = "POWER4 (gp)",
                .cpu_features           = CPU_FTRS_POWER4,
-               .cpu_user_features      = COMMON_USER_PPC64,
+               .cpu_user_features      = COMMON_USER_POWER4,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power4,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/power4",
-               .oprofile_model         = &op_model_rs64,
-#endif
+               .oprofile_type          = POWER4,
        },
        {       /* Power4+ */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x00380000,
                .cpu_name               = "POWER4+ (gq)",
                .cpu_features           = CPU_FTRS_POWER4,
-               .cpu_user_features      = COMMON_USER_PPC64,
+               .cpu_user_features      = COMMON_USER_POWER4,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power4,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/power4",
-               .oprofile_model         = &op_model_power4,
-#endif
+               .oprofile_type          = POWER4,
        },
        {       /* PPC970 */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x00390000,
                .cpu_name               = "PPC970",
                .cpu_features           = CPU_FTRS_PPC970,
-               .cpu_user_features      = COMMON_USER_PPC64 |
+               .cpu_user_features      = COMMON_USER_POWER4 |
                        PPC_FEATURE_HAS_ALTIVEC_COMP,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_ppc970,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/970",
-               .oprofile_model         = &op_model_power4,
-#endif
+               .oprofile_type          = POWER4,
        },
 #endif /* CONFIG_PPC64 */
 #if defined(CONFIG_PPC64) || defined(CONFIG_POWER4)
@@ -212,16 +197,14 @@ struct cpu_spec   cpu_specs[] = {
 #else
                .cpu_features           = CPU_FTRS_PPC970,
 #endif
-               .cpu_user_features      = COMMON_USER_PPC64 |
+               .cpu_user_features      = COMMON_USER_POWER4 |
                        PPC_FEATURE_HAS_ALTIVEC_COMP,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_ppc970,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/970",
-               .oprofile_model         = &op_model_power4,
-#endif
+               .oprofile_type          = POWER4,
        },
 #endif /* defined(CONFIG_PPC64) || defined(CONFIG_POWER4) */
 #ifdef CONFIG_PPC64
@@ -230,53 +213,47 @@ struct cpu_spec   cpu_specs[] = {
                .pvr_value              = 0x00440000,
                .cpu_name               = "PPC970MP",
                .cpu_features           = CPU_FTRS_PPC970,
-               .cpu_user_features      = COMMON_USER_PPC64 |
+               .cpu_user_features      = COMMON_USER_POWER4 |
                        PPC_FEATURE_HAS_ALTIVEC_COMP,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .cpu_setup              = __setup_cpu_ppc970,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/970",
-               .oprofile_model         = &op_model_power4,
-#endif
+               .oprofile_type          = POWER4,
        },
        {       /* Power5 GR */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x003a0000,
                .cpu_name               = "POWER5 (gr)",
                .cpu_features           = CPU_FTRS_POWER5,
-               .cpu_user_features      = COMMON_USER_PPC64,
+               .cpu_user_features      = COMMON_USER_POWER5,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .num_pmcs               = 6,
                .cpu_setup              = __setup_cpu_power4,
-#ifdef CONFIG_OPROFILE
                .oprofile_cpu_type      = "ppc64/power5",
-               .oprofile_model         = &op_model_power4,
-#endif
+               .oprofile_type          = POWER4,
        },
        {       /* Power5 GS */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x003b0000,
-               .cpu_name               = "POWER5 (gs)",
+               .cpu_name               = "POWER5+ (gs)",
                .cpu_features           = CPU_FTRS_POWER5,
-               .cpu_user_features      = COMMON_USER_PPC64,
+               .cpu_user_features      = COMMON_USER_POWER5_PLUS,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .num_pmcs               = 6,
                .cpu_setup              = __setup_cpu_power4,
-#ifdef CONFIG_OPROFILE
-               .oprofile_cpu_type      = "ppc64/power5",
-               .oprofile_model         = &op_model_power4,
-#endif
+               .oprofile_cpu_type      = "ppc64/power5+",
+               .oprofile_type          = POWER4,
        },
-       {       /* BE DD1.x */
+       {       /* Cell Broadband Engine */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x00700000,
                .cpu_name               = "Cell Broadband Engine",
                .cpu_features           = CPU_FTRS_CELL,
                .cpu_user_features      = COMMON_USER_PPC64 |
-                       PPC_FEATURE_HAS_ALTIVEC_COMP,
+                       PPC_FEATURE_CELL | PPC_FEATURE_HAS_ALTIVEC_COMP,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .cpu_setup              = __setup_cpu_be,
@@ -542,7 +519,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7450 2.1 */
                .pvr_mask               = 0xffffffff,
@@ -553,7 +532,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7450 2.3 and newer */
                .pvr_mask               = 0xffff0000,
@@ -564,7 +545,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7455 rev 1.x */
                .pvr_mask               = 0xffffff00,
@@ -575,7 +558,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7455 rev 2.0 */
                .pvr_mask               = 0xffffffff,
@@ -586,7 +571,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7455 others */
                .pvr_mask               = 0xffff0000,
@@ -597,7 +584,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7447/7457 Rev 1.0 */
                .pvr_mask               = 0xffffffff,
@@ -608,7 +597,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7447/7457 Rev 1.1 */
                .pvr_mask               = 0xffffffff,
@@ -619,7 +610,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7447/7457 Rev 1.2 and later */
                .pvr_mask               = 0xffff0000,
@@ -630,7 +623,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7447A */
                .pvr_mask               = 0xffff0000,
@@ -641,7 +636,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 7448 */
                .pvr_mask               = 0xffff0000,
@@ -652,7 +649,9 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 6,
-               .cpu_setup              = __setup_cpu_745x
+               .cpu_setup              = __setup_cpu_745x,
+               .oprofile_cpu_type      = "ppc/7450",
+               .oprofile_type          = G4,
        },
        {       /* 82xx (8240, 8245, 8260 are all 603e cores) */
                .pvr_mask               = 0x7fff0000,
@@ -976,6 +975,8 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 4,
+               .oprofile_cpu_type      = "ppc/e500",
+               .oprofile_type          = BOOKE,
        },
        {       /* e500v2 */
                .pvr_mask               = 0xffff0000,
@@ -989,6 +990,8 @@ struct cpu_spec     cpu_specs[] = {
                .icache_bsize           = 32,
                .dcache_bsize           = 32,
                .num_pmcs               = 4,
+               .oprofile_cpu_type      = "ppc/e500",
+               .oprofile_type          = BOOKE,
        },
 #endif
 #if !CLASSIC_PPC