source: rtems/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c @ 0c875c6a

4.115
Last change on this file since 0c875c6a was 0c875c6a, checked in by Joel Sherrill <joel.sherrill@…>, on 01/28/11 at 20:29:53

2011-01-28 Joel Sherrill <joel.sherrilL@…>

  • beatnik/include/bsp.h, beatnik/irq/irq.h, beatnik/pci/gt_pci_init.c, ep1a/console/polled_io.c, ep1a/irq/openpic_xxx_irq.c, gen5200/include/irq.h, gen5200/irq/irq.c, gen5200/startup/bspstart.c, haleakala/irq/irq.c, mbx8xx/irq/irq.c, mbx8xx/irq/irq.h, motorola_powerpc/include/bsp.h, mpc8260ads/irq/irq.c, mpc8260ads/irq/irq.h, mvme3100/include/bsp.h, mvme3100/irq/irq.h, mvme3100/start/start.S, mvme5500/include/bsp.h, mvme5500/irq/irq.h, psim/include/bsp.h, psim/include/coverhd.h, psim/irq/irq.h, psim/shmsupp/addrconv.c, psim/shmsupp/getcfg.c, psim/startup/linkcmds, psim/tools/psim-gdb-top.in, psim/tools/psim-top.in, psim/tools/runtest-top.in, qemuppc/irq/irq.h, score603e/irq/irq.c, shared/bootloader/bootldr.h, shared/bootloader/em86.c, shared/bootloader/em86real.S, shared/bootloader/exception.S, shared/bootloader/head.S, shared/bootloader/lib.c, shared/bootloader/misc.c, shared/bootloader/mm.c, shared/bootloader/pci.c, shared/console/console.c, shared/console/consoleIo.h, shared/console/inch.c, shared/console/keyboard.h, shared/console/polled_io.c, shared/irq/i8259.c, shared/irq/irq.h, shared/irq/openpic_i8259_irq.c, shared/motorola/motorola.c, shared/motorola/motorola.h, shared/openpic/openpic.c, shared/openpic/openpic.h, shared/pci/pci.c, shared/residual/residual.c, shared/start/start.S, ss555/irq/irq.h: Fix typo where license said found in found in.
  • Property mode set to 100644
