From 8f8ccee0d9e1c3adfb1de484f26f6d9f6ff08708 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 23 Apr 2018 09:50:39 +0200 Subject: bsps: Move interrupt controller support to bsps This patch is a part of the BSP source reorganization. Update #3285. --- c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S | 323 ------------------------- 1 file changed, 323 deletions(-) delete mode 100644 c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S (limited to 'c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S') diff --git a/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S b/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S deleted file mode 100644 index c48466967b..0000000000 --- a/c/src/lib/libbsp/arm/edb7312/irq/bsp_irq_asm.S +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Cirrus EP7312 Intererrupt handler - */ - -/* - * Copyright (c) 2002 by Jay Monkman - * - * Copyright (c) 2002 by Charlie Steader - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. -*/ - -#define __asm__ -#include -#include - - .extern edb7312_interrupt_dispatch - -/* - * Function to obtain, execute an IT handler and acknowledge the IT - */ - - .globl bsp_interrupt_dispatch -bsp_interrupt_dispatch : -/* - * Look at interrupt status register to determine source. - * From source, determine offset into expanded vector table - * and load handler address into r0. - */ - - ldr r1, =0x80000000 /* close to interrupt status/mask registers 1 */ - ldr r2, =0x80001000 /* close to interrupt status/mask registers 2 */ - ldr r3, =0x80002000 /* close to interrupt status/mask registers 3 */ - - stmdb sp!,{r4, r5, r6} - -/* - * INTSR3 - */ -check_dai: - ldr r4, [r3, #0x240] - ldr r5, [r3, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ - tst r6, #0x0001 - beq check_extfiq - mov r0, #BSP_DAIINT - b get_handler - -/* - * INTSR1 - */ -check_extfiq: - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ - tst r6, #0x0001 - beq check_bl - mov r0, #BSP_EXTFIQ - b get_handler - -check_bl: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0002 - beq check_we - mov r0, #BSP_BLINT - b get_handler - -check_we: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0004 - beq check_mc - mov r0, #BSP_WEINT - b get_handler - -check_mc: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0008 - beq check_cs - mov r0, #BSP_MCINT - b get_handler - -check_cs: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0010 - beq check_e1 - mov r0, #BSP_CSINT - b get_handler - -check_e1: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0020 - beq check_e2 - mov r0, #BSP_EINT1 - b get_handler - -check_e2: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0040 - beq check_e3 - mov r0, #BSP_EINT2 - b get_handler - -check_e3: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0080 - beq check_tc1 - mov r0, #BSP_EINT3 - b get_handler - -check_tc1: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0100 - beq check_tc2 - mov r0, #BSP_TC1OI - b get_handler - -check_tc2: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0200 - beq check_rtc - mov r0, #BSP_TC2OI - b get_handler - -check_rtc: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0400 - beq check_tick - mov r0, #BSP_RTCMI - b get_handler - -check_tick: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0800 - beq check_utx1 - mov r0, #BSP_TINT - b get_handler - -check_utx1: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x1000 - beq check_urx1 - mov r0, #BSP_UTXINT1 - b get_handler - -check_urx1: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x2000 - beq check_ums - mov r0, #BSP_URXINT1 - b get_handler - -check_ums: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x4000 - beq check_sse - mov r0, #BSP_UMSINT - b get_handler - -check_sse: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r1, #0x240] - ldr r5, [r1, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x8000 - beq check_kbd - mov r0, #BSP_SSEOTI - b get_handler - -/* - * INTSR2 - */ -check_kbd: - ldr r4, [r2, #0x240] - ldr r5, [r2, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ - tst r6, #0x0001 - beq check_ss2rx - mov r0, #BSP_KBDINT - b get_handler - -check_ss2rx: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r2, #0x240] - ldr r5, [r2, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0002 - beq check_ss2tx - mov r0, #BSP_SS2RX - b get_handler - -check_ss2tx: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r2, #0x240] - ldr r5, [r2, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x0004 - beq check_utx2 - mov r0, #BSP_SS2TX - b get_handler - -check_utx2: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r2, #0x240] - ldr r5, [r2, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x1000 - beq check_urx2 - mov r0, #BSP_UTXINT2 - b get_handler - -check_urx2: -#if 0 -MUST REMEMBER TO UNCOMMENT IF THIS HANDLER MOVES - ldr r4, [r2, #0x240] - ldr r5, [r2, #0x280] - and r6, r4, r5 /* only look at interrupts which are enabled */ -#endif - tst r6, #0x2000 - beq IRQ_NoInterrupt - mov r0, #BSP_URXINT2 - b get_handler - -get_handler: - - ldmia sp!,{r4, r5, r6} - - /* - * re-enable interrupts at processor level as the current - * interrupt source is now masked via VEGA logic - */ -/* - mrs r1, cpsr - and r1, r1, #0xFFFFFF3F - msr cpsr, r1 -*/ - - stmdb sp!,{lr} - bl edb7312_interrupt_dispatch - ldmia sp!,{lr} - -IRQ_NoInterrupt: - /* return to the "main" interrupt handler */ - mov pc, lr -- cgit v1.2.3