18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci * 38c2ecf20Sopenharmony_ci * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com> 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <linux/linkage.h> 78c2ecf20Sopenharmony_ci#include <cpu/mmu_context.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci/* 108c2ecf20Sopenharmony_ci * Kernel mode register usage: 118c2ecf20Sopenharmony_ci * k0 scratch 128c2ecf20Sopenharmony_ci * k1 scratch 138c2ecf20Sopenharmony_ci * For more details, please have a look at entry.S 148c2ecf20Sopenharmony_ci */ 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci#define k0 r0 178c2ecf20Sopenharmony_ci#define k1 r1 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciENTRY(wakeup_start) 208c2ecf20Sopenharmony_ci! clear STBY bit 218c2ecf20Sopenharmony_ci mov #-126, k1 228c2ecf20Sopenharmony_ci and #127, k0 238c2ecf20Sopenharmony_ci mov.b k0, @k1 248c2ecf20Sopenharmony_ci! enable refresh 258c2ecf20Sopenharmony_ci mov.l 5f, k1 268c2ecf20Sopenharmony_ci mov.w 6f, k0 278c2ecf20Sopenharmony_ci mov.w k0, @k1 288c2ecf20Sopenharmony_ci! jump to handler 298c2ecf20Sopenharmony_ci mov.l 4f, k1 308c2ecf20Sopenharmony_ci jmp @k1 318c2ecf20Sopenharmony_ci nop 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci .align 2 348c2ecf20Sopenharmony_ci4: .long handle_interrupt 358c2ecf20Sopenharmony_ci5: .long 0xffffff68 368c2ecf20Sopenharmony_ci6: .word 0x0524 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciENTRY(wakeup_end) 398c2ecf20Sopenharmony_ci nop 40