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