diff options
Diffstat (limited to 'arch/powerpc/kernel/cputable.c')
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 1f9123f412ec..96a908f1cd87 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -48,6 +48,7 @@ extern void __setup_cpu_440x5(unsigned long offset, struct cpu_spec* spec); | |||
48 | extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec); | 48 | extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec); |
49 | extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec); | 49 | extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec); |
50 | extern void __setup_cpu_460sx(unsigned long offset, struct cpu_spec *spec); | 50 | extern void __setup_cpu_460sx(unsigned long offset, struct cpu_spec *spec); |
51 | extern void __setup_cpu_apm821xx(unsigned long offset, struct cpu_spec *spec); | ||
51 | extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec); | 52 | extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec); |
52 | extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec); | 53 | extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec); |
53 | extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec); | 54 | extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec); |
@@ -66,6 +67,10 @@ extern void __restore_cpu_ppc970(void); | |||
66 | extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec); | 67 | extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec); |
67 | extern void __restore_cpu_power7(void); | 68 | extern void __restore_cpu_power7(void); |
68 | #endif /* CONFIG_PPC64 */ | 69 | #endif /* CONFIG_PPC64 */ |
70 | #if defined(CONFIG_E500) | ||
71 | extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec); | ||
72 | extern void __restore_cpu_e5500(void); | ||
73 | #endif /* CONFIG_E500 */ | ||
69 | 74 | ||
70 | /* This table only contains "desktop" CPUs, it need to be filled with embedded | 75 | /* This table only contains "desktop" CPUs, it need to be filled with embedded |
71 | * ones as well... | 76 | * ones as well... |
@@ -1805,6 +1810,20 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1805 | .machine_check = machine_check_440A, | 1810 | .machine_check = machine_check_440A, |
1806 | .platform = "ppc440", | 1811 | .platform = "ppc440", |
1807 | }, | 1812 | }, |
1813 | { /* 464 in APM821xx */ | ||
1814 | .pvr_mask = 0xffffff00, | ||
1815 | .pvr_value = 0x12C41C80, | ||
1816 | .cpu_name = "APM821XX", | ||
1817 | .cpu_features = CPU_FTRS_44X, | ||
1818 | .cpu_user_features = COMMON_USER_BOOKE | | ||
1819 | PPC_FEATURE_HAS_FPU, | ||
1820 | .mmu_features = MMU_FTR_TYPE_44x, | ||
1821 | .icache_bsize = 32, | ||
1822 | .dcache_bsize = 32, | ||
1823 | .cpu_setup = __setup_cpu_apm821xx, | ||
1824 | .machine_check = machine_check_440A, | ||
1825 | .platform = "ppc440", | ||
1826 | }, | ||
1808 | { /* 476 core */ | 1827 | { /* 476 core */ |
1809 | .pvr_mask = 0xffff0000, | 1828 | .pvr_mask = 0xffff0000, |
1810 | .pvr_value = 0x11a50000, | 1829 | .pvr_value = 0x11a50000, |
@@ -1891,7 +1910,9 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1891 | .platform = "ppc5554", | 1910 | .platform = "ppc5554", |
1892 | } | 1911 | } |
1893 | #endif /* CONFIG_E200 */ | 1912 | #endif /* CONFIG_E200 */ |
1913 | #endif /* CONFIG_PPC32 */ | ||
1894 | #ifdef CONFIG_E500 | 1914 | #ifdef CONFIG_E500 |
1915 | #ifdef CONFIG_PPC32 | ||
1895 | { /* e500 */ | 1916 | { /* e500 */ |
1896 | .pvr_mask = 0xffff0000, | 1917 | .pvr_mask = 0xffff0000, |
1897 | .pvr_value = 0x80200000, | 1918 | .pvr_value = 0x80200000, |
@@ -1946,6 +1967,26 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1946 | .machine_check = machine_check_e500mc, | 1967 | .machine_check = machine_check_e500mc, |
1947 | .platform = "ppce500mc", | 1968 | .platform = "ppce500mc", |
1948 | }, | 1969 | }, |
1970 | #endif /* CONFIG_PPC32 */ | ||
1971 | { /* e5500 */ | ||
1972 | .pvr_mask = 0xffff0000, | ||
1973 | .pvr_value = 0x80240000, | ||
1974 | .cpu_name = "e5500", | ||
1975 | .cpu_features = CPU_FTRS_E500MC, | ||
1976 | .cpu_user_features = COMMON_USER_BOOKE, | ||
1977 | .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | | ||
1978 | MMU_FTR_USE_TLBILX, | ||
1979 | .icache_bsize = 64, | ||
1980 | .dcache_bsize = 64, | ||
1981 | .num_pmcs = 4, | ||
1982 | .oprofile_cpu_type = "ppc/e500mc", | ||
1983 | .oprofile_type = PPC_OPROFILE_FSL_EMB, | ||
1984 | .cpu_setup = __setup_cpu_e5500, | ||
1985 | .cpu_restore = __restore_cpu_e5500, | ||
1986 | .machine_check = machine_check_e500mc, | ||
1987 | .platform = "ppce5500", | ||
1988 | }, | ||
1989 | #ifdef CONFIG_PPC32 | ||
1949 | { /* default match */ | 1990 | { /* default match */ |
1950 | .pvr_mask = 0x00000000, | 1991 | .pvr_mask = 0x00000000, |
1951 | .pvr_value = 0x00000000, | 1992 | .pvr_value = 0x00000000, |
@@ -1960,8 +2001,8 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1960 | .machine_check = machine_check_e500, | 2001 | .machine_check = machine_check_e500, |
1961 | .platform = "powerpc", | 2002 | .platform = "powerpc", |
1962 | } | 2003 | } |
1963 | #endif /* CONFIG_E500 */ | ||
1964 | #endif /* CONFIG_PPC32 */ | 2004 | #endif /* CONFIG_PPC32 */ |
2005 | #endif /* CONFIG_E500 */ | ||
1965 | 2006 | ||
1966 | #ifdef CONFIG_PPC_BOOK3E_64 | 2007 | #ifdef CONFIG_PPC_BOOK3E_64 |
1967 | { /* This is a default entry to get going, to be replaced by | 2008 | { /* This is a default entry to get going, to be replaced by |