Merge remote branch 'jwb/next' into next
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 14 Oct 2010 23:45:03 +0000 (10:45 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 14 Oct 2010 23:45:03 +0000 (10:45 +1100)
1  2 
arch/powerpc/kernel/cputable.c

@@@ -48,6 -48,7 +48,7 @@@ extern void __setup_cpu_440x5(unsigned 
  extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec);
  extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec);
  extern void __setup_cpu_460sx(unsigned long offset, struct cpu_spec *spec);
+ extern void __setup_cpu_apm821xx(unsigned long offset, struct cpu_spec *spec);
  extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
  extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec);
  extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec);
@@@ -66,10 -67,6 +67,10 @@@ extern void __restore_cpu_ppc970(void)
  extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec);
  extern void __restore_cpu_power7(void);
  #endif /* CONFIG_PPC64 */
 +#if defined(CONFIG_E500)
 +extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec);
 +extern void __restore_cpu_e5500(void);
 +#endif /* CONFIG_E500 */
  
  /* This table only contains "desktop" CPUs, it need to be filled with embedded
   * ones as well...
@@@ -1809,6 -1806,20 +1810,20 @@@ static struct cpu_spec __initdata cpu_s
                .machine_check          = machine_check_440A,
                .platform               = "ppc440",
        },
+       { /* 464 in APM821xx */
+               .pvr_mask               = 0xffffff00,
+               .pvr_value              = 0x12C41C80,
+               .cpu_name               = "APM821XX",
+               .cpu_features           = CPU_FTRS_44X,
+               .cpu_user_features      = COMMON_USER_BOOKE |
+                       PPC_FEATURE_HAS_FPU,
+               .mmu_features           = MMU_FTR_TYPE_44x,
+               .icache_bsize           = 32,
+               .dcache_bsize           = 32,
+               .cpu_setup              = __setup_cpu_apm821xx,
+               .machine_check          = machine_check_440A,
+               .platform               = "ppc440",
+       },
        { /* 476 core */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x11a50000,
                .platform               = "ppc5554",
        }
  #endif /* CONFIG_E200 */
 +#endif /* CONFIG_PPC32 */
  #ifdef CONFIG_E500
 +#ifdef CONFIG_PPC32
        {       /* e500 */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x80200000,
                .machine_check          = machine_check_e500mc,
                .platform               = "ppce500mc",
        },
 +#endif /* CONFIG_PPC32 */
 +      {       /* e5500 */
 +              .pvr_mask               = 0xffff0000,
 +              .pvr_value              = 0x80240000,
 +              .cpu_name               = "e5500",
 +              .cpu_features           = CPU_FTRS_E500MC,
 +              .cpu_user_features      = COMMON_USER_BOOKE,
 +              .mmu_features           = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
 +                      MMU_FTR_USE_TLBILX,
 +              .icache_bsize           = 64,
 +              .dcache_bsize           = 64,
 +              .num_pmcs               = 4,
 +              .oprofile_cpu_type      = "ppc/e500mc",
 +              .oprofile_type          = PPC_OPROFILE_FSL_EMB,
 +              .cpu_setup              = __setup_cpu_e5500,
 +              .cpu_restore            = __restore_cpu_e5500,
 +              .machine_check          = machine_check_e500mc,
 +              .platform               = "ppce5500",
 +      },
 +#ifdef CONFIG_PPC32
        {       /* default match */
                .pvr_mask               = 0x00000000,
                .pvr_value              = 0x00000000,
                .machine_check          = machine_check_e500,
                .platform               = "powerpc",
        }
 -#endif /* CONFIG_E500 */
  #endif /* CONFIG_PPC32 */
 +#endif /* CONFIG_E500 */
  
  #ifdef CONFIG_PPC_BOOK3E_64
        {       /* This is a default entry to get going, to be replaced by