summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/ppc403
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-28 21:45:06 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-28 21:45:06 +0000
commitc4cc81993a324a6416cb92f8c1b78ff501654dbf (patch)
tree190fbb3656e871c93f4d4fd5c8ff11a81262c0c5 /c/src/lib/libcpu/powerpc/ppc403
parent2007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-c4cc81993a324a6416cb92f8c1b78ff501654dbf.tar.bz2
2007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com>
* mpc5xx/clock/clock.c, mpc5xx/timer/timer.c, mpc8260/clock/clock.c, mpc8260/cpm/brg.c, mpc8260/timer/timer.c, mpc8xx/clock/clock.c, mpc8xx/console-generic/console-generic.c, mpc8xx/timer/timer.c, new-exceptions/raw_exception.c, old-exceptions/cpu.c, ppc403/clock/clock.c, ppc403/console/console.c, ppc403/console/console.c.polled, ppc403/console/console405.c, ppc403/ictrl/ictrl.c, ppc403/irq/ictrl.c, ppc403/timer/timer.c, ppc403/tty_drv/tty_drv.c: Eliminate PowerPC specific elements from the CPU Table. They have been replaced with variables named bsp_XXX as needed.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/clock/clock.c12
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/console/console.c12
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled16
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/console/console405.c14
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c5
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/irq/ictrl.c5
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/timer/timer.c8
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/tty_drv/tty_drv.c17
8 files changed, 58 insertions, 31 deletions
diff --git a/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c b/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c
index b0df41f5f1..391a1e2fdd 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/clock/clock.c
@@ -25,7 +25,7 @@
* for these modifications:
* COPYRIGHT (c) 1997 by IMD, Puchheim, Germany.
*
- * COPYRIGHT (c) 1989-1999.
+ * COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -188,6 +188,10 @@ void ClockOn(
{
uint32_t iocr;
register uint32_t tcr;
+ extern uint32_t bsp_clicks_per_usec;
+#ifdef ppc405
+ extern boolean bsp_timer_internal_clock;
+#endif
#ifdef ppc403
uint32_t pvr;
#endif /* ppc403 */
@@ -196,7 +200,7 @@ void ClockOn(
#ifndef ppc405 /* this is a ppc403 */
asm volatile ("mfdcr %0, 0xa0" : "=r" (iocr)); /* IOCR */
- if (rtems_cpu_configuration_get_timer_internal_clock()) {
+ if (bsp_timer_internal_clock) {
iocr &= ~4; /* timer clocked from system clock */
}
else {
@@ -220,7 +224,7 @@ void ClockOn(
#else /* ppc405 */
asm volatile ("mfdcr %0, 0x0b2" : "=r" (iocr)); /*405GP CPC0_CR1 */
- if (rtems_cpu_configuration_get_timer_internal_clock()) {
+ if (bsp_timer_internal_clock) {
iocr &=~0x800000 ;/* timer clocked from system clock CETE*/
}
else {
@@ -236,7 +240,7 @@ void ClockOn(
#endif /* ppc405 */
pit_value = rtems_configuration_get_microseconds_per_tick() *
- rtems_cpu_configuration_get_clicks_per_usec();
+ bsp_clicks_per_usec;
/*
* Set PIT value
diff --git a/c/src/lib/libcpu/powerpc/ppc403/console/console.c b/c/src/lib/libcpu/powerpc/ppc403/console/console.c
index 2051a0f764..f94f390ee5 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/console/console.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/console/console.c
@@ -209,7 +209,8 @@ void
spiBaudSet(uint32_t baudrate)
{
uint32_t tmp;
- tmp = rtems_cpu_configuration_get_serial_per_sec() / baudrate;
+ extern uint32_t bsp_serial_per_sec;
+ tmp = bsp_serial_per_sec / baudrate;
tmp = ((tmp) >> 4) - 1;
port->BRDL = tmp & 0xff;
port->BRDH = tmp >> 8;
@@ -302,13 +303,14 @@ spiPollWrite(int minor,const char *buf,int len)
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...
*/
/* set up baud rate to original state */
- spiBaudSet(rtems_cpu_configuration_get_serial_rate());
+ spiBaudSet(bsp_serial_rate);
/* clear any receive (error) status */
port->SPLS = (LSRDataReady | LSRFramingError | LSROverrunError |
@@ -338,6 +340,8 @@ spiInitialize(void)
{
register unsigned tmp;
rtems_isr_entry previous_isr; /* this is a dummy */
+ extern boolean bsp_serial_external_clock;
+ extern uint32_t bsp_serial_rate;
/*
* Initialise the serial port
@@ -350,7 +354,7 @@ spiInitialize(void)
asm volatile ("mfdcr %0, 0xa0" : "=r" (tmp)); /* IOCR */
tmp &= ~3;
- tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? 2 : 0) | 1;
+ tmp |= (bsp_serial_external_clock ? 2 : 0) | 1;
asm volatile ("mtdcr 0xa0, %0" : "=r" (tmp) : "0" (tmp)); /* IOCR */
@@ -359,7 +363,7 @@ spiInitialize(void)
LSRParityError | LSRBreakInterrupt);
/* set up baud rate */
- spiBaudSet(rtems_cpu_configuration_get_serial_rate());
+ spiBaudSet(bsp_serial_rate);
/* set up port control: DTR/RTS active,8 bit,1 stop,no parity */
port->SPCTL = (CRNormal |
diff --git a/c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled b/c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled
index 2a16a6d410..a90da86432 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled
+++ b/c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled
@@ -18,7 +18,7 @@
*
* Derived from c/src/lib/libbsp/no_cpu/no_bsp/console/console.c:
*
- * COPYRIGHT (c) 1989-1999.
+ * COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -140,17 +140,20 @@ rtems_device_driver console_initialize(
{
rtems_status_code status;
register unsigned tmp;
+ extern uint32_t bsp_serial_per_sec;
+ extern boolean bsp_serial_external_clock;
+ extern boolean bsp_serial_cts_rts;
+ extern uint32_t bsp_serial_rate;
/* Initialise the serial port */
asm volatile ("mfdcr %0, 0xa0" : "=r" (tmp)); /* IOCR */
tmp &= ~3;
- tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? 2 : 0) |
- (rtems_cpu_configuration_get_serial_cts_rts() ? 1 : 0);
+ tmp |= (bsp_serial_external_clock ? 2 : 0) |
+ (bsp_serial_cts_rts ? 1 : 0);
asm volatile ("mtdcr 0xa0, %0" : "=r" (tmp) : "0" (tmp)); /* IOCR */
port->SPLS = (LSRDataReady | LSRFramingError | LSROverrunError |
LSRParityError | LSRBreakInterrupt);
- tmp = rtems_cpu_configuration_get_serial_per_sec() /
- rtems_cpu_configuration_get_serial_rate();
+ tmp = bsp_serial_per_sec / bsp_get_serial_rate;
#if 0 /* replaced by IMD... */
tmp = ((tmp + 8) >> 4) - 1;
port->BRDL = tmp & 0x255;
@@ -262,6 +265,7 @@ void outbyte(
)
{
unsigned char status;
+ extern boolean bsp_serial_xon_xoff;
while (port->SPHS)
port->SPHS = (HSRDsr | HSRCts);
@@ -276,7 +280,7 @@ void outbyte(
break;
}
- if (rtems_cpu_configuration_get_serial_xon_xoff())
+ if (bsp_serial_xon_xoff)
while (is_character_ready(&status))
{
if (status == XOFFchar)
diff --git a/c/src/lib/libcpu/powerpc/ppc403/console/console405.c b/c/src/lib/libcpu/powerpc/ppc403/console/console405.c
index 15fc1888b6..8cf176a6cb 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/console/console405.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/console/console405.c
@@ -194,8 +194,9 @@ void
spiBaudSet(uint32_t baudrate)
{
uint32_t tmp;
+ extern uint32_t bsp_serial_per_sec;
- tmp = spiBaudRound( (double)rtems_cpu_configuration_get_serial_per_sec() / (baudrate * 16) );
+ tmp = spiBaudRound( (double)bsp_serial_per_sec / (baudrate * 16) );
port->LCR = port->LCR | LCR_DL;
@@ -331,6 +332,7 @@ 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...
@@ -338,7 +340,7 @@ spiDeInit(void)
/* set up baud rate to original state */
- spiBaudSet(rtems_cpu_configuration_get_serial_rate());
+ spiBaudSet(bsp_serial_rate);
port->IER = 0;
@@ -355,6 +357,8 @@ spiInitialize(void)
register unsigned tmp;
rtems_isr_entry previous_isr; /* this is a dummy */
unsigned char _ier;
+ extern boolean bsp_serial_external_clock;
+ extern uint32_t bsp_serial_rate;
/*
* Initialise the serial port
@@ -367,9 +371,9 @@ spiInitialize(void)
asm volatile ("mfdcr %0, 0x0b1" : "=r" (tmp)); /* CPC_CR0 0x0b1 */
/* UART0 bit 24 0x80, UART1 bit 25 0x40 */
- tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? (USE_UART ? 0x40 : 0x80) : 0);
+ tmp |= (bsp_serial_external_clock ? (USE_UART ? 0x40 : 0x80) : 0);
- tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? 0: ((UART_INTERNAL_CLOCK_DIVISOR -1) << 1));
+ tmp |= (bsp_serial_external_clock ? 0: ((UART_INTERNAL_CLOCK_DIVISOR -1) << 1));
asm volatile ("mtdcr 0x0b1, %0" : "=r" (tmp) : "0" (tmp)); /* CPC_CR0 0x0b1*/
@@ -381,7 +385,7 @@ spiInitialize(void)
port->LCR = LCR_WL8 | LCR_SB1 | LCR_PN;
/* set up baud rate */
- spiBaudSet(rtems_cpu_configuration_get_serial_rate());
+ spiBaudSet(bsp_serial_rate);
if (ppc403_spi_interrupt) {
diff --git a/c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c b/c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c
index dc51da6bd6..f6ceb68b55 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c
@@ -161,6 +161,7 @@ ictrl_spurious_handler(uint32_t spurious_mask,
CPU_Interrupt_frame *cpu_frame)
{
int v;
+ extern void (*bsp_spurious_handler)(uint32_t vector, CPU_Interrupt_frame *);
for (v=0; v < PPC_IRQ_EXT_MAX; v++) {
if (VEC_TO_EXMSK(v) & spurious_mask) {
@@ -170,8 +171,8 @@ ictrl_spurious_handler(uint32_t spurious_mask,
printf("spurious external interrupt: %d at pc 0x%x; disabling\n",
vector, cpu_frame->Interrupt.pcoqfront);
#endif
- if (rtems_cpu_configuration_get_spurious_handler()) {
- rtems_cpu_configuration_get_spurious_handler()(v + PPC_IRQ_EXT_BASE,cpu_frame);
+ if (bsp_spurious_handler) {
+ bsp_spurious_handler(v + PPC_IRQ_EXT_BASE,cpu_frame);
}
}
}
diff --git a/c/src/lib/libcpu/powerpc/ppc403/irq/ictrl.c b/c/src/lib/libcpu/powerpc/ppc403/irq/ictrl.c
index dc51da6bd6..22580a7d06 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/irq/ictrl.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/irq/ictrl.c
@@ -161,6 +161,7 @@ ictrl_spurious_handler(uint32_t spurious_mask,
CPU_Interrupt_frame *cpu_frame)
{
int v;
+ extern void (*bsp_spurious_handler)(uint32_t vector, CPU_Interrupt_frame *);
for (v=0; v < PPC_IRQ_EXT_MAX; v++) {
if (VEC_TO_EXMSK(v) & spurious_mask) {
@@ -170,8 +171,8 @@ ictrl_spurious_handler(uint32_t spurious_mask,
printf("spurious external interrupt: %d at pc 0x%x; disabling\n",
vector, cpu_frame->Interrupt.pcoqfront);
#endif
- if (rtems_cpu_configuration_get_spurious_handler()) {
- rtems_cpu_configuration_get_spurious_handler()(v + PPC_IRQ_EXT_BASE,cpu_frame);
+ if (bsp_spurious_handler()) {
+ bsp_spurious_handler(v + PPC_IRQ_EXT_BASE,cpu_frame);
}
}
}
diff --git a/c/src/lib/libcpu/powerpc/ppc403/timer/timer.c b/c/src/lib/libcpu/powerpc/ppc403/timer/timer.c
index 724b936d94..25bd3659d6 100644
--- a/c/src/lib/libcpu/powerpc/ppc403/timer/timer.c
+++ b/c/src/lib/libcpu/powerpc/ppc403/timer/timer.c
@@ -23,7 +23,7 @@
*
* Derived from c/src/lib/libcpu/hppa1.1/timer/timer.c:
*
- * COPYRIGHT (c) 1989-1999.
+ * COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -86,6 +86,8 @@ int Read_timer()
{
uint32_t clicks;
uint32_t total;
+ extern uint32_t bsp_timer_least_valid;
+ extern uint32_t bsp_timer_average_overhead;
clicks = get_itimer();
@@ -95,9 +97,9 @@ int Read_timer()
return total; /* in XXX microsecond units */
else {
- if ( total < rtems_cpu_configuration_get_timer_least_valid() )
+ if ( total < bsp_timer_least_valid )
return 0; /* below timer resolution */
- return (total - rtems_cpu_configuration_get_timer_average_overhead());
+ return (total - bsp_timer_average_overhead);
}
}
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 10f0483916..0f2c7d88ac 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
@@ -18,6 +18,11 @@
#include "../ictrl/ictrl.h"
#include <stdlib.h> /* for atexit() */
+extern uint32_t bsp_serial_per_sec;
+extern boolean bsp_serial_external_clock;
+extern boolean bsp_serial_cts_rts;
+extern boolean bsp_serial_xon_xoff;
+extern uint32_t bsp_serial_rate;
struct ttyasync {
/*---------------------------------------------------------------------------+
@@ -154,7 +159,7 @@ tty0BaudSet(uint32_t baudrate)
{
uint32_t tmp;
- tmp = tty0_round( (double)rtems_cpu_configuration_get_serial_per_sec() / (baudrate * 16) );
+ tmp = tty0_round( (double)bsp_serial_per_sec / (baudrate * 16) );
tty0port->LCR = tty0port->LCR | LCR_DL;
@@ -327,7 +332,7 @@ tty0DeInit(void)
*/
/* set up baud rate to original state */
- tty0BaudSet(rtems_cpu_configuration_get_serial_rate());
+ tty0BaudSet(bsp_serial_rate);
tty0port->IER = 0;
@@ -345,6 +350,8 @@ tty0Initialize(void)
rtems_isr_entry previous_isr; /* this is a dummy */
unsigned char _ier;
unsigned char _tmp;
+ extern uint32_t bsp_serial_rate;
+ extern boolean bsp_serial_external_clock;
/*
* Initialise the serial tty0port
@@ -357,9 +364,9 @@ tty0Initialize(void)
asm volatile ("mfdcr %0, 0x0b1" : "=r" (tmp)); /* CPC_CR0 0x0b1 */
/* UART0 bit 24 0x80, UART1 bit 25 0x40 */
- tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? (TTY0_USE_UART ? 0x40 : 0x80) : 0);
+ tmp |= (bsp_serial_external_clock ? (TTY0_USE_UART ? 0x40 : 0x80) : 0);
- tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? 0: ((TTY0_UART_INTERNAL_CLOCK_DIVISOR -1) << 1));
+ tmp |= (bsp_serial_external_clock ? 0: ((TTY0_UART_INTERNAL_CLOCK_DIVISOR -1) << 1));
asm volatile ("mtdcr 0x0b1, %0" : "=r" (tmp) : "0" (tmp)); /* CPC_CR0 0x0b1*/
@@ -371,7 +378,7 @@ tty0Initialize(void)
tty0port->LCR = LCR_WL8 | LCR_SB1 | LCR_PN;
/* set up baud rate */
- tty0BaudSet(rtems_cpu_configuration_get_serial_rate());
+ tty0BaudSet(bsp_serial_rate);
#ifdef TTY0_USE_INTERRUPT