diff options
Diffstat (limited to 'arch/arm/lib/interrupts.c')
| -rw-r--r-- | arch/arm/lib/interrupts.c | 19 | 
1 files changed, 18 insertions, 1 deletions
| diff --git a/arch/arm/lib/interrupts.c b/arch/arm/lib/interrupts.c index 1f2b81561..9a21e7b40 100644 --- a/arch/arm/lib/interrupts.c +++ b/arch/arm/lib/interrupts.c @@ -38,15 +38,20 @@  #include <common.h>  #include <asm/proc-armv/ptrace.h> -#ifdef CONFIG_USE_IRQ  DECLARE_GLOBAL_DATA_PTR; +#ifdef CONFIG_USE_IRQ  int interrupt_init (void)  {  	/*  	 * setup up stacks if necessary  	 */ +#if !defined(CONFIG_SYS_ARM_WITHOUT_RELOC) +	IRQ_STACK_START = gd->irq_sp - 4; +	IRQ_STACK_START_IN = gd->irq_sp + 8; +#else  	IRQ_STACK_START = _armboot_start - CONFIG_SYS_MALLOC_LEN - CONFIG_SYS_GBL_DATA_SIZE - 4; +#endif  	FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;  	return arch_interrupt_init(); @@ -81,6 +86,18 @@ int disable_interrupts (void)  	return (old & 0x80) == 0;  }  #else +#if !defined(CONFIG_SYS_ARM_WITHOUT_RELOC) +int interrupt_init (void) +{ +	/* +	 * setup up stacks if necessary +	 */ +	IRQ_STACK_START_IN = gd->irq_sp + 8; + +	return 0; +} +#endif +  void enable_interrupts (void)  {  	return; |