| /* |
| * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com> |
| * |
| * 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. |
| * |
| */ |
| |
| #include <linux/linkage.h> |
| #include <cpu/mmu_context.h> |
| |
| /* |
| * Kernel mode register usage: |
| * k0 scratch |
| * k1 scratch |
| * For more details, please have a look at entry.S |
| */ |
| |
| #define k0 r0 |
| #define k1 r1 |
| |
| ENTRY(wakeup_start) |
| ! clear STBY bit |
| mov #-126, k1 |
| and #127, k0 |
| mov.b k0, @k1 |
| ! enable refresh |
| mov.l 5f, k1 |
| mov.w 6f, k0 |
| mov.w k0, @k1 |
| ! jump to handler |
| mov.l 4f, k1 |
| jmp @k1 |
| nop |
| |
| .align 2 |
| 4: .long handle_interrupt |
| 5: .long 0xffffff68 |
| 6: .word 0x0524 |
| |
| ENTRY(wakeup_end) |
| nop |