summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/ss555/include
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2004-04-12 21:52:13 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2004-04-12 21:52:13 +0000
commita800d09cc79100fb8e10e10fa344c5218ce91d69 (patch)
tree353ae933c659bd80b1c37430448b2d8e3992b2cb /c/src/lib/libbsp/powerpc/ss555/include
parent2004-04-12 Ralf Corsepius <ralf_corsepius@rtems.org> (diff)
downloadrtems-a800d09cc79100fb8e10e10fa344c5218ce91d69.tar.bz2
2004-04-12 David Querbach <querbach@realtime.bc.ca>
* .cvsignore, ChangeLog, Makefile.am, README, bsp_specs, configure.ac, times, clock/p_clock.c, console/console.c, include/.cvsignore, include/bsp.h, include/coverhd.h, irq/irq.h, startup/bspstart.c, startup/iss555.c, startup/linkcmds, startup/start.S, wrapup/.cvsignore, wrapup/Makefile.am: New files.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/ss555/include')
-rw-r--r--c/src/lib/libbsp/powerpc/ss555/include/.cvsignore4
-rw-r--r--c/src/lib/libbsp/powerpc/ss555/include/bsp.h183
-rw-r--r--c/src/lib/libbsp/powerpc/ss555/include/coverhd.h117
3 files changed, 304 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/ss555/include/.cvsignore b/c/src/lib/libbsp/powerpc/ss555/include/.cvsignore
new file mode 100644
index 0000000000..5f1077556d
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/ss555/include/.cvsignore
@@ -0,0 +1,4 @@
+bspopts.h
+bspopts.h.in
+stamp-h
+stamp-h.in
diff --git a/c/src/lib/libbsp/powerpc/ss555/include/bsp.h b/c/src/lib/libbsp/powerpc/ss555/include/bsp.h
new file mode 100644
index 0000000000..4b229cb9c8
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/ss555/include/bsp.h
@@ -0,0 +1,183 @@
+/* bsp.h
+ *
+ * This include file contains all board IO definitions.
+ *
+ * This file includes definitions for the Intec SS555.
+ *
+ *
+ * SS555 port sponsored by Defence Research and Development Canada - Suffield
+ * Copyright (C) 2004, Real-Time Systems Inc. (querbach@realtime.bc.ca)
+ *
+ * Derived from c/src/lib/libbsp/powerpc/mbx8xx/include/bsp.h:
+ *
+ * COPYRIGHT (c) 1989-1998.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef __SS555_h
+#define __SS555_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <bspopts.h>
+
+#include <rtems.h>
+#include <console.h>
+#include <clockdrv.h>
+#include <mpc5xx.h>
+#include <mpc5xx/console.h>
+#include <libcpu/vectors.h>
+#include <bsp/irq.h>
+
+/*
+ * Clock definitions
+ */
+
+#define BSP_CRYSTAL_HZ 4000000 /* crystal frequency, Hz */
+#define BSP_CLOCK_HZ 40000000 /* CPU clock frequency, Hz
+
+/*
+ * I/O definitions
+ *
+ * The SS555 board includes a CPLD to control on-board features and
+ * off-board devices.
+ */
+typedef struct cpld_ {
+ rtems_unsigned8 cs3a[32]; /* Chip select 3A */
+ rtems_unsigned8 pad0[0x200000 - 0x000020];
+
+ rtems_unsigned8 cs3b[32]; /* Chip select 3B */
+ rtems_unsigned8 pad2[0x400000 - 0x200020];
+
+ rtems_unsigned8 cs3c[32]; /* Chip select 3C */
+ rtems_unsigned8 pad4[0x600000 - 0x400020];
+
+ rtems_unsigned8 cs3d[32]; /* Chip select 3D */
+ rtems_unsigned8 pad6[0x800000 - 0x600020];
+
+ rtems_unsigned8 serial_ints; /* Enable/disable serial interrupts */
+ rtems_unsigned8 serial_resets; /* Enable/disable serial resets */
+ rtems_unsigned8 serial_ack; /* Acknowledge serial transfers */
+ rtems_unsigned8 pad8[0xA00000 - 0x800003];
+
+ rtems_unsigned8 iflash_writess; /* Enable/disable internal-flash writes */
+ rtems_unsigned8 nflash_writess; /* Enable/disable NAND-flash writes */
+ rtems_unsigned8 padA[0xC00000 - 0xA00002];
+} cpld_t;
+
+extern volatile cpld_t cpld; /* defined in linkcmds */
+
+/*
+ * Define the time limits for RTEMS Test Suite test durations.
+ * Long test and short test duration limits are provided. These
+ * values are in seconds and need to be converted to ticks for the
+ * application.
+ *
+ */
+
+#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */
+#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */
+
+/*
+ * Stuff for Time Test 27
+ *
+ * The following require that IRQ7 be jumpered to ground. On the SS555,
+ * this can be done by shorting together CN5 pin 48 and CN5 pin 50.
+ */
+
+#define MUST_WAIT_FOR_INTERRUPT 1
+
+#define Declarations_for_tm27 \
+void tm27On() \
+{ \
+} \
+ \
+void tm27Off() \
+{ \
+} \
+ \
+int tm27IsOn() \
+{ \
+ return 1; \
+} \
+ \
+rtems_irq_connect_data tm27IrqData = { \
+ CPU_USIU_EXT_IRQ_7, \
+ (rtems_irq_hdl)0, \
+ (rtems_irq_enable)tm27On, \
+ (rtems_irq_disable)tm27Off, \
+ (rtems_irq_is_enabled)tm27IsOn \
+};
+
+#define Install_tm27_vector( handler ) \
+{ \
+ usiu.siel |= (1 << 17); \
+ usiu.sipend |= (1 << 17); \
+ \
+ tm27IrqData.hdl = (rtems_irq_hdl)handler; \
+ BSP_install_rtems_irq_handler (&tm27IrqData); \
+}
+
+#define Cause_tm27_intr() \
+{ \
+ usiu.siel &= ~(1 << 17); \
+}
+
+#define Clear_tm27_intr() \
+{ \
+ usiu.siel |= (1 << 17); \
+ usiu.sipend |= (1 << 17); \
+}
+
+#define Lower_tm27_intr() \
+{ \
+ ppc_cached_irq_mask |= (1 << 17); \
+ usiu.simask = ppc_cached_irq_mask; \
+}
+
+/* miscellaneous stuff assumed to exist */
+
+extern rtems_configuration_table BSP_Configuration;
+
+/*
+ * Device Driver Table Entries
+ */
+
+/*
+ * NOTE: Use the standard Console driver entry
+ */
+
+/*
+ * NOTE: Use the standard Clock driver entry
+ */
+
+/*
+ * How many libio files we want
+ */
+
+#define BSP_LIBIO_MAX_FDS 20
+
+/* functions */
+
+void bsp_cleanup( void );
+
+rtems_isr_entry set_vector( /* returns old vector */
+ rtems_isr_entry handler, /* isr routine */
+ rtems_vector_number vector, /* vector number */
+ int type /* RTEMS or RAW intr */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
diff --git a/c/src/lib/libbsp/powerpc/ss555/include/coverhd.h b/c/src/lib/libbsp/powerpc/ss555/include/coverhd.h
new file mode 100644
index 0000000000..573cbf8613
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/ss555/include/coverhd.h
@@ -0,0 +1,117 @@
+/* coverhd.h
+ *
+ * This include file has defines to represent the overhead associated
+ * with calling a particular directive from C. These are used in the
+ * Timing Test Suite to ignore the overhead required to pass arguments
+ * to directives. On some CPUs and/or target boards, this overhead
+ * is significant and makes it difficult to distinguish internal
+ * RTEMS execution time from that used to call the directive.
+ * This file should be updated after running the C overhead timing
+ * test. Once this update has been performed, the RTEMS Time Test
+ * Suite should be rebuilt to account for these overhead times in the
+ * timing results.
+ *
+ * NOTE: If these are all zero, then the times reported include
+ * all calling overhead including passing of arguments.
+ *
+ * COPYRIGHT (c) 1989-1998.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef __COVERHD_h
+#define __COVERHD_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * 40 MHz processor, running from external 2-1-1-1 burst SRAM.
+ */
+#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 0
+#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 0
+#define CALLING_OVERHEAD_TASK_CREATE 0
+#define CALLING_OVERHEAD_TASK_IDENT 0
+#define CALLING_OVERHEAD_TASK_START 0
+#define CALLING_OVERHEAD_TASK_RESTART 0
+#define CALLING_OVERHEAD_TASK_DELETE 0
+#define CALLING_OVERHEAD_TASK_SUSPEND 0
+#define CALLING_OVERHEAD_TASK_RESUME 0
+#define CALLING_OVERHEAD_TASK_SET_PRIORITY 0
+#define CALLING_OVERHEAD_TASK_MODE 0
+#define CALLING_OVERHEAD_TASK_GET_NOTE 0
+#define CALLING_OVERHEAD_TASK_SET_NOTE 0
+#define CALLING_OVERHEAD_TASK_WAKE_WHEN 2
+#define CALLING_OVERHEAD_TASK_WAKE_AFTER 0
+#define CALLING_OVERHEAD_INTERRUPT_CATCH 0
+#define CALLING_OVERHEAD_CLOCK_GET 2
+#define CALLING_OVERHEAD_CLOCK_SET 3
+#define CALLING_OVERHEAD_CLOCK_TICK 0
+
+#define CALLING_OVERHEAD_TIMER_CREATE 0
+#define CALLING_OVERHEAD_TIMER_IDENT 0
+#define CALLING_OVERHEAD_TIMER_DELETE 0
+#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 0
+#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 3
+#define CALLING_OVERHEAD_TIMER_RESET 0
+#define CALLING_OVERHEAD_TIMER_CANCEL 0
+#define CALLING_OVERHEAD_SEMAPHORE_CREATE 0
+#define CALLING_OVERHEAD_SEMAPHORE_IDENT 0
+#define CALLING_OVERHEAD_SEMAPHORE_DELETE 0
+#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 0
+#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 0
+#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 0
+
+#define CALLING_OVERHEAD_EVENT_SEND 0
+#define CALLING_OVERHEAD_EVENT_RECEIVE 0
+#define CALLING_OVERHEAD_SIGNAL_CATCH 0
+#define CALLING_OVERHEAD_SIGNAL_SEND 0
+#define CALLING_OVERHEAD_PARTITION_CREATE 0
+#define CALLING_OVERHEAD_PARTITION_IDENT 0
+#define CALLING_OVERHEAD_PARTITION_DELETE 0
+#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 0
+#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 0
+#define CALLING_OVERHEAD_REGION_CREATE 0
+#define CALLING_OVERHEAD_REGION_IDENT 0
+#define CALLING_OVERHEAD_REGION_DELETE 0
+#define CALLING_OVERHEAD_REGION_GET_SEGMENT 0
+#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 0
+#define CALLING_OVERHEAD_PORT_CREATE 0
+#define CALLING_OVERHEAD_PORT_IDENT 0
+#define CALLING_OVERHEAD_PORT_DELETE 0
+#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0
+#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0
+
+#define CALLING_OVERHEAD_IO_INITIALIZE 0
+#define CALLING_OVERHEAD_IO_OPEN 0
+#define CALLING_OVERHEAD_IO_CLOSE 0
+#define CALLING_OVERHEAD_IO_READ 0
+#define CALLING_OVERHEAD_IO_WRITE 0
+#define CALLING_OVERHEAD_IO_CONTROL 0
+#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 0
+#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 0
+#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 0
+#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 0
+#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 0
+#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 0
+#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 0
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */