2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
6 * Copyright (C) 2007 Cavium Networks
9 #include <asm/regdef.h>
11 #define SAVE_REG(r) sd $r, -32768+6912-(32-r)*8($0)
13 NESTED(octeon_wdt_nmi_stage2, 0, sp)
17 /* Save all registers to the top CVMSEG. This shouldn't
18 * corrupt any state used by the kernel. Also all registers
19 * should have the value right before the NMI. */
52 /* Set the stack to begin right below the registers */
53 li sp, -32768+6912-32*8
54 /* Load the address of the third stage handler */
55 dla a0, octeon_wdt_nmi_stage3
56 /* Call the third stage handler */
58 /* a0 is the address of the saved registers */
60 /* Loop forvever if we get here. */
64 END(octeon_wdt_nmi_stage2)