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 12 13 .globl hp300_reset 14hp300_reset: 15 .chip 68030 16 oriw #0x0700,%sr /* cli() */ 17 movel hp300_phys_ram_base, %d1 18 movel #0, %d0 19 movec %d0, %vbr /* reset vector table */ 20 lea zero, %a0 21 lea 1f, %a1 22 add %d1, %a0 23 add %d1, %a1 24 pmove %tc, %a0@ 25 bclr #7, %a0@ 26 pmove %a0@, %tc /* goodbye MMU */ 27 jmp %a1@ 281: movel #0x808, %d0 29 movec %d0, %cacr /* cache off */ 30 moveb #0, 0x1ffff 31 movel #0x1a4, %a0 32 jmp %a0@ 33 34zero: .quad 0 35