]> git.sur5r.net Git - u-boot/blobdiff - cpu/74xx_7xx/interrupts.c
[new uImage] Rename and move print_image_hdr() routine
[u-boot] / cpu / 74xx_7xx / interrupts.c
index 2e2e45615db32d790cd8091db04c83d6d7e83e0a..f0ea4852654fb28c3ebce314e707cc331423d4d6 100644 (file)
 #include <commproc.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 (unsigned *decrementer_count)
 {
 #if defined(DEBUG) && !defined(CONFIG_AMIGAONEG3SE)
        printf("interrupt_init: GT main cause reg: %08x:%08x\n",
@@ -103,22 +48,8 @@ int interrupt_init(void)
               GTREGREAD(ETHERNET2_INTERRUPT_MASK_REGISTER));
        puts("interrupt_init: setting decrementer_count\n");
 #endif
-       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);
 }
 
@@ -141,40 +72,10 @@ volatile ulong timestamp = 0;
  * Trivial implementation - no need to be really accurate.
  */
 void
-timer_interrupt(struct pt_regs *regs)
-{
-       set_dec(decrementer_count);
-       timestamp++;
-
-#if defined(CONFIG_WATCHDOG)
-       if ((timestamp % (CFG_HZ / 2)) == 0) {
-#if defined(CONFIG_PCIPPC2)
-               extern void pcippc2_wdt_reset (void);
-
-               pcippc2_wdt_reset();
-#endif
-       }
-#endif /* CONFIG_WATCHDOG */
-}
-
-/****************************************************************************/
-
-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;
 }
 
 /****************************************************************************/