diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-11-15 10:55:02 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-11-15 10:55:02 +0000 |
commit | ddd5640ff64895e7d937bf69d8d8f8ffc507aad9 (patch) | |
tree | e05873b61dbe6b17b253c92f3d74dfbacb34aa9a /c/src/lib/libbsp/powerpc/gen5200/console/console.c | |
parent | 2010-11-12 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-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.c | 35 |
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; } |