File size: 8.7 KB
Line 
1/*===============================================================*\
2| Project: RTEMS generic MPC5200 BSP                              |
3+-----------------------------------------------------------------+
4| Partially based on the code references which are named below.   |
5| Adaptions, modifications, enhancements and any recent parts of  |
6| the code are:                                                   |
7|                    Copyright (c) 2005                           |
8|                    Embedded Brains GmbH                         |
9|                    Obere Lagerstr. 30                           |
10|                    D-82178 Puchheim                             |
11|                    Germany                                      |
12|                    rtems@embedded-brains.de                     |
13+-----------------------------------------------------------------+
14| The license and distribution terms for this file may be         |
15| found in the file LICENSE in this distribution or at            |
16|                                                                 |
17| http://www.rtems.com/license/LICENSE.                           |
18|                                                                 |
19+-----------------------------------------------------------------+
20| this file contains the BSP initialization code                  |
21\*===============================================================*/
22/***********************************************************************/
23/*                                                                     */
24/*   Module:       bspstart.c                                          */
25/*   Date:         07/17/2003                                          */
26/*   Purpose:      RTEMS MPC5x00 C level startup code                  */
27/*                                                                     */
28/*---------------------------------------------------------------------*/
29/*                                                                     */
30/*   Description:  This routine starts the application. It includes    */
31/*                 application, board, and monitor specific            */
32/*                 initialization and configuration. The generic CPU   */
33/*                 dependent initialization has been performed before  */
34/*                 this routine is invoked.                            */
35/*                                                                     */
36/*---------------------------------------------------------------------*/
37/*                                                                     */
38/*   Code                                                              */
39/*   References:   MPC8260ads C level startup code                     */
40/*   Module:       bspstart.c                                          */
41/*   Project:      RTEMS 4.6.0pre1 / MCF8260ads BSP                    */
42/*   Version       1.2                                                 */
43/*   Date:         04/17/2002                                          */
44/*                                                                     */
45/*   Author(s) / Copyright(s):                                         */
46/*                                                                     */
47/*   The MPC860 specific stuff was written by Jay Monkman              */
48/*   (jmonkman@frasca.com)                                             */
49/*                                                                     */
50/*   Modified for the MPC8260ADS board by Andy Dachs                   */
51/*   <a.dachs@sstl.co.uk>                                              */
52/*   Surrey Satellite Technology Limited, 2001                         */
53/*   A 40MHz system clock is assumed.                                  */
54/*   The PON. RST.CONF. Dip switches (DS1) are                         */
55/*   1 - Off                                                           */
56/*   2 - On                                                            */
57/*   3 - Off                                                           */
58/*   4 - On                                                            */
59/*   5 - Off                                                           */
60/*   6 - Off                                                           */
61/*   7 - Off                                                           */
62/*   8 - Off                                                           */
63/*   Dip switches on DS2 and DS3 are all set to ON                     */
64/*   The LEDs on the board are used to signal panic and fatal_error    */
65/*   conditions.                                                       */
66/*   The mmu is unused at this time.                                   */
67/*                                                                     */
68/*   COPYRIGHT (c) 1989-2007.                                          */
69/*   On-Line Applications Research Corporation (OAR).                  */
70/*                                                                     */
71/*   The license and distribution terms for this file may be           */
72/*   found in the file LICENSE in this distribution or at     */
73/*   http://www.rtems.com/license/LICENSE.                             */
74/*                                                                     */
75/*---------------------------------------------------------------------*/
76/*                                                                     */
77/*   Partially based on the code references which are named above.     */
78/*   Adaptions, modifications, enhancements and any recent parts of    */
79/*   the code are under the right of                                   */
80/*                                                                     */
81/*         IPR Engineering, Dachauer Straße 38, D-80335 MÃŒnchen        */
82/*                        Copyright(C) 2003                            */
83/*                                                                     */
84/*---------------------------------------------------------------------*/
85/*                                                                     */
86/*   IPR Engineering makes no representation or warranties with        */
87/*   respect to the performance of this computer program, and          */
88/*   specifically disclaims any responsibility for any damages,        */
89/*   special or consequential, connected with the use of this program. */
90/*                                                                     */
91/*---------------------------------------------------------------------*/
92/*                                                                     */
93/*   Version history:  1.0                                             */
94/*                                                                     */
95/***********************************************************************/
96
97#include <rtems.h>
98
99#include <libcpu/powerpc-utility.h>
100
101#include <bsp.h>
102#include <bsp/vectors.h>
103#include <bsp/bootcard.h>
104#include <bsp/irq.h>
105#include <bsp/irq-generic.h>
106
107/*
108 *  Driver configuration parameters
109 */
110uint32_t   bsp_clicks_per_usec;
111
112void BSP_panic(char *s)
113{
114  printk("%s PANIC %s\n",_RTEMS_version, s);
115  __asm__ __volatile ("sc");
116}
117
118void _BSP_Fatal_error(unsigned int v)
119{
120  printk("%s PANIC ERROR %x\n",_RTEMS_version, v);
121  __asm__ __volatile ("sc");
122}
123
124void bsp_start(void)
125{
126  rtems_status_code sc = RTEMS_SUCCESSFUL;
127  ppc_cpu_id_t myCpu;
128  ppc_cpu_revision_t myCpuRevision;
129
130  /*
131   * Get CPU identification dynamically. Note that the get_ppc_cpu_type()
132   * function store the result in global variables so that it can be used
133   * later...
134   */
135  myCpu         = get_ppc_cpu_type();
136  myCpuRevision = get_ppc_cpu_revision();
137
138  #if defined(HAS_UBOOT) && defined(SHOW_MORE_INIT_SETTINGS)
139    {
140      void dumpUBootBDInfo( bd_t * );
141      dumpUBootBDInfo( &bsp_uboot_board_info );
142    }
143  #endif
144
145  cpu_init();
146
147  bsp_clicks_per_usec    = (XLB_CLOCK/4000000);
148
149  /*
150   * Enable instruction and data caches. Do not force writethrough mode.
151   */
152  #if INSTRUCTION_CACHE_ENABLE
153    rtems_cache_enable_instruction();
154  #endif
155  #if DATA_CACHE_ENABLE
156    rtems_cache_enable_data();
157  #endif
158
159  /* Initialize exception handler */
160  ppc_exc_cache_wb_check = 0;
161  sc = ppc_exc_initialize(
162    PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
163    (uintptr_t) bsp_interrupt_stack_start,
164    (uintptr_t) bsp_interrupt_stack_size
165  );
166  if (sc != RTEMS_SUCCESSFUL) {
167    BSP_panic("cannot initialize exceptions");
168  }
169
170  /* Initalize interrupt support */
171  sc = bsp_interrupt_initialize();
172  if (sc != RTEMS_SUCCESSFUL) {
173    BSP_panic("cannot intitialize interrupts");
174  }
175
176  /*
177   *  If the BSP was built with IRQ benchmarking enabled,
178   *  then intialize it.
179   */
180  #if (BENCHMARK_IRQ_PROCESSING == 1)
181    BSP_IRQ_Benchmarking_Reset();
182  #endif
183
184  #ifdef SHOW_MORE_INIT_SETTINGS
185    printk("Exit from bspstart\n");
186  #endif
187}
Note: See TracBrowser for help on using the repository browser.