forked from Imagelibrary/rtems
added missing files, fixed some minors
This commit is contained in:
@@ -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
|
||||
|
||||
67
c/src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c
Normal file
67
c/src/lib/libbsp/powerpc/tqm8xx/clock/p_clock.c
Normal 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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user