diff options
author | Manuel Lauss <mano@roarinelk.homelinux.net> | 2007-12-06 03:07:55 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2008-01-29 05:14:59 -0500 |
commit | 237cfee1db66147aef4457f02b56a41e6f84bfd3 (patch) | |
tree | 75560d951a0a18184040d03184b9d4b2cff20f02 /arch | |
parent | c5ec1983e45d25446a023e98207e30ab1bf2311a (diff) |
[MIPS] Alchemy: Au1210/Au1250 CPU support
This patch adds IDs for new Au1200 variants: Au1210 and Au1250.
They are essentially identical to the Au1200 except for the Au1210
which has a different SoC-ID in the PRId register [bits 31:24].
The Au1250 is a "Au1200 V0.2".
Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/kernel/cpu-probe.c | 9 | ||||
-rw-r--r-- | arch/mips/mm/c-r4k.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/tlbex.c | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 5c2794391bf..5861a432a52 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -188,6 +188,8 @@ static inline void check_wait(void) | |||
188 | case CPU_AU1500: | 188 | case CPU_AU1500: |
189 | case CPU_AU1550: | 189 | case CPU_AU1550: |
190 | case CPU_AU1200: | 190 | case CPU_AU1200: |
191 | case CPU_AU1210: | ||
192 | case CPU_AU1250: | ||
191 | if (allow_au1k_wait) | 193 | if (allow_au1k_wait) |
192 | cpu_wait = au1k_wait; | 194 | cpu_wait = au1k_wait; |
193 | break; | 195 | break; |
@@ -733,6 +735,11 @@ static inline void cpu_probe_alchemy(struct cpuinfo_mips *c) | |||
733 | break; | 735 | break; |
734 | case 4: | 736 | case 4: |
735 | c->cputype = CPU_AU1200; | 737 | c->cputype = CPU_AU1200; |
738 | if (2 == (c->processor_id & 0xff)) | ||
739 | c->cputype = CPU_AU1250; | ||
740 | break; | ||
741 | case 5: | ||
742 | c->cputype = CPU_AU1210; | ||
736 | break; | 743 | break; |
737 | default: | 744 | default: |
738 | panic("Unknown Au Core!"); | 745 | panic("Unknown Au Core!"); |
@@ -858,6 +865,8 @@ static __init const char *cpu_to_name(struct cpuinfo_mips *c) | |||
858 | case CPU_AU1100: name = "Au1100"; break; | 865 | case CPU_AU1100: name = "Au1100"; break; |
859 | case CPU_AU1550: name = "Au1550"; break; | 866 | case CPU_AU1550: name = "Au1550"; break; |
860 | case CPU_AU1200: name = "Au1200"; break; | 867 | case CPU_AU1200: name = "Au1200"; break; |
868 | case CPU_AU1210: name = "Au1210"; break; | ||
869 | case CPU_AU1250: name = "Au1250"; break; | ||
861 | case CPU_4KEC: name = "MIPS 4KEc"; break; | 870 | case CPU_4KEC: name = "MIPS 4KEc"; break; |
862 | case CPU_4KSC: name = "MIPS 4KSc"; break; | 871 | case CPU_4KSC: name = "MIPS 4KSc"; break; |
863 | case CPU_VR41XX: name = "NEC Vr41xx"; break; | 872 | case CPU_VR41XX: name = "NEC Vr41xx"; break; |
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index 06074948450..02bd180f0e0 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
@@ -980,6 +980,8 @@ static void __init probe_pcache(void) | |||
980 | case CPU_AU1100: | 980 | case CPU_AU1100: |
981 | case CPU_AU1550: | 981 | case CPU_AU1550: |
982 | case CPU_AU1200: | 982 | case CPU_AU1200: |
983 | case CPU_AU1210: | ||
984 | case CPU_AU1250: | ||
983 | c->icache.flags |= MIPS_CACHE_IC_F_DC; | 985 | c->icache.flags |= MIPS_CACHE_IC_F_DC; |
984 | break; | 986 | break; |
985 | } | 987 | } |
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index c298344fcb7..d026302e0ec 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -917,6 +917,8 @@ static void __init build_tlb_write_entry(u32 **p, struct label **l, | |||
917 | case CPU_AU1500: | 917 | case CPU_AU1500: |
918 | case CPU_AU1550: | 918 | case CPU_AU1550: |
919 | case CPU_AU1200: | 919 | case CPU_AU1200: |
920 | case CPU_AU1210: | ||
921 | case CPU_AU1250: | ||
920 | case CPU_PR4450: | 922 | case CPU_PR4450: |
921 | i_nop(p); | 923 | i_nop(p); |
922 | tlbw(p); | 924 | tlbw(p); |