summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/ppc403
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-04-25 16:10:36 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-04-25 16:10:36 +0000
commitfbd06a090cf4a02fea3c829eb62b587cd0093731 (patch)
treec773800f80785f5a07938ae5c83e38f9db383104 /c/src/lib/libcpu/powerpc/ppc403
parent2010-04-25 Joel Sherrill <joel.sherrilL@OARcorp.com> (diff)
downloadrtems-fbd06a090cf4a02fea3c829eb62b587cd0093731.tar.bz2
2010-04-25 Joel Sherrill <joel.sherrilL@OARcorp.com>
* ppc403/clock/clock.c, ppc403/console/console405.c, ppc403/tty_drv/tty_drv.c: Remove warnings and simple vectored interrupt support.
Diffstat (limited to 'c/src/lib/libcpu/powerpc/ppc403')
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/clock/clock.c161
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/console/console405.c13
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/tty_drv/tty_drv.c8
3 files changed, 43 insertions, 139 deletions
diff --git a/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c b/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c
index c9d9243b52..513049e1f8 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c
@@ -50,17 +50,11 @@
#include <bsp.h>
-#ifdef BSP_PPC403_CLOCK_HOOK_EXCEPTION
#include <bsp/vectors.h>
-#define PPC_HAS_CLASSIC_EXCEPTIONS FALSE
-#else
-#if !defined(ppc405)
-#define PPC_HAS_CLASSIC_EXCEPTIONS TRUE
-#else
-#define PPC_HAS_CLASSIC_EXCEPTIONS FALSE
#include <bsp/irq.h>
-#endif
-#endif
+
+extern uint32_t bsp_clicks_per_usec;
+extern bool bsp_timer_internal_clock;
volatile uint32_t Clock_driver_ticks;
static uint32_t pit_value, tick_time;
@@ -74,13 +68,6 @@ rtems_isr_entry set_vector( /* returns old vector */
int type /* RTEMS or RAW intr */
);
-/*
- * These are set by clock driver during its init
- */
-
-rtems_device_major_number rtems_clock_major = ~0;
-rtems_device_minor_number rtems_clock_minor;
-
static inline uint32_t get_itimer(void)
{
register uint32_t rc;
@@ -98,13 +85,7 @@ static inline uint32_t get_itimer(void)
* ISR Handler
*/
-#if PPC_HAS_CLASSIC_EXCEPTIONS
-rtems_isr Clock_isr(rtems_vector_number vector)
-#elif defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
-int Clock_isr(struct _BSP_Exception_frame *f, unsigned int vector)
-#else
void Clock_isr(void* handle)
-#endif
{
uint32_t clicks_til_next_interrupt;
#if defined(BSP_PPC403_CLOCK_ISR_IRQ_LEVEL)
@@ -173,13 +154,8 @@ void Clock_isr(void* handle)
#if defined(BSP_PPC403_CLOCK_ISR_IRQ_LEVEL)
_ISR_Set_level(l_orig)
#endif
-
-#if defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- return 0;
-#endif
}
-#if !PPC_HAS_CLASSIC_EXCEPTIONS && !defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
int ClockIsOn(const rtems_irq_connect_data* unused)
{
register uint32_t tcr;
@@ -188,15 +164,10 @@ int ClockIsOn(const rtems_irq_connect_data* unused)
return (tcr & 0x04000000) != 0;
}
-#endif
void ClockOff(
-#if PPC_HAS_CLASSIC_EXCEPTIONS || defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- void
-#else
const rtems_irq_connect_data* unused
-#endif
- )
+)
{
register uint32_t tcr;
@@ -208,17 +179,11 @@ void ClockOff(
}
void ClockOn(
-#if PPC_HAS_CLASSIC_EXCEPTIONS || defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- void
-#else
const rtems_irq_connect_data* unused
-#endif
- )
+)
{
uint32_t iocr;
register uint32_t tcr;
- extern uint32_t bsp_clicks_per_usec;
- extern bool bsp_timer_internal_clock;
#ifdef ppc403
uint32_t pvr;
#endif /* ppc403 */
@@ -292,15 +257,11 @@ void ClockOn(
void Install_clock(
-#if PPC_HAS_CLASSIC_EXCEPTIONS
- rtems_isr_entry clock_isr
-#elif defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- ppc_exc_handler_t clock_isr
-#else
- void (*clock_isr)(void *)
-#endif
- )
+ void (*clock_isr)(void *)
+)
{
+ rtems_irq_connect_data clockIrqConnData;
+
#ifdef ppc403
uint32_t pvr;
#endif /* ppc403 */
@@ -315,20 +276,6 @@ void Install_clock(
* interrupt overhead
*/
-#if PPC_HAS_CLASSIC_EXCEPTIONS
- {
- rtems_isr_entry previous_isr;
- rtems_interrupt_catch(clock_isr, PPC_IRQ_PIT, &previous_isr);
- ClockOn();
- }
-#elif defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- {
- ppc_exc_set_handler( BSP_PPC403_CLOCK_HOOK_EXCEPTION, clock_isr );
- ClockOn();
- }
-#else
- {
- rtems_irq_connect_data clockIrqConnData;
clockIrqConnData.on = ClockOn;
clockIrqConnData.off = ClockOff;
clockIrqConnData.isOn = ClockIsOn;
@@ -338,61 +285,39 @@ void Install_clock(
printk("Unable to connect Clock Irq handler\n");
rtems_fatal_error_occurred(1);
}
- }
-#endif
- atexit(Clock_exit);
+
+ atexit(Clock_exit);
}
void
ReInstall_clock(
-#if PPC_HAS_CLASSIC_EXCEPTIONS
- rtems_isr_entry new_clock_isr
-#elif defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- ppc_exc_handler_t clock_isr
-#else
- void (*new_clock_isr)(void *)
-#endif
+ void (*new_clock_isr)(void *)
)
{
uint32_t isrlevel = 0;
+ rtems_irq_connect_data clockIrqConnData;
rtems_interrupt_disable(isrlevel);
-#if PPC_HAS_CLASSIC_EXCEPTIONS
- {
- rtems_isr_entry previous_isr;
- rtems_interrupt_catch(new_clock_isr, PPC_IRQ_PIT, &previous_isr);
- ClockOn();
- }
-#elif defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- {
- ppc_exc_set_handler( BSP_PPC403_CLOCK_HOOK_EXCEPTION, clock_isr );
- ClockOn();
- }
-#else
- {
- rtems_irq_connect_data clockIrqConnData;
- clockIrqConnData.name = BSP_PIT;
- if (!BSP_get_current_rtems_irq_handler(&clockIrqConnData)) {
- printk("Unable to stop system clock\n");
- rtems_fatal_error_occurred(1);
- }
+ clockIrqConnData.name = BSP_PIT;
+ if (!BSP_get_current_rtems_irq_handler(&clockIrqConnData)) {
+ printk("Unable to stop system clock\n");
+ rtems_fatal_error_occurred(1);
+ }
- BSP_remove_rtems_irq_handler (&clockIrqConnData);
+ BSP_remove_rtems_irq_handler (&clockIrqConnData);
- clockIrqConnData.on = ClockOn;
- clockIrqConnData.off = ClockOff;
- clockIrqConnData.isOn = ClockIsOn;
- clockIrqConnData.name = BSP_PIT;
- clockIrqConnData.hdl = new_clock_isr;
+ clockIrqConnData.on = ClockOn;
+ clockIrqConnData.off = ClockOff;
+ clockIrqConnData.isOn = ClockIsOn;
+ clockIrqConnData.name = BSP_PIT;
+ clockIrqConnData.hdl = new_clock_isr;
- if (!BSP_install_rtems_irq_handler (&clockIrqConnData)) {
- printk("Unable to connect Clock Irq handler\n");
- rtems_fatal_error_occurred(1);
- }
+ if (!BSP_install_rtems_irq_handler (&clockIrqConnData)) {
+ printk("Unable to connect Clock Irq handler\n");
+ rtems_fatal_error_occurred(1);
}
-#endif
rtems_interrupt_enable(isrlevel);
}
@@ -408,26 +333,15 @@ ReInstall_clock(
void Clock_exit(void)
{
-#if PPC_HAS_CLASSIC_EXCEPTIONS
- ClockOff();
-
- (void) set_vector(0, PPC_IRQ_PIT, 1);
-#elif defined(BSP_PPC403_CLOCK_HOOK_EXCEPTION)
- ClockOff();
- ppc_exc_set_handler( BSP_PPC403_CLOCK_HOOK_EXCEPTION, 0 );
-#else
- {
- rtems_irq_connect_data clockIrqConnData;
+ rtems_irq_connect_data clockIrqConnData;
- clockIrqConnData.name = BSP_PIT;
- if (!BSP_get_current_rtems_irq_handler(&clockIrqConnData)) {
- printk("Unable to stop system clock\n");
- rtems_fatal_error_occurred(1);
- }
+ clockIrqConnData.name = BSP_PIT;
+ if (!BSP_get_current_rtems_irq_handler(&clockIrqConnData)) {
+ printk("Unable to stop system clock\n");
+ rtems_fatal_error_occurred(1);
+ }
- BSP_remove_rtems_irq_handler (&clockIrqConnData);
- }
-#endif
+ BSP_remove_rtems_irq_handler (&clockIrqConnData);
}
rtems_device_driver Clock_initialize(
@@ -438,12 +352,5 @@ rtems_device_driver Clock_initialize(
{
Install_clock( Clock_isr );
- /*
- * make major/minor avail to others such as shared memory driver
- */
-
- rtems_clock_major = major;
- rtems_clock_minor = minor;
-
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libcpu/powerpc/ppc403/console/console405.c b/c/src/lib/libcpu/powerpc/ppc403/console/console405.c
index ecba975d8d..5e8a3b25eb 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/console/console405.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/console/console405.c
@@ -184,6 +184,9 @@ static const pasync port = (pasync)(0xEF600300 + (USE_UART*0x100)); /* 0xEF600
static void *spittyp; /* handle for termios */
int ppc403_spi_interrupt = 0; /* do not use interrupts... */
+extern uint32_t bsp_serial_per_sec;
+extern uint32_t bsp_serial_rate;
+extern bool bsp_serial_external_clock;
static int spiBaudRound(double x)
{
@@ -194,7 +197,6 @@ void
spiBaudSet(uint32_t baudrate)
{
uint32_t tmp;
- extern uint32_t bsp_serial_per_sec;
tmp = spiBaudRound( (double)bsp_serial_per_sec / (baudrate * 16) );
@@ -254,8 +256,8 @@ spiPollRead (int minor)
}
-static int
-spiPollWrite(int minor,const char *buf,int len)
+static ssize_t
+spiPollWrite(int minor, const char *buf, size_t len)
{
while (len-- > 0) {
@@ -294,7 +296,7 @@ spiStopRemoteTx (int minor)
return 0;
}
-static int InterruptWrite (int minor, const char *buf, int len)
+static ssize_t InterruptWrite (int minor, const char *buf, size_t len)
{
port->IER |= IER_XMT; /* always enable tx interrupt */
port->THR = *buf; /* write char to send */
@@ -332,7 +334,6 @@ static rtems_isr serial_ISR(rtems_vector_number v)
void
spiDeInit(void)
{
- extern uint32_t bsp_serial_rate;
/*
* disable interrupts for serial port
* set it to state to work with polling boot monitor, if any...
@@ -357,8 +358,6 @@ spiInitialize(void)
register unsigned tmp;
rtems_isr_entry previous_isr; /* this is a dummy */
unsigned char _ier;
- extern bool bsp_serial_external_clock;
- extern uint32_t bsp_serial_rate;
/*
* Initialise the serial port
diff --git a/c/src/lib/libcpu/powerpc/ppc403/tty_drv/tty_drv.c b/c/src/lib/libcpu/powerpc/ppc403/tty_drv/tty_drv.c
index d26c8e2f3a..5bcfc2ac77 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/tty_drv/tty_drv.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/tty_drv/tty_drv.c
@@ -218,8 +218,8 @@ tty0PollRead (int minor)
}
-static int
-tty0PollWrite(int minor,const char *buf,int len)
+static ssize_t
+tty0PollWrite(int minor, const char *buf, size_t len)
{
while (len-- > 0) {
@@ -232,7 +232,7 @@ tty0PollWrite(int minor,const char *buf,int len)
/* ================ Termios support =================*/
-static int tty0InterruptWrite (int minor, const char *buf, int len)
+static ssize_t tty0InterruptWrite (int minor, const char *buf, size_t len)
{
if(len <= 0)
@@ -350,8 +350,6 @@ tty0Initialize(void)
rtems_isr_entry previous_isr; /* this is a dummy */
unsigned char _ier;
unsigned char _tmp;
- extern uint32_t bsp_serial_rate;
- extern bool bsp_serial_external_clock;
/*
* Initialise the serial tty0port