Commit | Line | Data |
---|---|---|
f46121bd MJ |
1 | /* |
2 | * kgdb support for ARC | |
3 | * | |
4 | * Copyright (C) 2012 Synopsys, Inc. (www.synopsys.com) | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License version 2 as | |
8 | * published by the Free Software Foundation. | |
9 | */ | |
10 | ||
11 | #ifndef __ARC_KGDB_H__ | |
12 | #define __ARC_KGDB_H__ | |
13 | ||
14 | #ifdef CONFIG_KGDB | |
15 | ||
1540c85b | 16 | #include <asm/ptrace.h> |
f46121bd MJ |
17 | |
18 | /* to ensure compatibility with Linux 2.6.35, we don't implement the get/set | |
19 | * register API yet */ | |
20 | #undef DBG_MAX_REG_NUM | |
21 | ||
ebc0c74e | 22 | #define GDB_MAX_REGS 87 |
f46121bd MJ |
23 | |
24 | #define BREAK_INSTR_SIZE 2 | |
25 | #define CACHE_FLUSH_IS_SAFE 1 | |
26 | #define NUMREGBYTES (GDB_MAX_REGS * 4) | |
27 | #define BUFMAX 2048 | |
28 | ||
29 | static inline void arch_kgdb_breakpoint(void) | |
30 | { | |
31 | __asm__ __volatile__ ("trap_s 0x4\n"); | |
32 | } | |
33 | ||
38a9ff6d | 34 | extern void kgdb_trap(struct pt_regs *regs); |
f46121bd | 35 | |
ebc0c74e AK |
36 | /* This is the numbering of registers according to the GDB. See GDB's |
37 | * arc-tdep.h for details. | |
38 | * | |
39 | * Registers are ordered for GDB 7.5. It is incompatible with GDB 6.8. */ | |
40 | enum arc_linux_regnums { | |
f46121bd MJ |
41 | _R0 = 0, |
42 | _R1, _R2, _R3, _R4, _R5, _R6, _R7, _R8, _R9, _R10, _R11, _R12, _R13, | |
43 | _R14, _R15, _R16, _R17, _R18, _R19, _R20, _R21, _R22, _R23, _R24, | |
44 | _R25, _R26, | |
ebc0c74e AK |
45 | _FP = 27, |
46 | __SP = 28, | |
47 | _R30 = 30, | |
48 | _BLINK = 31, | |
49 | _LP_COUNT = 60, | |
50 | _STOP_PC = 64, | |
51 | _RET = 64, | |
52 | _LP_START = 65, | |
53 | _LP_END = 66, | |
54 | _STATUS32 = 67, | |
55 | _ECR = 76, | |
56 | _BTA = 82, | |
f46121bd MJ |
57 | }; |
58 | ||
59 | #else | |
38a9ff6d | 60 | #define kgdb_trap(regs) |
f46121bd MJ |
61 | #endif |
62 | ||
63 | #endif /* __ARC_KGDB_H__ */ |