diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-04-30 14:24:03 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-04-30 14:24:03 +0000 |
commit | 336d67ac1711f4c53fc567a343cd28bcfc1843d3 (patch) | |
tree | 0581d6c725f0e87ab2e057449a321ce2e5f8510f /c/src/lib/libbsp/arm/rtl22xx | |
parent | 2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-336d67ac1711f4c53fc567a343cd28bcfc1843d3.tar.bz2 |
2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de>
* Makefile.am, preinstall.am: Added generic interrupt support modules.
* include/bsp.h: Define BSP_FEATURE_IRQ_EXTENSION.
* startup/bspstart.c, network/network.c: Interrupt support changes.
* console/uart.c: Fixed warnings.
Diffstat (limited to 'c/src/lib/libbsp/arm/rtl22xx')
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/ChangeLog | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/Makefile.am | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/console/uart.c | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/include/bsp.h | 1 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/network/network.c | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/preinstall.am | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/startup/bspstart.c | 15 |
7 files changed, 35 insertions, 16 deletions
diff --git a/c/src/lib/libbsp/arm/rtl22xx/ChangeLog b/c/src/lib/libbsp/arm/rtl22xx/ChangeLog index 30b46366dd..3a6318ef71 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/ChangeLog +++ b/c/src/lib/libbsp/arm/rtl22xx/ChangeLog @@ -1,5 +1,12 @@ 2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de> + * Makefile.am, preinstall.am: Added generic interrupt support modules. + * include/bsp.h: Define BSP_FEATURE_IRQ_EXTENSION. + * startup/bspstart.c, network/network.c: Interrupt support changes. + * console/uart.c: Fixed warnings. + +2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de> + * make/custom/rtl22xx.cfg: Use VFP floating point model. 2010-04-09 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> diff --git a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am index bbda3ace65..5ae5fa357a 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am +++ b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am @@ -13,6 +13,8 @@ dist_project_lib_DATA = bsp_specs include_HEADERS = include/bsp.h include_HEADERS += ../../shared/include/tm27.h +include_bsp_HEADERS = + nodist_include_HEADERS = include/bspopts.h nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h DISTCLEANFILES = include/bspopts.h @@ -40,6 +42,14 @@ libbsp_a_SOURCES += ../../shared/bsplibc.c ../../shared/bsppost.c \ ../../shared/gnatinstallhandler.c # console libbsp_a_SOURCES += ../../shared/console.c +# IRQ +include_bsp_HEADERS += ../../shared/include/irq-generic.h \ + ../../shared/include/irq-info.h +libbsp_a_SOURCES += ../../shared/src/irq-generic.c \ + ../../shared/src/irq-legacy.c \ + ../../shared/src/irq-info.c \ + ../../shared/src/irq-shell.c \ + ../../shared/src/irq-server.c # simple_abort libbsp_a_SOURCES += ../shared/abort/simple_abort.c # debugio diff --git a/c/src/lib/libbsp/arm/rtl22xx/console/uart.c b/c/src/lib/libbsp/arm/rtl22xx/console/uart.c index f774c476bf..63a9f672e1 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/console/uart.c +++ b/c/src/lib/libbsp/arm/rtl22xx/console/uart.c @@ -39,7 +39,7 @@ int dbg_dly; static int uart_first_open(int major, int minor, void *arg); static int uart_last_close(int major, int minor, void *arg); static int uart_read(int minor); -static int uart_write(int minor, const char *buf, int len); +static ssize_t uart_write(int minor, const char *buf, size_t len); static void uart_init(int minor); static void uart_write_polled(int minor, char c); static int uart_set_attributes(int minor, const struct termios *t); @@ -180,9 +180,9 @@ static int uart_read(int minor) * * return 1 on success, -1 on error */ -static int uart_write(int minor, const char *buf, int len) +static ssize_t uart_write(int minor, const char *buf, size_t len) { - int i; + size_t i; if (minor == 0) { for (i = 0; i < len; i++) { diff --git a/c/src/lib/libbsp/arm/rtl22xx/include/bsp.h b/c/src/lib/libbsp/arm/rtl22xx/include/bsp.h index aa6694278b..71e64b43f7 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/include/bsp.h +++ b/c/src/lib/libbsp/arm/rtl22xx/include/bsp.h @@ -25,6 +25,7 @@ extern "C" { #include <rtems/console.h> #include <rtems/clockdrv.h> +#define BSP_FEATURE_IRQ_EXTENSION #define CONFIG_ARM_CLK 60000000L /* cclk=cco/(2*P) */ diff --git a/c/src/lib/libbsp/arm/rtl22xx/network/network.c b/c/src/lib/libbsp/arm/rtl22xx/network/network.c index d2bdf832dc..3b548628bf 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/network/network.c +++ b/c/src/lib/libbsp/arm/rtl22xx/network/network.c @@ -1,7 +1,7 @@ /*Note: this file is copy from 7312 BSP, and untested yet*/ #include <rtems.h> #include <sys/mbuf.h> -#include <irq.h> +#include <bsp/irq.h> #include <libchip/cs8900.h> #define CS8900_BASE 0x20000300 @@ -10,7 +10,7 @@ unsigned int bsp_cs8900_memory_base = 0; cs8900_device *g_cs; void cs8900_isr(rtems_irq_hdl_param unused); rtems_irq_connect_data cs8900_isr_data = {LPC22xx_INTERRUPT_EINT2, - (rtems_irq_hdl)cs8900_isr, + cs8900_isr, NULL, NULL, NULL, diff --git a/c/src/lib/libbsp/arm/rtl22xx/preinstall.am b/c/src/lib/libbsp/arm/rtl22xx/preinstall.am index 0db79161d6..d72109590a 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/preinstall.am +++ b/c/src/lib/libbsp/arm/rtl22xx/preinstall.am @@ -69,3 +69,11 @@ $(PROJECT_INCLUDE)/uart.h: ../../arm/shared/comm/uart.h $(PROJECT_INCLUDE)/$(dir $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/uart.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/uart.h +$(PROJECT_INCLUDE)/bsp/irq-generic.h: ../../shared/include/irq-generic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-generic.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-generic.h + +$(PROJECT_INCLUDE)/bsp/irq-info.h: ../../shared/include/irq-info.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-info.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-info.h + diff --git a/c/src/lib/libbsp/arm/rtl22xx/startup/bspstart.c b/c/src/lib/libbsp/arm/rtl22xx/startup/bspstart.c index bb741130a0..1cc513c0c1 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/startup/bspstart.c +++ b/c/src/lib/libbsp/arm/rtl22xx/startup/bspstart.c @@ -11,12 +11,12 @@ */ #include <bsp.h> +#include <bsp/irq-generic.h> #include <lpc22xx.h> /* * Function prototypes */ -extern void rtems_irq_mngt_init(void); extern void rtems_exception_init_mngt(void); extern void UART0_Ini(void); extern void printi(unsigned long); @@ -77,15 +77,6 @@ void bsp_start_default( void ) // MAMTIM = 3; //MAMCR = 2; - /* init VIC */ - VICIntEnClr = 0xffffffff; - VICVectAddr = 0; - VICIntSelect = 0; - - /* disable interrupts */ - /* Setup interrupt controller.*/ - VICProtection = 0; - UART0_Ini(); /* @@ -96,7 +87,9 @@ void bsp_start_default( void ) /* * Init rtems interrupt management */ - rtems_irq_mngt_init(); + if (bsp_interrupt_initialize() != RTEMS_SUCCESSFUL) { + _CPU_Fatal_halt(0xe); + } } /* bsp_start */ /* |