Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / nios2 / include / asm / kgdb.h
1 /*
2  * Copyright (C) 2015 Altera Corporation
3  * Copyright (C) 2011 Tobias Klauser <tklauser@distanz.ch>
4  *
5  * Based on the code posted by Kazuyasu on the Altera Forum at:
6  * http://www.alteraforum.com/forum/showpost.php?p=77003&postcount=20
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22
23 #ifndef _ASM_NIOS2_KGDB_H
24 #define _ASM_NIOS2_KGDB_H
25
26 #define CACHE_FLUSH_IS_SAFE     1
27 #define BUFMAX                  2048
28
29 enum regnames {
30         GDB_R0 = 0,
31         GDB_AT,
32         GDB_R2,
33         GDB_R3,
34         GDB_R4,
35         GDB_R5,
36         GDB_R6,
37         GDB_R7,
38         GDB_R8,
39         GDB_R9,
40         GDB_R10,
41         GDB_R11,
42         GDB_R12,
43         GDB_R13,
44         GDB_R14,
45         GDB_R15,
46         GDB_R16,
47         GDB_R17,
48         GDB_R18,
49         GDB_R19,
50         GDB_R20,
51         GDB_R21,
52         GDB_R22,
53         GDB_R23,
54         GDB_ET,
55         GDB_BT,
56         GDB_GP,
57         GDB_SP,
58         GDB_FP,
59         GDB_EA,
60         GDB_BA,
61         GDB_RA,
62         GDB_PC,
63         GDB_STATUS,
64         GDB_ESTATUS,
65         GDB_BSTATUS,
66         GDB_IENABLE,
67         GDB_IPENDING,
68         GDB_CPUID,
69         GDB_CTL6,
70         GDB_EXCEPTION,
71         GDB_PTEADDR,
72         GDB_TLBACC,
73         GDB_TLBMISC,
74         GDB_ECCINJ,
75         GDB_BADADDR,
76         GDB_CONFIG,
77         GDB_MPUBASE,
78         GDB_MPUACC,
79         /* do not change the last entry or anything below! */
80         GDB_NUMREGBYTES         /* number of registers */
81 };
82
83 #define GDB_SIZEOF_REG          sizeof(u32)
84 #define DBG_MAX_REG_NUM (49)
85 #define NUMREGBYTES             (DBG_MAX_REG_NUM * sizeof(GDB_SIZEOF_REG))
86
87 #define BREAK_INSTR_SIZE        4
88 static inline void arch_kgdb_breakpoint(void)
89 {
90         __asm__ __volatile__("trap 30\n");
91 }
92
93 #endif /* _ASM_NIOS2_KGDB_H */