blob: 4f18d44e05413f265e3de3d5629d6a8e97f50093 [file] [log] [blame]
Andriy Skulysh3aa770e2006-09-27 16:20:22 +09001/*
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
10#include <linux/linkage.h>
Paul Mundtf15cbe62008-07-29 08:09:44 +090011#include <cpu/mmu_context.h>
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090012
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090013/*
14 * Kernel mode register usage:
15 * k0 scratch
16 * k1 scratch
Magnus Damm1d015cf2009-02-23 07:14:02 +000017 * For more details, please have a look at entry.S
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090018 */
19
Magnus Damm1d015cf2009-02-23 07:14:02 +000020#define k0 r0
21#define k1 r1
22
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090023ENTRY(wakeup_start)
24! clear STBY bit
Magnus Damm1d015cf2009-02-23 07:14:02 +000025 mov #-126, k1
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090026 and #127, k0
Magnus Damm1d015cf2009-02-23 07:14:02 +000027 mov.b k0, @k1
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090028! enable refresh
29 mov.l 5f, k1
30 mov.w 6f, k0
31 mov.w k0, @k1
32! jump to handler
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090033 mov.l 4f, k1
34 jmp @k1
Magnus Damm1d015cf2009-02-23 07:14:02 +000035 nop
Andriy Skulysh3aa770e2006-09-27 16:20:22 +090036
37 .align 2
Magnus Damm1d015cf2009-02-23 07:14:02 +0000384: .long handle_interrupt
Andriy Skulysh3aa770e2006-09-27 16:20:22 +0900395: .long 0xffffff68
406: .word 0x0524
41
42ENTRY(wakeup_end)
43 nop