From 2d354ea6a562761a1417bed71dfe8e722ef16409 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 27 Jul 2000 06:17:44 +0000 Subject: 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. --- c/src/exec/librpc/src/xdr/xdr_float.c | 2 +- c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore | 2 + .../lib/libbsp/arm/arm_bare_bsp/clock/Makefile.am | 32 ++++++ c/src/lib/libbsp/arm/arm_bare_bsp/clock/clockdrv.c | 22 ++++ .../libbsp/arm/arm_bare_bsp/console/Makefile.am | 4 +- c/src/lib/libbsp/arm/arm_bare_bsp/irq/Makefile.am | 2 +- c/src/lib/libbsp/arm/arm_bare_bsp/irq/irq.c | 2 + .../lib/libbsp/arm/arm_bare_bsp/start/Makefile.am | 17 ++-- .../lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c | 2 - c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c | 2 +- .../lib/libbsp/arm/arm_bare_bsp/wrapup/Makefile.am | 2 +- c/src/lib/libbsp/arm/shared/Makefile.am | 2 +- c/src/lib/libbsp/arm/shared/comm/console.c | 2 +- c/src/lib/libbsp/arm/shared/io/.cvsignore | 2 - c/src/lib/libbsp/arm/shared/io/Makefile.am | 22 ---- c/src/lib/libbsp/arm/shared/io/bspio.h | 38 ------- c/src/lib/libbsp/arm/shared/io/printk.c | 113 --------------------- c/src/lib/libbsp/arm/shared/irq/irq_init.c | 3 +- c/src/librpc/src/xdr/xdr_float.c | 2 +- cpukit/librpc/src/xdr/xdr_float.c | 2 +- 20 files changed, 78 insertions(+), 197 deletions(-) create mode 100644 c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore create mode 100644 c/src/lib/libbsp/arm/arm_bare_bsp/clock/Makefile.am create mode 100644 c/src/lib/libbsp/arm/arm_bare_bsp/clock/clockdrv.c delete mode 100644 c/src/lib/libbsp/arm/shared/io/.cvsignore delete mode 100644 c/src/lib/libbsp/arm/shared/io/Makefile.am delete mode 100644 c/src/lib/libbsp/arm/shared/io/bspio.h delete mode 100644 c/src/lib/libbsp/arm/shared/io/printk.c diff --git a/c/src/exec/librpc/src/xdr/xdr_float.c b/c/src/exec/librpc/src/xdr/xdr_float.c index cc1c5a3e0a..a069144da1 100644 --- a/c/src/exec/librpc/src/xdr/xdr_float.c +++ b/c/src/exec/librpc/src/xdr/xdr_float.c @@ -55,7 +55,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/xdr/xdr_float.c,v 1.7 1999/08/28 00 */ #if defined(__alpha__) || \ - defined(__arm32__) || \ + defined(__arm__) || \ defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || \ defined(__hppa__) || \ defined(__i386__) || \ diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/c/src/lib/libbsp/arm/arm_bare_bsp/clock/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in 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 #include -#include +#include #include 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 -#include +#include #include #include #include diff --git a/c/src/lib/libbsp/arm/shared/io/.cvsignore b/c/src/lib/libbsp/arm/shared/io/.cvsignore deleted file mode 100644 index 282522db03..0000000000 --- a/c/src/lib/libbsp/arm/shared/io/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in 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 -#include -#include - -/*-------------------------------------------------------------------------+ -| 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 #include -#include +#include #include /* @@ -32,6 +32,7 @@ void rtems_irq_mngt_init() { int i; long *vectorTable; + rtems_interrupt_level level; vectorTable = VECTOR_TABLE; diff --git a/c/src/librpc/src/xdr/xdr_float.c b/c/src/librpc/src/xdr/xdr_float.c index cc1c5a3e0a..a069144da1 100644 --- a/c/src/librpc/src/xdr/xdr_float.c +++ b/c/src/librpc/src/xdr/xdr_float.c @@ -55,7 +55,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/xdr/xdr_float.c,v 1.7 1999/08/28 00 */ #if defined(__alpha__) || \ - defined(__arm32__) || \ + defined(__arm__) || \ defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || \ defined(__hppa__) || \ defined(__i386__) || \ diff --git a/cpukit/librpc/src/xdr/xdr_float.c b/cpukit/librpc/src/xdr/xdr_float.c index cc1c5a3e0a..a069144da1 100644 --- a/cpukit/librpc/src/xdr/xdr_float.c +++ b/cpukit/librpc/src/xdr/xdr_float.c @@ -55,7 +55,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/xdr/xdr_float.c,v 1.7 1999/08/28 00 */ #if defined(__alpha__) || \ - defined(__arm32__) || \ + defined(__arm__) || \ defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || \ defined(__hppa__) || \ defined(__i386__) || \ -- cgit v1.2.3