summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-07-06 21:09:33 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-07-06 21:09:33 +0000
commit0a029a5ee5261bd5388a638fef553d42bc0e23a3 (patch)
treeeee696ef03c868c4203e951b06b2972dc9937a81 /c
parent2007-07-06 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-0a029a5ee5261bd5388a638fef553d42bc0e23a3.tar.bz2
2007-07-06 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am: Add startup/bspclean.c * console/console.c: Remove warning. * include/bsp.h: Add conditionals for prompt for reset and resetting board. * start/start.S: Remove if 1 around section. * vectors/vectors_init.c: Do not print unless noisy init enabled. * startup/bspclean.c: New file. Will prompt for reset and reset.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/ChangeLog10
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/Makefile.am2
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/console/console.c44
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/include/bsp.h6
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/start/start.S4
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/bspclean.c45
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/vectors/vectors_init.c4
7 files changed, 87 insertions, 28 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen5200/ChangeLog b/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
index d6f3ef1e20..9cab237cde 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/gen5200/ChangeLog
@@ -1,5 +1,15 @@
2007-07-06 Joel Sherrill <joel.sherrill@oarcorp.com>
+ * Makefile.am: Add startup/bspclean.c
+ * console/console.c: Remove warning.
+ * include/bsp.h: Add conditionals for prompt for reset and resetting
+ board.
+ * start/start.S: Remove if 1 around section.
+ * vectors/vectors_init.c: Do not print unless noisy init enabled.
+ * startup/bspclean.c: New file. Will prompt for reset and reset.
+
+2007-07-06 Joel Sherrill <joel.sherrill@oarcorp.com>
+
* clock/clock.c, console/console.c: Add clock HW initialization missed
in earlier conversion.
diff --git a/c/src/lib/libbsp/powerpc/gen5200/Makefile.am b/c/src/lib/libbsp/powerpc/gen5200/Makefile.am
index ea0dc05b1c..dc0553d8e6 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/gen5200/Makefile.am
@@ -110,7 +110,7 @@ tod_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
include_bsp_HEADERS += vectors/vectors.h
noinst_PROGRAMS += startup.rel
-startup_rel_SOURCES = ../../shared/bspclean.c ../../shared/bsplibc.c \
+startup_rel_SOURCES = startup/bspclean.c ../../shared/bsplibc.c \
../../shared/bsppost.c startup/bspstart.c ../../shared/bootcard.c \
../../shared/sbrk.c ../shared/uboot_dump_bdinfo.c \
../../shared/gnatinstallhandler.c startup/cpuinit.c start/start.S
diff --git a/c/src/lib/libbsp/powerpc/gen5200/console/console.c b/c/src/lib/libbsp/powerpc/gen5200/console/console.c
index e897d869fc..991fe405d1 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/console/console.c
+++ b/c/src/lib/libbsp/powerpc/gen5200/console/console.c
@@ -116,29 +116,29 @@
uint32_t mpc5200_uart_avail_mask = GEN5200_UART_AVAIL_MASK;
-uint8_t psc_minor_to_irqname[NUM_PORTS] =
- {BSP_SIU_IRQ_PSC1,
- BSP_SIU_IRQ_PSC2,
- BSP_SIU_IRQ_PSC3,
- BSP_SIU_IRQ_PSC4,
- BSP_SIU_IRQ_PSC5,
- BSP_SIU_IRQ_PSC6};
-static int mpc5200_psc_irqname_to_minor(int name)
-{
- int minor;
- uint8_t *chrptr;
-
- chrptr = memchr(psc_minor_to_irqname,
- name,
- sizeof(psc_minor_to_irqname));
- if (chrptr != NULL) {
- minor = chrptr - psc_minor_to_irqname;
- }
- else {
- minor = -1;
+#if defined(UARTS_USE_TERMIOS_INT)
+ uint8_t psc_minor_to_irqname[NUM_PORTS] =
+ {BSP_SIU_IRQ_PSC1,
+ BSP_SIU_IRQ_PSC2,
+ BSP_SIU_IRQ_PSC3,
+ BSP_SIU_IRQ_PSC4,
+ BSP_SIU_IRQ_PSC5,
+ BSP_SIU_IRQ_PSC6};
+
+ static int mpc5200_psc_irqname_to_minor(int name)
+ {
+ int minor;
+ uint8_t *chrptr;
+
+ uuchrptr = memchr(psc_minor_to_irqname, name, sizeof(psc_minor_to_irqname));
+ if (chrptr != NULL) {
+ minor = chrptr - psc_minor_to_irqname;
+ } else {
+ minor = -1;
+ }
+ return minor;
}
- return minor;
-}
+#endif
static void A_BSP_output_char(char c);
BSP_output_char_function_type BSP_output_char = A_BSP_output_char;
diff --git a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h b/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
index 9e63101a19..85bc7ace92 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
@@ -108,6 +108,10 @@
#define MBAR 0xF0000000
+/* We want to prompt for a reset and then reset the board */
+#define BSP_PRESS_KEY_FOR_RESET 1
+#define BSP_RESET_BOARD_AT_EXIT 1
+
#else
#error "board type not defined"
#endif
@@ -208,7 +212,7 @@ void bsp_cleanup(void);
#define PRINTK_MINOR PSC1_MINOR
#define SINGLE_CHAR_MODE
-#define UARTS_USE_TERMIOS_INT 1
+/* #define UARTS_USE_TERMIOS_INT 1 */
/* #define SHOW_MORE_INIT_SETTINGS 1 */
/* ata modes */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/start/start.S b/c/src/lib/libbsp/powerpc/gen5200/start/start.S
index cde5f878c7..2dc3b802eb 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/start/start.S
+++ b/c/src/lib/libbsp/powerpc/gen5200/start/start.S
@@ -473,10 +473,8 @@ skip_ROM_start:
xor r3, r3, r3
xor r4, r4, r4 /* Clear argc and argv */
-#if 1
bl SYM (boot_card) /* Call the first C routine */
-#endif
-
+
#if defined(BRS5L)
twiddle:
b twiddle /* We don't expect to return from boot_card but if we do */
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/bspclean.c b/c/src/lib/libbsp/powerpc/gen5200/startup/bspclean.c
new file mode 100644
index 0000000000..ebad9fc3c0
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/bspclean.c
@@ -0,0 +1,45 @@
+/*
+ * This is a dummy bsp_cleanup routine.
+ *
+ * COPYRIGHT (c) 1989-1999.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#include <rtems.h>
+#include <rtems/bspIo.h>
+#include <bsp.h>
+#include <mpc5200.h>
+
+extern int mpc5200_uart_pollRead(int minor);
+
+void bsp_cleanup( void )
+{
+ #if defined(BSP_PRESS_KEY_FOR_RESET)
+ printk( "\nEXECUTIVE SHUTDOWN! Any key to reboot..." );
+
+ /*
+ * Wait for a key to be pressed
+ */
+ while ( mpc5200_uart_pollRead(0) == -1 ) ;
+ #endif
+
+ /*
+ * Check both conditions -- if you want to ask for reboot, then
+ * you must have meant to reset the board.
+ */
+ #if defined(BSP_PRESS_KEY_FOR_RESET) || defined(BSP_RESET_BOARD_AT_EXIT)
+ /*
+ * Now reset the CPU
+ */
+ _ISR_Set_level( 0 );
+
+ mpc5200.gpt[0].count_in = 0xf;
+ mpc5200.gpt[0].emsel = 0x9004;
+ #endif
+}
diff --git a/c/src/lib/libbsp/powerpc/gen5200/vectors/vectors_init.c b/c/src/lib/libbsp/powerpc/gen5200/vectors/vectors_init.c
index 8e4aa8474b..99b8c006a4 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/vectors/vectors_init.c
+++ b/c/src/lib/libbsp/powerpc/gen5200/vectors/vectors_init.c
@@ -184,7 +184,9 @@ void initialize_exceptions()
for (i=0; i <= exception_config.exceptSize; i++)
{
- printk("installing exception number %d\n", i);
+ #if defined(SHOW_MORE_INIT_SETTINGS)
+ printk("installing exception number %d\n", i);
+ #endif
if (!ppc_vector_is_valid(i))
continue;