From a8c7c708a9e0051c6358718c53572a4681eaa22b Mon Sep 17 00:00:00 2001 From: wdenk Date: Sat, 6 Dec 2003 19:49:23 +0000 Subject: * 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 --- cpu/mpc824x/interrupts.c | 99 +++--------------------------------------------- 1 file changed, 5 insertions(+), 94 deletions(-) (limited to 'cpu/mpc824x') diff --git a/cpu/mpc824x/interrupts.c b/cpu/mpc824x/interrupts.c index 825857b..acb8947 100644 --- a/cpu/mpc824x/interrupts.c +++ b/cpu/mpc824x/interrupts.c @@ -27,62 +27,11 @@ #include #include #include -#include #include "drivers/epic.h" -/****************************************************************************/ - -unsigned decrementer_count; /* count val 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) +int interrupt_init_cpu (unsigned *decrementer_count) { - 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) -{ - decrementer_count = (get_bus_freq (0) / 4) / CFG_HZ; + *decrementer_count = (get_bus_freq (0) / 4) / CFG_HZ; /* * It's all broken at the moment and I currently don't need @@ -96,10 +45,6 @@ int interrupt_init (void) /* EPIC won't generate INT unless Current Task Pri < 15 */ epicCurTaskPrioSet(0); - set_dec (decrementer_count); - - set_msr (get_msr () | MSR_EE); - return (0); } @@ -141,42 +86,8 @@ void irq_free_handler (int vec) vga? */ -volatile ulong timestamp = 0; - -void timer_interrupt (struct pt_regs *regs) -{ - /* Restore Decrementer Count */ - set_dec (decrementer_count); - - timestamp++; - -#if defined(CONFIG_WATCHDOG) || defined (CONFIG_HW_WATCHDOG) - if ((timestamp % (CFG_HZ / 2)) == 0) { - WATCHDOG_RESET (); - } -#endif /* CONFIG_WATCHDOG */ -#if defined(CONFIG_SHOW_ACTIVITY) && defined(CONFIG_OXC) - if ((timestamp % (CFG_HZ / 10)) == 0) { - { - extern void oxc_toggle_activeled (void); - - oxc_toggle_activeled (); - } - } -#endif -} - -void reset_timer (void) -{ - timestamp = 0; -} - -ulong get_timer (ulong base) -{ - return (timestamp - base); -} - -void set_timer (ulong t) +void timer_interrupt_cpu (struct pt_regs *regs, ulong timestamp) { - timestamp = t; + /* nothing to do here */ + return; } -- cgit v1.1