| 
									
										
										
										
											2005-09-09 09:32:14 +10:00
										 |  |  | /***************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2012-12-04 23:04:49 +00:00
										 |  |  |  *  m68EZ328.c - 68EZ328 specific config | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * | 
					
						
							|  |  |  |  *  Copyright (C) 1993 Hamish Macdonald | 
					
						
							|  |  |  |  *  Copyright (C) 1999 D. Jeff Dionne | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This file is subject to the terms and conditions of the GNU General Public | 
					
						
							|  |  |  |  * License.  See the file COPYING in the main directory of this archive | 
					
						
							|  |  |  |  * for more details. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-09-09 09:32:14 +10:00
										 |  |  | /***************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | #include <linux/kernel.h>
 | 
					
						
							| 
									
										
										
										
											2012-01-23 13:25:56 +10:00
										 |  |  | #include <linux/rtc.h>
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #include <asm/pgtable.h>
 | 
					
						
							|  |  |  | #include <asm/machdep.h>
 | 
					
						
							|  |  |  | #include <asm/MC68EZ328.h>
 | 
					
						
							|  |  |  | #ifdef CONFIG_UCSIMM
 | 
					
						
							|  |  |  | #include <asm/bootstd.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-09-09 09:32:14 +10:00
										 |  |  | /***************************************************************************/ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-23 13:25:56 +10:00
										 |  |  | int m68328_hwclk(int set, struct rtc_time *t); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-09-09 09:32:14 +10:00
										 |  |  | /***************************************************************************/ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-09-09 09:32:14 +10:00
										 |  |  | void m68ez328_reset(void) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							|  |  |  |   local_irq_disable(); | 
					
						
							| 
									
										
										
										
											2006-06-28 16:23:14 +10:00
										 |  |  |   asm volatile ( | 
					
						
							|  |  |  |     "moveal #0x10c00000, %a0;\n" | 
					
						
							|  |  |  |     "moveb #0, 0xFFFFF300;\n" | 
					
						
							|  |  |  |     "moveal 0(%a0), %sp;\n" | 
					
						
							|  |  |  |     "moveal 4(%a0), %a0;\n" | 
					
						
							|  |  |  |     "jmp (%a0);\n" | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-09-09 09:32:14 +10:00
										 |  |  | /***************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | unsigned char *cs8900a_hwaddr; | 
					
						
							|  |  |  | static int errno; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_UCSIMM
 | 
					
						
							|  |  |  | _bsc0(char *, getserialnum) | 
					
						
							|  |  |  | _bsc1(unsigned char *, gethwaddr, int, a) | 
					
						
							|  |  |  | _bsc1(char *, getbenv, char *, a) | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void config_BSP(char *command, int len) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   unsigned char *p; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   printk(KERN_INFO "\n68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_UCSIMM
 | 
					
						
							|  |  |  |   printk(KERN_INFO "uCsimm serial string [%s]\n",getserialnum()); | 
					
						
							|  |  |  |   p = cs8900a_hwaddr = gethwaddr(0); | 
					
						
							|  |  |  |   printk(KERN_INFO "uCsimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", | 
					
						
							|  |  |  |          p[0], p[1], p[2], p[3], p[4], p[5]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   p = getbenv("APPEND"); | 
					
						
							|  |  |  |   if (p) strcpy(p,command); | 
					
						
							|  |  |  |   else command[0] = 0; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  |   | 
					
						
							| 
									
										
										
										
											2012-01-23 13:25:56 +10:00
										 |  |  |   mach_hwclk = m68328_hwclk; | 
					
						
							| 
									
										
										
										
											2007-10-24 12:03:28 +10:00
										 |  |  |   mach_reset = m68ez328_reset; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2005-09-09 09:32:14 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  | /***************************************************************************/ |