[ppc64] cputable update, from Dave Engebretsen Sync 2.4 & 2.6 cputable code. Adds 970 and Power5 processor support plus new firmware features. --- arch/ppc64/kernel/cputable.c | 29 +++++++++++++++++++++++++++++ include/asm-ppc64/cputable.h | 35 +++++++++++++++++++++++++++++------ 2 files changed, 58 insertions(+), 6 deletions(-) diff -puN arch/ppc64/kernel/cputable.c~ppc64-cputable arch/ppc64/kernel/cputable.c --- 25/arch/ppc64/kernel/cputable.c~ppc64-cputable 2004-01-13 23:22:33.000000000 -0800 +++ 25-akpm/arch/ppc64/kernel/cputable.c 2004-01-13 23:22:33.000000000 -0800 @@ -30,8 +30,10 @@ extern void __setup_cpu_power4(unsigned */ #ifdef CONFIG_ALTIVEC #define CPU_FTR_ALTIVEC_COMP CPU_FTR_ALTIVEC +#define PPC_FEATURE_HAS_ALTIVEC_COMP PPC_FEATURE_HAS_ALTIVEC #else #define CPU_FTR_ALTIVEC_COMP 0 +#define PPC_FEATURE_HAS_ALTIVEC_COMP 0 #endif struct cpu_spec cpu_specs[] = { @@ -107,6 +109,24 @@ struct cpu_spec cpu_specs[] = { __setup_cpu_power4, COMMON_PPC64_FW }, + { /* PPC970 */ + 0xffff0000, 0x00390000, "PPC970", + CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE | + CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_ALTIVEC_COMP, + COMMON_USER_PPC64 | PPC_FEATURE_HAS_ALTIVEC_COMP, + 128, 128, + __setup_cpu_power4, + COMMON_PPC64_FW + }, + { /* Power5 */ + 0xffff0000, 0x003a0000, "Power5", + CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE | + CPU_FTR_PPCAS_ARCH_V2, + COMMON_USER_PPC64, + 128, 128, + __setup_cpu_power4, + COMMON_PPC64_FW + }, { /* default match */ 0x00000000, 0x00000000, "(Power4-Compatible)", CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE | @@ -130,4 +150,13 @@ firmware_feature_t firmware_features_tab {FW_FEATURE_DUMP, "hcall-dump"}, {FW_FEATURE_INTERRUPT, "hcall-interrupt"}, {FW_FEATURE_MIGRATE, "hcall-migrate"}, + {FW_FEATURE_PERFMON, "hcall-perfmon"}, + {FW_FEATURE_CRQ, "hcall-crq"}, + {FW_FEATURE_VIO, "hcall-vio"}, + {FW_FEATURE_RDMA, "hcall-rdma"}, + {FW_FEATURE_LLAN, "hcall-lLAN"}, + {FW_FEATURE_BULK, "hcall-bulk"}, + {FW_FEATURE_XDABR, "hcall-xdabr"}, + {FW_FEATURE_MULTITCE, "hcall-multi-tce"}, + {FW_FEATURE_SPLPAR, "hcall-splpar"}, }; diff -puN include/asm-ppc64/cputable.h~ppc64-cputable include/asm-ppc64/cputable.h --- 25/include/asm-ppc64/cputable.h~ppc64-cputable 2004-01-13 23:22:33.000000000 -0800 +++ 25-akpm/include/asm-ppc64/cputable.h 2004-01-13 23:22:33.000000000 -0800 @@ -74,10 +74,20 @@ extern struct cpu_spec *cur_cpu_spec; #define FW_FEATURE_COPY (1UL<<4) #define FW_FEATURE_ASR (1UL<<5) #define FW_FEATURE_DEBUG (1UL<<6) -#define FW_FEATURE_PERF (1UL<<7) -#define FW_FEATURE_DUMP (1UL<<8) -#define FW_FEATURE_INTERRUPT (1UL<<9) -#define FW_FEATURE_MIGRATE (1UL<<10) +#define FW_FEATURE_TERM (1UL<<7) +#define FW_FEATURE_PERF (1UL<<8) +#define FW_FEATURE_DUMP (1UL<<9) +#define FW_FEATURE_INTERRUPT (1UL<<10) +#define FW_FEATURE_MIGRATE (1UL<<11) +#define FW_FEATURE_PERFMON (1UL<<12) +#define FW_FEATURE_CRQ (1UL<<13) +#define FW_FEATURE_VIO (1UL<<14) +#define FW_FEATURE_RDMA (1UL<<15) +#define FW_FEATURE_LLAN (1UL<<16) +#define FW_FEATURE_BULK (1UL<<17) +#define FW_FEATURE_XDABR (1UL<<18) +#define FW_FEATURE_MULTITCE (1UL<<19) +#define FW_FEATURE_SPLPAR (1UL<<20) typedef struct { unsigned long val; @@ -144,11 +154,24 @@ extern firmware_feature_t firmware_featu .llong 99b; \ .previous -#define END_FTR_SECTION_IFSET(msk) END_FTR_SECTION((msk), (msk)) -#define END_FTR_SECTION_IFCLR(msk) END_FTR_SECTION((msk), 0) +#else + +#define BEGIN_FTR_SECTION "98:\n" +#define END_FTR_SECTION(msk, val) \ +"99:\n" \ +" .section __ftr_fixup,\"a\";\n" \ +" .align 3;\n" \ +" .llong "#msk";\n" \ +" .llong "#val";\n" \ +" .llong 98b;\n" \ +" .llong 99b;\n" \ +" .previous\n" #endif /* __ASSEMBLY__ */ +#define END_FTR_SECTION_IFSET(msk) END_FTR_SECTION((msk), (msk)) +#define END_FTR_SECTION_IFCLR(msk) END_FTR_SECTION((msk), 0) + #endif /* __ASM_PPC_CPUTABLE_H */ #endif /* __KERNEL__ */ _