summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/rtl22xx
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-04-30 14:24:03 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-04-30 14:24:03 +0000
commit336d67ac1711f4c53fc567a343cd28bcfc1843d3 (patch)
tree0581d6c725f0e87ab2e057449a321ce2e5f8510f /c/src/lib/libbsp/arm/rtl22xx
parent2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-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/ChangeLog7
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/Makefile.am10
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/console/uart.c6
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/include/bsp.h1
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/network/network.c4
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/preinstall.am8
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/startup/bspstart.c15
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 */
/*