/* * Copyright (C) 2015 Yoshinori Sato <ysato@users.sourceforge.jp> * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. */ #ifndef _ASM_H8300_KGDB_H #define _ASM_H8300_KGDB_H #define CACHE_FLUSH_IS_SAFE 1 #define BUFMAX 2048 enum regnames { GDB_ER0, GDB_ER1, GDB_ER2, GDB_ER3, GDB_ER4, GDB_ER5, GDB_ER6, GDB_SP, GDB_CCR, GDB_PC, GDB_CYCLLE, #if defined([31mCONFIG_CPU_H8S[0m) GDB_EXR, #endif GDB_TICK, GDB_INST, #if defined([31mCONFIG_CPU_H8S[0m) GDB_MACH, GDB_MACL, #endif /* do not change the last entry or anything below! */ GDB_NUMREGBYTES, /* number of registers */ }; #define GDB_SIZEOF_REG sizeof(u32) #if defined([31mCONFIG_CPU_H8300H[0m) #define DBG_MAX_REG_NUM (13) #elif defined([31mCONFIG_CPU_H8S[0m) #define DBG_MAX_REG_NUM (14) #endif #define NUMREGBYTES (DBG_MAX_REG_NUM * GDB_SIZEOF_REG) #define BREAK_INSTR_SIZE 2 static inline void arch_kgdb_breakpoint(void) { __asm__ __volatile__("trapa #2"); } #endif /* _ASM_H8300_KGDB_H */ |