diff options
| author | wdenk <wdenk> | 2003-12-06 19:49:23 +0000 | 
|---|---|---|
| committer | wdenk <wdenk> | 2003-12-06 19:49:23 +0000 | 
| commit | a8c7c708a9e0051c6358718c53572a4681eaa22b (patch) | |
| tree | b560561c91725eb2f86289da61ee676787419e37 /cpu/mpc824x/interrupts.c | |
| parent | fa1399ed127c8be507bf182dc7d8d61a54938d79 (diff) | |
| download | olio-uboot-2014.01-a8c7c708a9e0051c6358718c53572a4681eaa22b.tar.xz olio-uboot-2014.01-a8c7c708a9e0051c6358718c53572a4681eaa22b.zip | |
* 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/mpc824x/interrupts.c')
| -rw-r--r-- | cpu/mpc824x/interrupts.c | 99 | 
1 files changed, 5 insertions, 94 deletions
| diff --git a/cpu/mpc824x/interrupts.c b/cpu/mpc824x/interrupts.c index 825857b05..acb8947e0 100644 --- a/cpu/mpc824x/interrupts.c +++ b/cpu/mpc824x/interrupts.c @@ -27,62 +27,11 @@  #include <asm/processor.h>  #include <asm/pci_io.h>  #include <commproc.h> -#include <watchdog.h>  #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) +int interrupt_init_cpu (unsigned *decrementer_count)  { -	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) -{ -	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;  } |