added missing files, fixed some minors

This commit is contained in:
Thomas Doerfler
2008-09-08 15:44:26 +00:00
parent 5265a27fa2
commit 3c12a247a9
6 changed files with 107 additions and 21 deletions

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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
};
/*

View File

@@ -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,

View File

@@ -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;