aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
authorPete Popov <ppopov@embeddedalley.com>2005-07-14 13:47:57 -0400
committerRalf Baechle <ralf@linux-mips.org>2005-10-29 14:31:54 -0400
commitbdf21b18b4abf983db38f04ef7fec88f47389867 (patch)
treeb7e551f09f0ee39f4a59132be4c0890e1ba80d91 /arch/mips/kernel
parente01402b115cccb6357f956649487aca2c6f7fbba (diff)
Philips PNX8550 support: MIPS32-like core with 2 Trimedias on it.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/cpu-probe.c19
-rw-r--r--arch/mips/kernel/proc.c3
-rw-r--r--arch/mips/kernel/time.c3
3 files changed, 24 insertions, 1 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 844126b39ed3..70c8ad9bc8fc 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -121,6 +121,7 @@ static inline void check_wait(void)
121 case CPU_24K: 121 case CPU_24K:
122 case CPU_25KF: 122 case CPU_25KF:
123 case CPU_34K: 123 case CPU_34K:
124 case CPU_PR4450:
124 cpu_wait = r4k_wait; 125 cpu_wait = r4k_wait;
125 printk(" available.\n"); 126 printk(" available.\n");
126 break; 127 break;
@@ -624,6 +625,21 @@ static inline void cpu_probe_sandcraft(struct cpuinfo_mips *c)
624 } 625 }
625} 626}
626 627
628static inline void cpu_probe_philips(struct cpuinfo_mips *c)
629{
630 decode_configs(c);
631 switch (c->processor_id & 0xff00) {
632 case PRID_IMP_PR4450:
633 c->cputype = CPU_PR4450;
634 c->isa_level = MIPS_CPU_ISA_M32;
635 break;
636 default:
637 panic("Unknown Philips Core!"); /* REVISIT: die? */
638 break;
639 }
640}
641
642
627__init void cpu_probe(void) 643__init void cpu_probe(void)
628{ 644{
629 struct cpuinfo_mips *c = &current_cpu_data; 645 struct cpuinfo_mips *c = &current_cpu_data;
@@ -649,6 +665,9 @@ __init void cpu_probe(void)
649 case PRID_COMP_SANDCRAFT: 665 case PRID_COMP_SANDCRAFT:
650 cpu_probe_sandcraft(c); 666 cpu_probe_sandcraft(c);
651 break; 667 break;
668 case PRID_COMP_PHILIPS:
669 cpu_probe_philips(c);
670 break;
652 default: 671 default:
653 c->cputype = CPU_UNKNOWN; 672 c->cputype = CPU_UNKNOWN;
654 } 673 }
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c
index 1bd40af508ed..e46a92d01d51 100644
--- a/arch/mips/kernel/proc.c
+++ b/arch/mips/kernel/proc.c
@@ -80,7 +80,8 @@ static const char *cpu_name[] = {
80 [CPU_VR4133] = "NEC VR4133", 80 [CPU_VR4133] = "NEC VR4133",
81 [CPU_VR4181] = "NEC VR4181", 81 [CPU_VR4181] = "NEC VR4181",
82 [CPU_VR4181A] = "NEC VR4181A", 82 [CPU_VR4181A] = "NEC VR4181A",
83 [CPU_SR71000] = "Sandcraft SR71000" 83 [CPU_SR71000] = "Sandcraft SR71000",
84 [CPU_PR4450] = "Philips PR4450",
84}; 85};
85 86
86 87
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index fbc153c8f833..a24651dfaaba 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -11,6 +11,7 @@
11 * Free Software Foundation; either version 2 of the License, or (at your 11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version. 12 * option) any later version.
13 */ 13 */
14#include <linux/config.h>
14#include <linux/types.h> 15#include <linux/types.h>
15#include <linux/kernel.h> 16#include <linux/kernel.h>
16#include <linux/init.h> 17#include <linux/init.h>
@@ -112,8 +113,10 @@ static void c0_timer_ack(void)
112{ 113{
113 unsigned int count; 114 unsigned int count;
114 115
116#ifndef CONFIG_SOC_PNX8550 /* pnx8550 resets to zero */
115 /* Ack this timer interrupt and set the next one. */ 117 /* Ack this timer interrupt and set the next one. */
116 expirelo += cycles_per_jiffy; 118 expirelo += cycles_per_jiffy;
119#endif
117 write_c0_compare(expirelo); 120 write_c0_compare(expirelo);
118 121
119 /* Check to see if we have missed any timer interrupts. */ 122 /* Check to see if we have missed any timer interrupts. */