diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2008-09-08 15:44:26 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2008-09-08 15:44:26 +0000 |
commit | 3c12a247a9114febb2f88cde40bab83e90d23498 (patch) | |
tree | beb27aa326cbe1476724d776edefc72021d3cfa5 /c | |
parent | 2008-09-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-3c12a247a9114febb2f88cde40bab83e90d23498.tar.bz2 |
added missing files, fixed some minors
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog | 15 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c | 67 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/tqm8xx/network/network_fec.c | 22 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/tqm8xx/network/network_scc.c | 16 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/tqm8xx/timer/timer.c | 1 |
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; |