reboot.S
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/arch/m68k/hp300/reboot.S
  3.  *
  4.  *  Copyright (C) 1998 Philip Blundell <philb@gnu.org>
  5.  *
  6.  *  Do the dirty work of rebooting the machine.  Basically we need to undo all the
  7.  *  good stuff that head.S did when we started up.  The caches and MMU must be
  8.  *  disabled and then we jump back to the PROM.  This is a bit gruesome but we put
  9.  *  a brave face on it.
  10.  */
  11. /* XXX Doesn't work yet.  Not sure why and can't be bothered to fix it at the moment. */
  12. .globl hp300_reset
  13. hp300_reset:
  14. .chip 68030
  15. oriw    #0x0700,%sr /* cli() */
  16. movel hp300_phys_ram_base, %d1
  17. movel #0, %d0
  18. movec %d0, %vbr /* reset vector table */
  19. lea zero, %a0
  20. lea 1f, %a1
  21. add %d1, %a0
  22. add %d1, %a1
  23. pmove %tc, %a0@
  24. bclr #7, %a0@
  25. pmove %a0@, %tc /* goodbye MMU */
  26. jmp %a1@
  27. 1: movel #0x808, %d0
  28. movec %d0, %cacr /* cache off */
  29. moveb #0, 0x1ffff
  30. movel #0x1a4, %a0
  31. jmp %a0@
  32. zero: .quad 0