pm_wakeup.S 739 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com>
  3. *
  4. * This file is subject to the terms and conditions of the GNU General Public
  5. * License. See the file "COPYING" in the main directory of this archive
  6. * for more details.
  7. *
  8. */
  9. #include <linux/linkage.h>
  10. #include <cpu/mmu_context.h>
  11. /*
  12. * Kernel mode register usage:
  13. * k0 scratch
  14. * k1 scratch
  15. * For more details, please have a look at entry.S
  16. */
  17. #define k0 r0
  18. #define k1 r1
  19. ENTRY(wakeup_start)
  20. ! clear STBY bit
  21. mov #-126, k1
  22. and #127, k0
  23. mov.b k0, @k1
  24. ! enable refresh
  25. mov.l 5f, k1
  26. mov.w 6f, k0
  27. mov.w k0, @k1
  28. ! jump to handler
  29. mov.l 4f, k1
  30. jmp @k1
  31. nop
  32. .align 2
  33. 4: .long handle_interrupt
  34. 5: .long 0xffffff68
  35. 6: .word 0x0524
  36. ENTRY(wakeup_end)
  37. nop