summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-07-27 06:17:44 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-07-27 06:17:44 +0000
commit2d354ea6a562761a1417bed71dfe8e722ef16409 (patch)
tree85f2250aac8208be0365caae8e27cfc583fa67ca /c/src/lib/libbsp
parentPort of RTEMS to the ARM processor family by Eric Valette (diff)
downloadrtems-2d354ea6a562761a1417bed71dfe8e722ef16409.tar.bz2
Minor problems addressed with the merger and with the arm_bare_bsp.
That BSP now has a stub clock driver so the tests can link even if they won't execute. A handful of Makefiles had to be updated and we had to account for printk.c being a shared file now.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore (renamed from c/src/lib/libbsp/arm/shared/io/.cvsignore)0
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/clock/Makefile.am32
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/clock/clockdrv.c22
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/console/Makefile.am4
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/irq/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/irq/irq.c2
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/start/Makefile.am17
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c2
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c2
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/wrapup/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/shared/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/shared/comm/console.c2
-rw-r--r--c/src/lib/libbsp/arm/shared/io/Makefile.am22
-rw-r--r--c/src/lib/libbsp/arm/shared/io/bspio.h38
-rw-r--r--c/src/lib/libbsp/arm/shared/io/printk.c113
-rw-r--r--c/src/lib/libbsp/arm/shared/irq/irq_init.c3
16 files changed, 73 insertions, 192 deletions
diff --git a/c/src/lib/libbsp/arm/shared/io/.cvsignore b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore
index 282522db03..282522db03 100644
--- a/c/src/lib/libbsp/arm/shared/io/.cvsignore
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/clock/Makefile.am b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/Makefile.am
new file mode 100644
index 0000000000..7c33173275
--- /dev/null
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/Makefile.am
@@ -0,0 +1,32 @@
+##
+## $Id$
+##
+
+AUTOMAKE_OPTIONS = foreign 1.4
+
+PGM = $(ARCH)/clock.rel
+
+C_FILES = clockdrv.c
+C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o)
+
+OBJS = $(C_O_FILES)
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../../../../../../automake/lib.am
+
+#
+# (OPTIONAL) Add local stuff here using +=
+#
+
+$(PGM): $(OBJS)
+ $(make-rel)
+
+# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
+
+all-local: $(ARCH) $(OBJS) $(PGM)
+
+.PRECIOUS: $(PGM)
+
+EXTRA_DIST = ckinit.c
+
+include $(top_srcdir)/../../../../../../automake/local.am
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/clock/clockdrv.c b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/clockdrv.c
new file mode 100644
index 0000000000..c49150fba6
--- /dev/null
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/clockdrv.c
@@ -0,0 +1,22 @@
+/*
+ * Instantiate the clock driver shell.
+ *
+ * Since there is no clock source on the simulator, all we do is
+ * make sure it will build.
+ *
+ * $Id$
+ */
+
+#define CLOCK_VECTOR 0
+
+#define Clock_driver_support_at_tick()
+
+#define Clock_driver_support_install_isr( _new, _old ) \
+ do { _old = 0; } while(0)
+
+
+#define Clock_driver_support_initialize_hardware()
+
+#define Clock_driver_support_shutdown_hardware()
+
+#include "../../../shared/clockdrv_shell.c"
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/console/Makefile.am b/c/src/lib/libbsp/arm/arm_bare_bsp/console/Makefile.am
index 668e7c05b5..d654c11ba0 100644
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/console/Makefile.am
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/console/Makefile.am
@@ -8,10 +8,10 @@ VPATH = @srcdir@/../../shared/comm:@srcdir@/../../shared/io
PGM = $(ARCH)/console.rel
-C_FILES = uart.c console.c printk.c
+C_FILES = uart.c console.c
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o)
-H_FILES = uart.h bspio.h
+H_FILES = uart.h
console_rel_OBJECTS = $(C_FILES:%.c=$(ARCH)/%.o)
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/irq/Makefile.am b/c/src/lib/libbsp/arm/arm_bare_bsp/irq/Makefile.am
index ec9fccfbf4..473034f50e 100644
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/irq/Makefile.am
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/irq/Makefile.am
@@ -32,7 +32,7 @@ include $(top_srcdir)/../../../../../../automake/lib.am
# (OPTIONAL) Add local stuff here using +=
#
-$(PGM): $(startup_rel_OBJECTS)
+$(PGM): $(irq_rel_OBJECTS)
$(make-rel)
all: $(PREINSTALL_FILES) $(ARCH) $(irq_rel_OBJECTS) $(PGM)
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/irq/irq.c b/c/src/lib/libbsp/arm/arm_bare_bsp/irq/irq.c
index b4f2d14931..e2ea33e916 100644
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/irq/irq.c
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/irq/irq.c
@@ -39,6 +39,7 @@ static int isValidInterrupt(int irq)
int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq)
{
rtems_irq_hdl *HdlTable;
+ rtems_interrupt_level level;
if (!isValidInterrupt(irq->name)) {
return 0;
@@ -72,6 +73,7 @@ int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq)
int BSP_remove_rtems_irq_handler (const rtems_irq_connect_data* irq)
{
rtems_irq_hdl *HdlTable;
+ rtems_interrupt_level level;
if (!isValidInterrupt(irq->name)) {
return 0;
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/start/Makefile.am b/c/src/lib/libbsp/arm/arm_bare_bsp/start/Makefile.am
index 22fda2740d..e5a9f26a27 100644
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/start/Makefile.am
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/start/Makefile.am
@@ -1,18 +1,16 @@
-##
+##
## $Id$
-##
+##
AUTOMAKE_OPTIONS = foreign 1.4
-PGMS = $(ARCH)/start.o
+PGM = $(ARCH)/start.o
S_FILES = start.S
S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.o)
OBJS = $(S_O_FILES)
-TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o
-
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
include $(top_srcdir)/../../../../../../automake/lib.am
@@ -20,13 +18,14 @@ include $(top_srcdir)/../../../../../../automake/lib.am
# (OPTIONAL) Add local stuff here using +=
#
-LINKCMDS = $(top_srcdir)/startup/linkcmds
-
-$(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o: $(ARCH)/start.o
+$(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o: $(PGM)
$(INSTALL_DATA) $< $@
+TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o
+
+all-local: $(ARCH) $(OBJS) $(PGM) $(TMPINSTALL_FILES)
-all: $(ARCH) $(OBJS) $(TMPINSTALL_FILES)
+.PRECIOUS: $(PGM)
EXTRA_DIST = start.S
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c b/c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c
index a3bfa2672a..93822cc40d 100644
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c
@@ -118,8 +118,6 @@ void bsp_start_default( void )
rtemsFreeMemStart += BSP_Configuration.work_space_size;
- console_reserve_resources(&BSP_Configuration);
-
/*
* Init rtems exceptions management
*/
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c b/c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c
index 7eb3056585..5342a2805a 100644
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c
@@ -16,7 +16,7 @@
#include <stdio.h>
#include <bsp.h>
-#include <bspio.h>
+#include <bspIo.h>
#include <rtems/libio.h>
void rtemsReboot (void)
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/wrapup/Makefile.am b/c/src/lib/libbsp/arm/arm_bare_bsp/wrapup/Makefile.am
index 8d7d4068b2..d4db966c77 100644
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/wrapup/Makefile.am
+++ b/c/src/lib/libbsp/arm/arm_bare_bsp/wrapup/Makefile.am
@@ -4,7 +4,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
-BSP_PIECES = console startup irq
+BSP_PIECES = clock console startup irq
# bummer; have to use $foreach since % pattern subst rules only replace 1x
OBJS = $(foreach piece, $(BSP_PIECES), ../$(piece)/$(ARCH)/*.o)
diff --git a/c/src/lib/libbsp/arm/shared/Makefile.am b/c/src/lib/libbsp/arm/shared/Makefile.am
index 2a3b172604..cfcf5d60f0 100644
--- a/c/src/lib/libbsp/arm/shared/Makefile.am
+++ b/c/src/lib/libbsp/arm/shared/Makefile.am
@@ -4,7 +4,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
-SUBDIRS = comm io irq
+SUBDIRS = comm irq
include $(top_srcdir)/../../../../../automake/subdirs.am
include $(top_srcdir)/../../../../../automake/local.am
diff --git a/c/src/lib/libbsp/arm/shared/comm/console.c b/c/src/lib/libbsp/arm/shared/comm/console.c
index ec623c3dda..2aa30d233e 100644
--- a/c/src/lib/libbsp/arm/shared/comm/console.c
+++ b/c/src/lib/libbsp/arm/shared/comm/console.c
@@ -21,7 +21,7 @@
void __assert (const char *file, int line, const char *msg);
#include <bsp.h>
-#include <bspio.h>
+#include <bspIo.h>
#include <irq.h>
#include <rtems/libio.h>
#include <termios.h>
diff --git a/c/src/lib/libbsp/arm/shared/io/Makefile.am b/c/src/lib/libbsp/arm/shared/io/Makefile.am
deleted file mode 100644
index 2c543cc77d..0000000000
--- a/c/src/lib/libbsp/arm/shared/io/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-##
-## $Id$
-##
-
-AUTOMAKE_OPTIONS = foreign 1.4
-
-H_FILES = bspio.h
-
-C_FILES = printk.c
-
-$(PROJECT_INCLUDE):
- $(mkinstalldirs) $@
-$(PROJECT_INCLUDE)/%.h: %.h
- $(INSTALL_DATA) $< $@
-
-PREINSTALL_FILES += $(PROJECT_INCLUDE) $(H_FILES:%.h=$(PROJECT_INCLUDE)/%.h)
-
-all: $(PREINSTALL_FILES)
-
-EXTRA_DIST = bspio.h printk.c
-
-include $(top_srcdir)/../../../../../automake/local.am
diff --git a/c/src/lib/libbsp/arm/shared/io/bspio.h b/c/src/lib/libbsp/arm/shared/io/bspio.h
deleted file mode 100644
index b4ef8510da..0000000000
--- a/c/src/lib/libbsp/arm/shared/io/bspio.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* bspIo.h
- *
- * This include file contains declaration of interface that
- * will be provided by the file contained in this directory.
- *
- *
- * COPYRIGHT (c) 2000 Canon Research France SA.
- * Emmanuel Raguet, mailto:raguet@crf.canon.fr
- *
- * The license and distribution terms for this file may be
- * found in found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-#ifndef _LIBBSP_ARM_SHARED_IO_BSP_IO_H
-#define _LIBBSP_ARM_SHARED_IO_BSP_IO_H
-
-/*
- * All the functions declared as extern after this comment
- * MUST be implemented in each BSP. Using this function,
- * this directory contains shared code that export higher level
- * functionnality described after the next command.
- */
-typedef void (*BSP_output_char_function_type) (char c);
-typedef char (*BSP_polling_getchar_function_type) (void);
-
-extern BSP_output_char_function_type BSP_output_char;
-extern BSP_polling_getchar_function_type BSP_poll_char;
-/*
- * All the function declared as extern after this comment
- * are available for each ix86 BSP by compiling and linking
- * the files contained in this directory PROVIDED definition
- * and initialisation of the previous variable are done.
- */
-void printk(char *fmt, ...);
-
-#endif
diff --git a/c/src/lib/libbsp/arm/shared/io/printk.c b/c/src/lib/libbsp/arm/shared/io/printk.c
deleted file mode 100644
index d53699a3de..0000000000
--- a/c/src/lib/libbsp/arm/shared/io/printk.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/*-------------------------------------------------------------------------+
-| printk.c - ARM BSP
-+--------------------------------------------------------------------------+
-|
-| COPYRIGHT (c) 2000 Canon Research France SA.
-| Emmanuel Raguet, mailto:raguet@crf.canon.fr
-|
-| The license and distribution terms for this file may be
-| found in found in the file LICENSE in this distribution or at
-| http://www.OARcorp.com/rtems/license.html.
-|
-| $Id$
-+--------------------------------------------------------------------------*/
-
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <bspio.h>
-
-/*-------------------------------------------------------------------------+
-| Function: printNum
-| Description: print number in a given base.
-| Global Variables: None.
-| Arguments: num - number to print, base - base used to print the number.
-| Returns: Nothing.
-+--------------------------------------------------------------------------*/
-static void
-printNum(long unsigned int num, int base, int sign)
-{
- long unsigned int n;
- int count;
- char toPrint[20];
-
- if ( (sign == 1) && ((long)num < 0) ) {
- BSP_output_char('-');
- num = -num;
- }
-
- count = 0;
- while ((n = num / base) > 0) {
- toPrint[count++] = (num - (n*base));
- num = n ;
- }
- toPrint[count++] = num;
-
- for (n = 0; n < count; n++){
- BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]);
- }
-} /* printNum */
-
-
-/*-------------------------------------------------------------------------+
-| Function: printk
-| Description: a simplified version of printf intended for use when the
- console is not yet initialized or in ISR's.
-| Global Variables: None.
-| Arguments: as in printf: fmt - format string, ... - unnamed arguments.
-| Returns: Nothing.
-+--------------------------------------------------------------------------*/
-void
-printk(char *fmt, ...)
-{
- va_list ap; /* points to each unnamed argument in turn */
- char c, *str;
- int lflag, base, sign;
-
- _CPU_ISR_Disable(level);
-
- va_start(ap, fmt); /* make ap point to 1st unnamed arg */
- for (; *fmt != '\0'; fmt++)
- {
- lflag = 0;
- base = 0;
- sign = 0;
- if (*fmt == '%')
- {
- if ((c = *++fmt) == 'l')
- {
- lflag = 1;
- c = *++fmt;
- }
- switch (c)
- {
- case 'o': case 'O': base = 8; sign = 0; break;
- case 'd': case 'D': base = 10; sign = 1; break;
- case 'u': case 'U': base = 10; sign = 0; break;
- case 'x': case 'X': base = 16; sign = 0; break;
- case 's':
- for (str = va_arg(ap, char *); *str; str++)
- BSP_output_char(*str);
- break;
- case 'c':
- BSP_output_char(va_arg(ap, char));
- break;
- default:
- BSP_output_char(c);
- break;
- } /* switch*/
-
- if (base)
- printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int),
- base, sign);
- }
- else
- {
- BSP_output_char(*fmt);
- }
- }
- va_end(ap); /* clean up when done */
- _CPU_ISR_Enable(level);
-
-} /* printk */
-
diff --git a/c/src/lib/libbsp/arm/shared/irq/irq_init.c b/c/src/lib/libbsp/arm/shared/irq/irq_init.c
index a815657f8d..add12a0e92 100644
--- a/c/src/lib/libbsp/arm/shared/irq/irq_init.c
+++ b/c/src/lib/libbsp/arm/shared/irq/irq_init.c
@@ -15,7 +15,7 @@
#include <irq.h>
#include <bsp.h>
-#include <bspio.h>
+#include <bspIo.h>
#include <registers.h>
/*
@@ -32,6 +32,7 @@ void rtems_irq_mngt_init()
{
int i;
long *vectorTable;
+ rtems_interrupt_level level;
vectorTable = VECTOR_TABLE;