summaryrefslogtreecommitdiff
path: root/cpu/mpc5xxx
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-12-06 19:49:23 +0000
committerwdenk <wdenk>2003-12-06 19:49:23 +0000
commita8c7c708a9e0051c6358718c53572a4681eaa22b (patch)
treeb560561c91725eb2f86289da61ee676787419e37 /cpu/mpc5xxx
parentfa1399ed127c8be507bf182dc7d8d61a54938d79 (diff)
downloadu-boot-imx-a8c7c708a9e0051c6358718c53572a4681eaa22b.zip
u-boot-imx-a8c7c708a9e0051c6358718c53572a4681eaa22b.tar.gz
u-boot-imx-a8c7c708a9e0051c6358718c53572a4681eaa22b.tar.bz2
* Patch by Gleb Natapov, 19 Sep 2003:
Move most of the timer interrupt related PPC code to ppc_lib/interrupts.c * Patch by Anders Larsen, 17 Sep 2003: Bring ARM memory layout in sync with the documentation: stack and malloc-heap are now located _below_ the U-Boot code
Diffstat (limited to 'cpu/mpc5xxx')
-rw-r--r--cpu/mpc5xxx/interrupts.c106
1 files changed, 5 insertions, 101 deletions
diff --git a/cpu/mpc5xxx/interrupts.c b/cpu/mpc5xxx/interrupts.c
index 5aa4388..7bacecd 100644
--- a/cpu/mpc5xxx/interrupts.c
+++ b/cpu/mpc5xxx/interrupts.c
@@ -32,79 +32,10 @@
#include <asm/processor.h>
#include <command.h>
-/****************************************************************************/
-
-unsigned decrementer_count; /* count value for 1e6/HZ microseconds */
-
-/****************************************************************************/
-
-static __inline__ unsigned long
-get_msr(void)
-{
- unsigned long msr;
-
- asm volatile("mfmsr %0" : "=r" (msr) :);
- return msr;
-}
-
-static __inline__ void
-set_msr(unsigned long msr)
-{
- asm volatile("mtmsr %0" : : "r" (msr));
-}
-
-static __inline__ unsigned long
-get_dec(void)
-{
- unsigned long val;
-
- asm volatile("mfdec %0" : "=r" (val) :);
- return val;
-}
-
-
-static __inline__ void
-set_dec(unsigned long val)
-{
- asm volatile("mtdec %0" : : "r" (val));
-}
-
-
-void
-enable_interrupts(void)
-{
- set_msr (get_msr() | MSR_EE);
-}
-
-/* returns flag if MSR_EE was set before */
-int
-disable_interrupts(void)
-{
- ulong msr = get_msr();
- set_msr (msr & ~MSR_EE);
- return ((msr & MSR_EE) != 0);
-}
-
-/****************************************************************************/
-
-int interrupt_init(void)
+int interrupt_init_cpu (ulong *decrementer_count)
{
- decrementer_count = get_tbclk() / CFG_HZ;
+ *decrementer_count = get_tbclk() / CFG_HZ;
-#ifdef DEBUG
- puts("interrupt_init: setting actual decremter\n");
-#endif
- set_dec (get_tbclk() / CFG_HZ);
-
-#ifdef DEBUG
- printf("interrupt_init: enabling interrupts (msr = %08lx)\n",
- get_msr());
-#endif
- set_msr (get_msr() | MSR_EE);
-
-#ifdef DEBUG
- printf("interrupt_init: done. (msr = %08lx)\n", get_msr());
-#endif
return (0);
}
@@ -119,38 +50,11 @@ external_interrupt(struct pt_regs *regs)
puts("external_interrupt (oops!)\n");
}
-volatile ulong timestamp = 0;
-
-/*
- * timer_interrupt - gets called when the decrementer overflows,
- * with interrupts disabled.
- * Trivial implementation - no need to be really accurate.
- */
-void
-timer_interrupt(struct pt_regs *regs)
-{
- set_dec(decrementer_count);
- timestamp++;
-}
-
-/****************************************************************************/
-
-void
-reset_timer(void)
-{
- timestamp = 0;
-}
-
-ulong
-get_timer(ulong base)
-{
- return (timestamp - base);
-}
-
void
-set_timer(ulong t)
+timer_interrupt_cpu (struct pt_regs *regs)
{
- timestamp = t;
+ /* nothing to do here */
+ return;
}
/****************************************************************************/