1 /* Kernel debugger for MN10300
2  *
3  * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved.
4  * Written by David Howells (dhowells@redhat.com)
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public Licence
8  * as published by the Free Software Foundation; either version
9  * 2 of the Licence, or (at your option) any later version.
10  */
11 
12 #ifndef _ASM_KGDB_H
13 #define _ASM_KGDB_H
14 
15 /*
16  * BUFMAX defines the maximum number of characters in inbound/outbound
17  * buffers at least NUMREGBYTES*2 are needed for register packets
18  * Longer buffer is needed to list all threads
19  */
20 #define BUFMAX			1024
21 
22 /*
23  * Note that this register image is in a different order than the register
24  * image that Linux produces at interrupt time.
25  */
26 enum regnames {
27 	GDB_FR_D0		= 0,
28 	GDB_FR_D1		= 1,
29 	GDB_FR_D2		= 2,
30 	GDB_FR_D3		= 3,
31 	GDB_FR_A0		= 4,
32 	GDB_FR_A1		= 5,
33 	GDB_FR_A2		= 6,
34 	GDB_FR_A3		= 7,
35 
36 	GDB_FR_SP		= 8,
37 	GDB_FR_PC		= 9,
38 	GDB_FR_MDR		= 10,
39 	GDB_FR_EPSW		= 11,
40 	GDB_FR_LIR		= 12,
41 	GDB_FR_LAR		= 13,
42 	GDB_FR_MDRQ		= 14,
43 
44 	GDB_FR_E0		= 15,
45 	GDB_FR_E1		= 16,
46 	GDB_FR_E2		= 17,
47 	GDB_FR_E3		= 18,
48 	GDB_FR_E4		= 19,
49 	GDB_FR_E5		= 20,
50 	GDB_FR_E6		= 21,
51 	GDB_FR_E7		= 22,
52 
53 	GDB_FR_SSP		= 23,
54 	GDB_FR_MSP		= 24,
55 	GDB_FR_USP		= 25,
56 	GDB_FR_MCRH		= 26,
57 	GDB_FR_MCRL		= 27,
58 	GDB_FR_MCVF		= 28,
59 
60 	GDB_FR_FPCR		= 29,
61 	GDB_FR_DUMMY0		= 30,
62 	GDB_FR_DUMMY1		= 31,
63 
64 	GDB_FR_FS0		= 32,
65 
66 	GDB_FR_SIZE		= 64,
67 };
68 
69 #define GDB_ORIG_D0		41
70 #define NUMREGBYTES		(GDB_FR_SIZE*4)
71 
arch_kgdb_breakpoint(void)72 static inline void arch_kgdb_breakpoint(void)
73 {
74 	asm(".globl __arch_kgdb_breakpoint; __arch_kgdb_breakpoint: break");
75 }
76 extern u8 __arch_kgdb_breakpoint;
77 
78 #define BREAK_INSTR_SIZE	1
79 #define CACHE_FLUSH_IS_SAFE	1
80 
81 #endif /* _ASM_KGDB_H */
82