diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/rtl22xx')
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/Makefile.am | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/irq/irq.c | 70 |
2 files changed, 1 insertions, 71 deletions
diff --git a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am index 7a8ff9e58e..94fadf0507 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am +++ b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am @@ -36,7 +36,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/serial/legacy-console librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/rtl22xx/console/uart.c # IRQ librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-default-handler.c -librtemsbsp_a_SOURCES += irq/irq.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/rtl22xx/irq/irq.c # Cache librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/cache/nocache.c diff --git a/c/src/lib/libbsp/arm/rtl22xx/irq/irq.c b/c/src/lib/libbsp/arm/rtl22xx/irq/irq.c deleted file mode 100644 index 83e140bd7b..0000000000 --- a/c/src/lib/libbsp/arm/rtl22xx/irq/irq.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Philps LPC22XX Interrupt handler - * - * Copyright (c) 2010 embedded brains GmbH. - * - * Copyright (c) 2006 by Ray<rayx.cn@gmail.com> to support LPC ARM - * 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. - */ - -#include <rtems/score/armv4.h> - -#include <bsp.h> -#include <bsp/irq.h> -#include <bsp/irq-generic.h> - -#include <lpc22xx.h> - -void bsp_interrupt_dispatch(void) -{ - rtems_vector_number vector = 31 - __builtin_clz(VICIRQStatus); - - bsp_interrupt_handler_dispatch(vector); - - VICVectAddr = 0; -} - -void bsp_interrupt_vector_enable(rtems_vector_number vector) -{ - bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); - VICIntEnable |= 1 << vector; -} - -void bsp_interrupt_vector_disable(rtems_vector_number vector) -{ - bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); - VICIntEnClr = 1 << vector; -} - -rtems_status_code bsp_interrupt_facility_initialize(void) -{ - volatile uint32_t *ctrl = (volatile uint32_t *) VICVectCntlBase; - size_t i = 0; - - /* Disable all interrupts */ - VICIntEnClr = 0xffffffff; - - /* Use IRQ category */ - VICIntSelect = 0; - - /* Enable access in USER mode */ - VICProtection = 0; - - for (i = 0; i < 16; ++i) { - /* Disable vector mode */ - ctrl [i] = 0; - - /* Acknowledge interrupts for all priorities */ - VICVectAddr = 0; - } - - /* Acknowledge interrupts for all priorities */ - VICVectAddr = 0; - - /* Install the IRQ exception handler */ - _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); - - return RTEMS_SUCCESSFUL; -} |