diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-06-17 11:58:41 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-06-17 11:58:41 +0000 |
commit | 25ed11d08e98b9893a076c57f694c14892155c01 (patch) | |
tree | 9dfff040a25548e21b1518f66612a33b6d82fa3d /c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c | |
parent | 2011-06-17 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-25ed11d08e98b9893a076c57f694c14892155c01.tar.bz2 |
2011-06-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
* Makefile.am: Added custom memcpy(). Update for network sources.
* configure.ac: Enable interrupt driven Termios for all BSPs.
* ide/pcmcia_ide.c: Disable broken DMA support.
* include/bsp.h: Fixed NEED_LOW_LEVEL_INIT define. Set default
console baud to 115200.
* include/irq.h, irq/irq.c: Fixed interrupt handling to avoid the
following problems: 1. multiple invokation of peripheral interrupt
handlers, 2. missing synchronization after mask write and enabling of
external exceptions, and 3. logic overhead.
* network_5200/network.c: Added MII interface. Fixed controller
restart after FIFO errors. Performance improvements.
* start/start.S: Fixed ROM startup. Initialize XLB arbiter for all
BSPs.
* startup/bspstart.c: Special intialization for MPC5200B (B variant).
Install standard alignment handler.
* startup/cpuinit.c, startup/linkcmds.brs5l, startup/linkcmds.dp2,
startup/linkcmds.icecube, startup/linkcmds.pm520_cr825,
startup/linkcmds.pm520_ze30: Avoid accesses outside the RAM area.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c b/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c index 81847882e7..16d541a6de 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c @@ -103,6 +103,7 @@ #include <bsp/bootcard.h> #include <bsp/irq.h> #include <bsp/irq-generic.h> +#include <bsp/mpc5200.h> /* * Driver configuration parameters @@ -144,6 +145,18 @@ void bsp_start(void) cpu_init(); + if(get_ppc_cpu_revision() >= 0x2014) { + /* Special settings for MPC5200B (B variant) */ + uint32_t xlb_cfg = mpc5200.config; + + /* XXX: The Freescale documentation for BSDIS seems to be wrong */ + xlb_cfg |= XLB_CFG_BSDIS; + + xlb_cfg &= ~XLB_CFG_PLDIS; + + mpc5200.config = xlb_cfg; + } + bsp_clicks_per_usec = (XLB_CLOCK/4000000); /* @@ -166,6 +179,7 @@ void bsp_start(void) if (sc != RTEMS_SUCCESSFUL) { BSP_panic("cannot initialize exceptions"); } + ppc_exc_set_handler(ASM_ALIGN_VECTOR, ppc_exc_alignment_handler); /* Initalize interrupt support */ sc = bsp_interrupt_initialize(); |