m68EZ328.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /***************************************************************************/
  2. /*
  3. * m68EZ328.c - 68EZ328 specific config
  4. *
  5. * Copyright (C) 1993 Hamish Macdonald
  6. * Copyright (C) 1999 D. Jeff Dionne
  7. *
  8. * This file is subject to the terms and conditions of the GNU General Public
  9. * License. See the file COPYING in the main directory of this archive
  10. * for more details.
  11. */
  12. /***************************************************************************/
  13. #include <linux/init.h>
  14. #include <linux/types.h>
  15. #include <linux/kernel.h>
  16. #include <linux/rtc.h>
  17. #include <asm/pgtable.h>
  18. #include <asm/machdep.h>
  19. #include <asm/MC68EZ328.h>
  20. #ifdef CONFIG_UCSIMM
  21. #include <asm/bootstd.h>
  22. #endif
  23. /***************************************************************************/
  24. int m68328_hwclk(int set, struct rtc_time *t);
  25. /***************************************************************************/
  26. void m68ez328_reset(void)
  27. {
  28. local_irq_disable();
  29. asm volatile (
  30. "moveal #0x10c00000, %a0;\n"
  31. "moveb #0, 0xFFFFF300;\n"
  32. "moveal 0(%a0), %sp;\n"
  33. "moveal 4(%a0), %a0;\n"
  34. "jmp (%a0);\n"
  35. );
  36. }
  37. /***************************************************************************/
  38. unsigned char *cs8900a_hwaddr;
  39. static int errno;
  40. #ifdef CONFIG_UCSIMM
  41. _bsc0(char *, getserialnum)
  42. _bsc1(unsigned char *, gethwaddr, int, a)
  43. _bsc1(char *, getbenv, char *, a)
  44. #endif
  45. void __init config_BSP(char *command, int len)
  46. {
  47. unsigned char *p;
  48. printk(KERN_INFO "\n68EZ328 DragonBallEZ support (C) 1999 Rt-Control, Inc\n");
  49. #ifdef CONFIG_UCSIMM
  50. printk(KERN_INFO "uCsimm serial string [%s]\n",getserialnum());
  51. p = cs8900a_hwaddr = gethwaddr(0);
  52. printk(KERN_INFO "uCsimm hwaddr %pM\n", p);
  53. p = getbenv("APPEND");
  54. if (p) strcpy(p,command);
  55. else command[0] = 0;
  56. #endif
  57. mach_sched_init = hw_timer_init;
  58. mach_hwclk = m68328_hwclk;
  59. mach_reset = m68ez328_reset;
  60. }
  61. /***************************************************************************/