diff options
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/ChangeLog | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/Makefile.am | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/console/console.c | 44 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/include/bsp.h | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/start/start.S | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/startup/bspclean.c | 45 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/vectors/vectors_init.c | 4 |
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; |