summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2008-09-08 15:44:26 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2008-09-08 15:44:26 +0000
commit3c12a247a9114febb2f88cde40bab83e90d23498 (patch)
treebeb27aa326cbe1476724d776edefc72021d3cfa5 /c
parent2008-09-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-3c12a247a9114febb2f88cde40bab83e90d23498.tar.bz2
added missing files, fixed some minors
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog15
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c67
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/network/network_fec.c22
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/network/network_scc.c16
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c7
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/timer/timer.c1
6 files changed, 107 insertions, 21 deletions
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog b/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog
index 1013a44214..68e2395afc 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog
@@ -1,4 +1,15 @@
-2008-09-08 Joel Sherrill <joel.sherrill@OARcorp.com>
+2008-09-08 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
- * ChangeLog: New file.
+ * network/network_scc.c, network/network_fec.c: fixed some data
+ type issues
+ * clock/p_clock.c: added misssing clock driver
+
+ * startup/bspstart.c, timer/timer.c:
+ added misssing timer variables
+
+ * ChangeLog: added changelog
+
+2008-09-08 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
+
+ * New BSP -- tqm8xx boards
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c b/c/src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c
new file mode 100644
index 0000000000..3067745acd
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c
@@ -0,0 +1,67 @@
+/*
+ * Clock Tick interrupt conexion code.
+ *
+ * COPYRIGHT (c) 1989-1997.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may in
+ * the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * Modified to support the MPC750.
+ * Modifications Copyright (c) 1999 Eric Valette valette@crf.canon.fr
+ *
+ * $Id$
+ */
+
+#include <bsp.h>
+#include <bsp/irq-generic.h>
+#include <rtems/bspIo.h>
+extern void clockOn(void*);
+extern void clockOff (void*);
+extern int clockIsOn(void*);
+extern void Clock_isr(void*);
+
+void BSP_clock_hdl(rtems_vector_number vecnum,
+ void * arg)
+{
+ Clock_isr(arg);
+}
+
+int BSP_get_clock_irq_level(void)
+{
+ /*
+ * Caution : if you change this, you must change the
+ * definition of BSP_PERIODIC_TIMER accordingly
+ */
+ return 6;
+}
+
+int BSP_disconnect_clock_handler (void)
+{
+ rtems_status_code sc;
+
+ clockOff(NULL);
+ /*
+ * remove interrupt handler
+ */
+ sc = rtems_interrupt_handler_remove(BSP_PERIODIC_TIMER,
+ BSP_clock_hdl,NULL);
+
+ return sc == RTEMS_SUCCESSFUL;
+}
+
+int BSP_connect_clock_handler (rtems_irq_hdl hdl)
+{
+ rtems_status_code sc;
+ /*
+ * install interrupt handler
+ */
+ sc = rtems_interrupt_handler_install(BSP_PERIODIC_TIMER,
+ "PIT clock",0,
+ BSP_clock_hdl,NULL);
+ if (sc == RTEMS_SUCCESSFUL) {
+ clockOn(NULL);
+ }
+ return sc == RTEMS_SUCCESSFUL;
+}
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/network/network_fec.c b/c/src/lib/libbsp/powerpc/tqm8xx/network/network_fec.c
index fd2346ed24..c48d475ebf 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/network/network_fec.c
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/network/network_fec.c
@@ -155,7 +155,7 @@ static struct m8xx_fec_enet_struct enet_driver[NIFACES];
/*
* FEC interrupt handler
*/
-static void m8xx_fec_interrupt_handler ()
+static void m8xx_fec_interrupt_handler (void *unused)
{
/*
* Frame received?
@@ -180,19 +180,20 @@ static void m8xx_fec_interrupt_handler ()
* Please organize FEC controller code better by moving code from
* m860_fec_initialize_hardware to m8xx_fec_ethernet_on
*/
-static void m8xx_fec_ethernet_on(){};
-static void m8xx_fec_ethernet_off(){};
+static void m8xx_fec_ethernet_on(const rtems_irq_connect_data* ptr){};
+static void m8xx_fec_ethernet_off(const rtems_irq_connect_data* ptr){};
static int m8xx_fec_ethernet_isOn (const rtems_irq_connect_data* ptr)
{
- return BSP_irq_enabled_at_siu (ptr->name);
+ return 1;
}
static rtems_irq_connect_data ethernetFECIrqData = {
BSP_FAST_ETHERNET_CTRL,
- (rtems_irq_hdl) m8xx_fec_interrupt_handler,
- (rtems_irq_enable) m8xx_fec_ethernet_on,
- (rtems_irq_disable) m8xx_fec_ethernet_off,
- (rtems_irq_is_enabled)m8xx_fec_ethernet_isOn
+ m8xx_fec_interrupt_handler,
+ NULL,
+ m8xx_fec_ethernet_on,
+ m8xx_fec_ethernet_off,
+ m8xx_fec_ethernet_isOn
};
static void
@@ -633,7 +634,7 @@ static void fec_sendpacket (struct ifnet *ifp, struct mbuf *m)
/*
* Flush the buffer for this descriptor
*/
- rtems_cache_flush_multiple_data_lines(txBd->buffer, txBd->length);
+ rtems_cache_flush_multiple_data_lines((void *)txBd->buffer, txBd->length);
sc->txMbuf[sc->txBdHead] = m;
nAdded++;
@@ -795,7 +796,8 @@ static void fec_enet_stats (struct m8xx_fec_enet_struct *sc)
printf (" Raw output wait:%-8lu\n", sc->txRawWait);
}
-static int fec_ioctl (struct ifnet *ifp, int command, caddr_t data)
+static int fec_ioctl (struct ifnet *ifp,
+ ioctl_command_t command, caddr_t data)
{
struct m8xx_fec_enet_struct *sc = ifp->if_softc;
int error = 0;
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/network/network_scc.c b/c/src/lib/libbsp/powerpc/tqm8xx/network/network_scc.c
index 317ef27a6f..8bb4aeb72a 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/network/network_scc.c
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/network/network_scc.c
@@ -160,10 +160,12 @@ static void m8xx_scc1_ethernet_off(const rtems_irq_connect_data* ptr)
*/
}
-static void m8xx_scc1_ethernet_isOn(const rtems_irq_connect_data* ptr)
+static int m8xx_scc1_ethernet_isOn(const rtems_irq_connect_data* ptr)
{
- int BSP_irq_enabled_at_cpm(const rtems_irq_number );
- BSP_irq_enabled_at_cpm (ptr->name);
+ /*
+ * Assume, that we are on
+ */
+ return 1;
}
/*
@@ -192,10 +194,10 @@ static void m8xx_scc1_interrupt_handler (void *unused)
static rtems_irq_connect_data ethernetSCC1IrqData = {
BSP_CPM_IRQ_SCC1,
(rtems_irq_hdl) m8xx_scc1_interrupt_handler,
- 0,
- (rtems_irq_enable) m8xx_scc1_ethernet_on,
- (rtems_irq_disable) m8xx_scc1_ethernet_off,
- (rtems_irq_is_enabled)m8xx_scc1_ethernet_isOn
+ NULL,
+ m8xx_scc1_ethernet_on,
+ m8xx_scc1_ethernet_off,
+ m8xx_scc1_ethernet_isOn
};
/*
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c b/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
index 2b4b38fe87..04647b9f02 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
@@ -45,7 +45,10 @@ unsigned int BSP_bus_frequency;
/* Configuration parameters for clock driver, ... */
uint32_t bsp_clicks_per_usec; /* for PIT driver: OSCCLK */
uint32_t bsp_clock_speed ; /* needed for PIT driver */
-
+/* for timer: */
+uint32_t bsp_timer_average_overhead; /* Average overhead of timer in ticks */
+uint32_t bsp_timer_least_valid; /* Least valid number from timer */
+bool bsp_timer_internal_clock; /* TRUE, when timer runs with CPU clk */
/*
* Use the shared implementations of the following routines.
* Look in rtems/c/src/lib/libbsp/shared/bsplibc.c.
@@ -191,6 +194,8 @@ void bsp_start( void)
* PIT clock driver from EXTCLK
*/
bsp_clock_speed = BSP_bus_frequency;
+ bsp_timer_least_valid = 3;
+ bsp_timer_average_overhead = 3;
/* Initialize exception handler */
ppc_exc_initialize(PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/timer/timer.c b/c/src/lib/libbsp/powerpc/tqm8xx/timer/timer.c
index 1df80461d1..d47daf30ec 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/timer/timer.c
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/timer/timer.c
@@ -87,7 +87,6 @@ Timer_initialize (void)
int
Read_timer (void)
{
- extern unsigned int BSP_bus_frequency;
int retval;
retval = *(uint32_t*)&m8xx.tcn1;
retval = retval * 1000000LL / BSP_bus_frequency;