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 */ 26enum 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 72static inline void arch_kgdb_breakpoint(void) 73{ 74 asm(".globl __arch_kgdb_breakpoint; __arch_kgdb_breakpoint: break"); 75} 76extern 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