summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-11-03 18:45:04 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-11-03 18:45:04 +0000
commite08dbc5ea9ec881b6fc93cf926c18fb094d3bd55 (patch)
tree465630c9bb6a962362ed043b9bb0bc4c5505a3a5 /c/src/lib/libbsp
parent2009-11-03 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-e08dbc5ea9ec881b6fc93cf926c18fb094d3bd55.tar.bz2
various PowerPC code maintenance
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/powerpc/ChangeLog5
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/ChangeLog4
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/start/start.S5
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/ChangeLog4
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/start/start.S5
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog6
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am6
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c2
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/start/start.S5
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c17
-rw-r--r--c/src/lib/libbsp/powerpc/shared/clock/clock.c29
-rw-r--r--c/src/lib/libbsp/powerpc/shared/vme/vme_universe.c2
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog4
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/console/console.c62
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c4
15 files changed, 74 insertions, 86 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog
index 9875c944dd..153c5de5f2 100644
--- a/c/src/lib/libbsp/powerpc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/ChangeLog
@@ -1,3 +1,8 @@
+2009-11-03 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
+
+ * shared/clock/clock.c: Remove classic decrementer handler
+ * shared/vme/vme_universe.c: removed non-prototype warnings
+
2009-11-03 Ralf Corsépius <ralf.corsepius@rtems.org>
* shared/startup/probeMemEnd.c: Add missing prototypes.
diff --git a/c/src/lib/libbsp/powerpc/gen5200/ChangeLog b/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
index 6b3a31a065..130b2bdb7e 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
@@ -1,3 +1,7 @@
+2009-11-02 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
+
+ * start/start.S: call to boot_card checked, removed warning
+
2009-10-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
* Makefile.am, preinstall.am: Update for exception support changes.
diff --git a/c/src/lib/libbsp/powerpc/gen5200/start/start.S b/c/src/lib/libbsp/powerpc/gen5200/start/start.S
index d22d7d6cc6..4e81be6c64 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/start/start.S
+++ b/c/src/lib/libbsp/powerpc/gen5200/start/start.S
@@ -90,11 +90,6 @@
/* */
/***********************************************************************/
-#warning Call to boot_card has changed and needs checking.
-#warning The call is "void boot_card(const char* cmdline);"
-#warning You need to pass a NULL.
-#warning Please check and remove these warnings.
-
#include <rtems/powerpc/cache.h>
#include <bsp.h>
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog b/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
index dee3957d61..0b1e245bae 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
@@ -1,3 +1,7 @@
+2009-11-02 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
+
+ * start/start.S: call to boot_card checked, removed warning
+
2009-10-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
* Makefile.am, preinstall.am: Update for exception support changes.
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/start/start.S b/c/src/lib/libbsp/powerpc/gen83xx/start/start.S
index 2168526f1b..8dec6a1822 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/start/start.S
+++ b/c/src/lib/libbsp/powerpc/gen83xx/start/start.S
@@ -19,11 +19,6 @@
/* $Id$ */
-#warning Call to boot_card has changed and needs checking.
-#warning The call is "void boot_card(const char* cmdline);"
-#warning You need to pass a NULL.
-#warning Please check and remove these warnings.
-
#include <libcpu/powerpc-utility.h>
#include <rtems/powerpc/cache.h>
#include <bsp.h>
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog b/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
index fef8f5e5be..3af3aeef6a 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
@@ -1,3 +1,9 @@
+2009-11-03 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
+
+ * start/start.S: checked and removed boot_card warning
+ * irq/irq.c: adapted exception handler parameters
+ * startup/bspstart.c: removed non-prototype warnings
+
2009-10-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
* vectors/vectors.h, vectors/vectors_init.c, vectors/vectors.S,
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am b/c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am
index 9fa5325019..d3ac98c2fa 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am
@@ -30,8 +30,9 @@ dist_project_lib_DATA += startup/linkcmds
noinst_LIBRARIES += libbsp.a
libbsp_a_SOURCES =
-# pclock
-libbsp_a_SOURCES += clock/p_clock.c
+# clock
+libbsp_a_SOURCES += ../shared/clock/clock.c
+
# console
libbsp_a_SOURCES += console/console.c
@@ -68,7 +69,6 @@ libbsp_a_LIBADD = ../../../libcpu/@RTEMS_CPU@/shared/cpuIdent.rel \
../../../libcpu/@RTEMS_CPU@/shared/cache.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/rtems-cpu.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/exc_bspsupport.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc8260/clock.rel \
../../../libcpu/@RTEMS_CPU@/mpc8260/console-generic.rel \
../../../libcpu/@RTEMS_CPU@/mpc8260/cpm.rel \
../../../libcpu/@RTEMS_CPU@/mpc8260/mmu.rel \
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
index e7b212177e..8994896696 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c
@@ -213,7 +213,7 @@ volatile unsigned int maxLoop = 0;
/*
* High level IRQ handler called from shared_raw_irq_code_entry
*/
-int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
+int C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned excNum)
{
register unsigned int irq;
#if 0
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/start/start.S b/c/src/lib/libbsp/powerpc/mpc8260ads/start/start.S
index 1d3d7aeb26..d238634cc1 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/start/start.S
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/start/start.S
@@ -33,11 +33,6 @@
#include <rtems/asm.h>
-#warning Call to boot_card has changed and needs checking.
-#warning The call is "void boot_card(const char* cmdline);"
-#warning You need to pass a NULL.
-#warning Please check and remove these warnings.
-
/*
* The initial stack is set to run BELOW the code base address.
* (between the vectors and text sections)
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c
index fc48062bbc..0126091224 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c
@@ -89,56 +89,56 @@ void _BSP_Fatal_error(unsigned int v)
__asm__ __volatile ("sc");
}
-void _BSP_GPLED0_on()
+void _BSP_GPLED0_on(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
csr->bcsr0 &= ~GP0_LED; /* Turn on GP0 LED */
}
-void _BSP_GPLED0_off()
+void _BSP_GPLED0_off(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
csr->bcsr0 |= GP0_LED; /* Turn off GP0 LED */
}
-void _BSP_GPLED1_on()
+void _BSP_GPLED1_on(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
csr->bcsr0 &= ~GP1_LED; /* Turn on GP1 LED */
}
-void _BSP_GPLED1_off()
+void _BSP_GPLED1_off(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
csr->bcsr0 |= GP1_LED; /* Turn off GP1 LED */
}
-void _BSP_Uart1_enable()
+void _BSP_Uart1_enable(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
csr->bcsr1 &= ~UART1_E; /* Enable Uart1 */
}
-void _BSP_Uart1_disable()
+void _BSP_Uart1_disable(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
csr->bcsr1 |= UART1_E; /* Disable Uart1 */
}
-void _BSP_Uart2_enable()
+void _BSP_Uart2_enable(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
csr->bcsr1 &= ~UART2_E; /* Enable Uart2 */
}
-void _BSP_Uart2_disable()
+void _BSP_Uart2_disable(void)
{
BCSR *csr;
csr = (BCSR *)(m8260.memc[1].br & 0xFFFF8000);
@@ -149,7 +149,6 @@ void _BSP_Uart2_disable()
void bsp_start(void)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
- extern void *_WorkspaceBase;
ppc_cpu_id_t myCpu;
ppc_cpu_revision_t myCpuRevision;
diff --git a/c/src/lib/libbsp/powerpc/shared/clock/clock.c b/c/src/lib/libbsp/powerpc/shared/clock/clock.c
index e40cd2078e..740972fa76 100644
--- a/c/src/lib/libbsp/powerpc/shared/clock/clock.c
+++ b/c/src/lib/libbsp/powerpc/shared/clock/clock.c
@@ -94,35 +94,6 @@ static int ppc_clock_exception_handler( BSP_Exception_frame *frame, unsigned num
return 0;
}
-static int ppc_clock_exception_handler_classic( BSP_Exception_frame *frame, unsigned number)
-{
- uint32_t reg1;
- uint32_t reg2;
- uint32_t msr;
-
- /* Set new decrementer value */
- asm volatile(
- "lwz %1, ppc_clock_decrementer_value@sdarel(13);"
- "mfdec %0;"
- "add %0, %0, %1;"
- "mtdec %0"
- : "=r" (reg1), "=r" (reg2)
- );
-
- /* Increment clock ticks */
- Clock_driver_ticks += 1;
-
- /* Enable external exceptions */
- msr = ppc_external_exceptions_enable();
-
- /* Call clock ticker */
- ppc_clock_tick();
-
- /* Restore machine state */
- ppc_external_exceptions_disable( msr);
-
- return 0;
-}
static int ppc_clock_exception_handler_booke( BSP_Exception_frame *frame, unsigned number)
{
diff --git a/c/src/lib/libbsp/powerpc/shared/vme/vme_universe.c b/c/src/lib/libbsp/powerpc/shared/vme/vme_universe.c
index 2477e255f9..84c22c462f 100644
--- a/c/src/lib/libbsp/powerpc/shared/vme/vme_universe.c
+++ b/c/src/lib/libbsp/powerpc/shared/vme/vme_universe.c
@@ -392,7 +392,7 @@ int BSP_VMEInit(void)
vmeTsi148Reset();
#ifdef VME_CLEAR_BRIDGE_ERRORS
{
- extern unsigned short (*_BSP_clear_vmebridge_errors)();
+ extern unsigned short (*_BSP_clear_vmebridge_errors)(void);
_BSP_clear_vmebridge_errors = VME_CLEAR_BRIDGE_ERRORS;
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog b/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog
index f080c18408..a06efaabfa 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog
@@ -1,3 +1,7 @@
+2009-11-03 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
+
+ * startup/bspstart.s, console/console.c: various fixes
+
2009-10-28 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
* startup/bspstart.s: correct clock tick init
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c b/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c
index 7cfa9dd017..6ca12de107 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c
@@ -66,7 +66,7 @@
/*
* Interrupt-driven input buffer
*/
-#define RXBUFSIZE 256
+#define RXBUFSIZE 16
#define M8xx_SICR_BRG1 (0)
#define M8xx_SICR_BRG2 (1)
@@ -662,7 +662,7 @@ sccInitialize (int chan)
sccFrstRxBd[chan][i].status |= M8xx_BD_WRAP;
}
sccFrstRxBd[chan][i].length = 0;
- sccFrstRxBd[chan][i].buffer = rxBuf[chan][i];
+ sccFrstRxBd[chan][i].buffer = (*rxBuf[chan])[i];
}
/*
* Setup the Transmit Buffer Descriptor
@@ -728,32 +728,44 @@ sccInitialize (int chan)
static int
sccPollRead (int minor)
{
- unsigned char c;
+ int c = -1;
int chan = minor;
- if ((sccCurrRxBd[chan]->status & M8xx_BD_EMPTY) != 0) {
- return -1;
- }
- rtems_cache_invalidate_multiple_data_lines((void *)sccCurrRxBd[chan]->buffer,
- sccCurrRxBd[chan]->length);
- c = *((char *)sccCurrRxBd[chan]->buffer);
- /*
- * clear status
- */
- sccCurrRxBd[chan]->status =
- (sccCurrRxBd[chan]->status
- & (M8xx_BD_WRAP | M8xx_BD_INTERRUPT))
- | M8xx_BD_EMPTY;
- /*
- * advance to next BD
- */
- if ((sccCurrRxBd[chan]->status & M8xx_BD_WRAP) != 0) {
- sccCurrRxBd[chan] = sccFrstRxBd[chan];
- }
- else {
- sccCurrRxBd[chan]++;
+ while(1) {
+ if ((sccCurrRxBd[chan]->status & M8xx_BD_EMPTY) != 0) {
+ return -1;
+ }
+
+ if (0 == (sccCurrRxBd[chan]->status & (M8xx_BD_OVERRUN
+ | M8xx_BD_PARITY_ERROR
+ | M8xx_BD_FRAMING_ERROR
+ | M8xx_BD_BREAK
+ | M8xx_BD_IDLE))) {
+ /* character received and no error detected */
+ rtems_cache_invalidate_multiple_data_lines((void *)sccCurrRxBd[chan]->buffer,
+ sccCurrRxBd[chan]->length);
+ c = (unsigned)*((char *)sccCurrRxBd[chan]->buffer);
+ /*
+ * clear status
+ */
+ }
+ sccCurrRxBd[chan]->status =
+ (sccCurrRxBd[chan]->status
+ & (M8xx_BD_WRAP | M8xx_BD_INTERRUPT))
+ | M8xx_BD_EMPTY;
+ /*
+ * advance to next BD
+ */
+ if ((sccCurrRxBd[chan]->status & M8xx_BD_WRAP) != 0) {
+ sccCurrRxBd[chan] = sccFrstRxBd[chan];
+ }
+ else {
+ sccCurrRxBd[chan]++;
+ }
+ if (c >= 0) {
+ return c;
+ }
}
- return c;
}
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c b/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
index d701ed7291..11bcf51377 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
@@ -173,9 +173,7 @@ void bsp_start( void)
BSP_panic("Cannot determine BUS frequency\n");
}
- bsp_clicks_per_usec = BSP_bus_frequency/16; /* force to zero to control
- * PIT clock driver from EXTCLK
- */
+ bsp_clicks_per_usec = BSP_bus_frequency/1000000/16;
bsp_timer_least_valid = 3;
bsp_timer_average_overhead = 3;