summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/gen5200/console/console.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-15 10:55:02 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-15 10:55:02 +0000
commitddd5640ff64895e7d937bf69d8d8f8ffc507aad9 (patch)
treee05873b61dbe6b17b253c92f3d74dfbacb34aa9a /c/src/lib/libbsp/powerpc/gen5200/console/console.c
parent2010-11-12 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-ddd5640ff64895e7d937bf69d8d8f8ffc507aad9.tar.bz2
2010-11-12 Sebastian Huber <sebastian.huber@embedded-brains.de>
* make/custom/dp2.cfg, startup/linkcmds.dp2: New files. * Makefile.am, preinstall.am: Reflect change above. Install <bsp/utility.h>. Install BestComm header files. * configure.ac: Changed BSP options. * include/mpc5200.h: Added module structures and register defines. * bestcomm/bestcomm_api.c, bestcomm/bestcomm_api.h, bestcomm/bestcomm_glue.c, bestcomm/bestcomm_glue.h, bestcomm/bestcomm_priv.h, bestcomm/load_task.c, bestcomm/tasksetup_bdtable.c, bestcomm/task_api/bestcomm_cntrl.h: C++ compatibility. Use special heap to manage the SRAM region. Use interrupt extension API. Fixed warnings. * console/console.c: Fixed console registration. Fixed warnings. Added GPS module registration. * ide/pcmcia_ide.h: Fixed clock value macros. * ide/pcmcia_ide.c: Update for BestComm API changes. DP2 specific initialization. Removed zero loop in PIO receive function. * include/bsp.h: Added DP2 variant. Removed obsolete defines. * include/mscan-base.h, mscan/mscan-base.c: Use volatile qualifier. Format. * irq/irq.c: Fixed peripheral interrupt handling. * network_5200/network.c: Update for BestComm API changes. * start/start.S: U-Boot fixes. * startup/cpuinit.c: Enable write-back cache strategy. Added special memory regions. * startup/linkcmds.brs5l: Fixed memory size.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/console/console.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen5200/console/console.c b/c/src/lib/libbsp/powerpc/gen5200/console/console.c
index 11543a907a..2863085047 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/console/console.c
+++ b/c/src/lib/libbsp/powerpc/gen5200/console/console.c
@@ -95,6 +95,8 @@
/* */
/***********************************************************************/
+#include <assert.h>
+
#include <rtems.h>
#include "../include/mpc5200.h"
#include <bsp.h>
@@ -233,12 +235,12 @@ int mpc5200_psc_setAttributes(
/*
* Set upper timer counter
*/
- psc->ctur = (uint16_t)(baud >> 16);
+ psc->ctur = (uint8_t) (baud >> 8);
/*
* Set lower timer counter
*/
- psc->ctlr = (uint16_t)(baud & 0x0000FFFF);
+ psc->ctlr = (uint8_t) baud;
/*
* Reset mode pointer
@@ -499,10 +501,7 @@ void mpc5200_uart_psc_initialize(
/*
* Install rtems irq handler
*/
- if (!BSP_install_rtems_irq_handler (&consoleIrqData)) {
- printk("Unable to connect PSC Irq handler\n");
- rtems_fatal_error_occurred(1);
- }
+ assert(BSP_install_rtems_irq_handler(&consoleIrqData) == 1);
#endif
/*
@@ -675,6 +674,7 @@ rtems_device_driver console_initialize(
rtems_device_minor_number console_minor;
char dev_name[] = "/dev/ttyx";
uint32_t tty_num = 0;
+ bool first = true;
/*
* Always use and set up TERMIOS
@@ -695,20 +695,27 @@ rtems_device_driver console_initialize(
mpc5200_uart_psc_initialize(console_minor); /* /dev/tty0 */
dev_name[8] = '0' + tty_num;
status = rtems_io_register_name (dev_name, major, console_minor);
+ assert(status == RTEMS_SUCCESSFUL);
+
+ #ifdef MPC5200_PSC_INDEX_FOR_GPS_MODULE
+ if (console_minor == MPC5200_PSC_INDEX_FOR_GPS_MODULE) {
+ status = rtems_io_register_name("/dev/gps", major, console_minor);
+ assert(status == RTEMS_SUCCESSFUL);
+ }
+ #endif
- if (status != RTEMS_SUCCESSFUL)
- rtems_fatal_error_occurred(status);
+ if (first) {
+ first = false;
+
+ /* Now register the RTEMS console */
+ status = rtems_io_register_name ("/dev/console", major, console_minor);
+ assert(status == RTEMS_SUCCESSFUL);
+ }
tty_num++;
}
}
- /* Now register the RTEMS console */
- status = rtems_io_register_name ("/dev/console", major, PSC1_MINOR);
-
- if(status != RTEMS_SUCCESSFUL)
- rtems_fatal_error_occurred (status);
-
console_initialized = true;
return RTEMS_SUCCESSFUL;
}