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 1f9123f412e..96a908f1cd8 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 |
