source: rtems/c/src/lib/libbsp/m68k/mcf5225x/startup/init5225x.c @ d9c12bb

4.115
Last change on this file since d9c12bb was d9c12bb, checked in by Joel Sherrill <joel.sherrill@…>, on 10/12/14 at 22:39:59

m68k/mcf5225x: Fix warnings

  • Property mode set to 100644
File size: 1.8 KB
Line 
1/*
2 *  The license and distribution terms for this file may be
3 *  found in the file LICENSE in this distribution or at
4 *  http://www.rtems.org/license/LICENSE.
5 *
6 *  This is where the real hardware setup is done. A minimal stack
7 *  has been provided by the start.S code. No normal C or RTEMS
8 *  functions can be called from here.
9 */
10
11#include <bsp/bootcard.h>
12
13extern void _wr_vbr(uint32_t);
14
15extern long _d0_reset,_d1_reset,_M68kSpuriousInterruptCount;
16
17/*
18 * From linkcmds
19 */
20
21extern uint8_t _INTERRUPT_VECTOR[];
22
23extern uint8_t _clear_start[];
24extern uint8_t _clear_end[];
25
26extern uint8_t _data_src_start[];
27extern uint8_t _data_dest_start[];
28extern uint8_t _data_dest_end[];
29
30void Init5225x(void)
31{
32  register uint32_t i;
33  register uint32_t *dp, *sp;
34  register uint8_t *dbp, *sbp;
35
36  /*
37   * Copy the vector table to RAM
38   */
39
40  if (&_VBR != (void *)_INTERRUPT_VECTOR) {
41    sp = (uint32_t *) _INTERRUPT_VECTOR;
42    dp = (uint32_t *) &_VBR;
43    for (i = 0; i < 256; i++) {
44      *dp++ = *sp++;
45    }
46  }
47
48  /*
49   * Move initialized data from ROM to RAM.
50   */
51  if (_data_src_start != _data_dest_start) {
52    dbp = (uint8_t *) _data_dest_start;
53    sbp = (uint8_t *) _data_src_start;
54    i = _data_dest_end - _data_dest_start;
55    while (i--)
56      *dbp++ = *sbp++;
57  }
58
59        asm __volatile__ ("move.l %%d5,%0\n\t":"=r" (_d0_reset));
60        asm __volatile__ ("move.l %%d6,%0\n\t":"=r" (_d1_reset));
61 
62  /*
63   * Zero uninitialized data
64   */
65
66  if (_clear_start != _clear_end) {
67    sbp = _clear_start;
68    dbp = _clear_end;
69    i = dbp - sbp;
70    while (i--)
71      *sbp++ = 0;
72  }
73
74//_wr_vbr((uint32_t) &_VBR);
75        asm volatile("move.l %0,%%d7;movec %%d7,%%vbr\n\t"::"i"(&_VBR): "cc");
76
77  /*
78   * We have to call some kind of RTEMS function here!
79   */
80
81  boot_card(0);
82  for (;;) ;
83}
Note: See TracBrowser for help on using the repository browser.