m68knommu: fix 5307 ColdFire UART vector setup
[linux-2.6] / arch / m68knommu / platform / 68EZ328 / config.c
1 /***************************************************************************/
2
3 /*
4  *  linux/arch/m68knommu/platform/68EZ328/config.c
5  *
6  *  Copyright (C) 1993 Hamish Macdonald
7  *  Copyright (C) 1999 D. Jeff Dionne
8  *
9  * This file is subject to the terms and conditions of the GNU General Public
10  * License.  See the file COPYING in the main directory of this archive
11  * for more details.
12  */
13
14 /***************************************************************************/
15
16 #include <linux/types.h>
17 #include <linux/kernel.h>
18 #include <asm/system.h>
19 #include <asm/pgtable.h>
20 #include <asm/machdep.h>
21 #include <asm/MC68EZ328.h>
22 #ifdef CONFIG_UCSIMM
23 #include <asm/bootstd.h>
24 #endif
25
26 /***************************************************************************/
27
28 void m68328_timer_gettod(int *year, int *mon, int *day, int *hour, int *min, int *sec);
29
30 /***************************************************************************/
31
32 void m68ez328_reset(void)
33 {
34   local_irq_disable();
35   asm volatile (
36     "moveal #0x10c00000, %a0;\n"
37     "moveb #0, 0xFFFFF300;\n"
38     "moveal 0(%a0), %sp;\n"
39     "moveal 4(%a0), %a0;\n"
40     "jmp (%a0);\n"
41     );
42 }
43
44 /***************************************************************************/
45
46 unsigned char *cs8900a_hwaddr;
47 static int errno;
48
49 #ifdef CONFIG_UCSIMM
50 _bsc0(char *, getserialnum)
51 _bsc1(unsigned char *, gethwaddr, int, a)
52 _bsc1(char *, getbenv, char *, a)
53 #endif
54
55 void config_BSP(char *command, int len)
56 {
57   unsigned char *p;
58
59   printk(KERN_INFO "\n68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n");
60
61 #ifdef CONFIG_UCSIMM
62   printk(KERN_INFO "uCsimm serial string [%s]\n",getserialnum());
63   p = cs8900a_hwaddr = gethwaddr(0);
64   printk(KERN_INFO "uCsimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
65          p[0], p[1], p[2], p[3], p[4], p[5]);
66
67   p = getbenv("APPEND");
68   if (p) strcpy(p,command);
69   else command[0] = 0;
70 #endif
71  
72   mach_gettod = m68328_timer_gettod;
73   mach_reset = m68ez328_reset;
74 }
75
76 /***************************************************************************/