1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2384740dcSRalf Baechle #ifndef __ASM_KGDB_H_ 3384740dcSRalf Baechle #define __ASM_KGDB_H_ 4384740dcSRalf Baechle 5384740dcSRalf Baechle #ifdef __KERNEL__ 6384740dcSRalf Baechle 7384740dcSRalf Baechle #include <asm/sgidefs.h> 8384740dcSRalf Baechle 9384740dcSRalf Baechle #if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2) || \ 10384740dcSRalf Baechle (_MIPS_ISA == _MIPS_ISA_MIPS32) 11384740dcSRalf Baechle 12384740dcSRalf Baechle #define KGDB_GDB_REG_SIZE 32 130896a9beSJason Wessel #define GDB_SIZEOF_REG sizeof(u32) 14384740dcSRalf Baechle 15384740dcSRalf Baechle #elif (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \ 16384740dcSRalf Baechle (_MIPS_ISA == _MIPS_ISA_MIPS64) 17384740dcSRalf Baechle 18384740dcSRalf Baechle #ifdef CONFIG_32BIT 19384740dcSRalf Baechle #define KGDB_GDB_REG_SIZE 32 200896a9beSJason Wessel #define GDB_SIZEOF_REG sizeof(u32) 21*301e4999SLukas Bulwahn #else /* CONFIG_32BIT */ 22384740dcSRalf Baechle #define KGDB_GDB_REG_SIZE 64 230896a9beSJason Wessel #define GDB_SIZEOF_REG sizeof(u64) 24384740dcSRalf Baechle #endif 25384740dcSRalf Baechle #else 26384740dcSRalf Baechle #error "Need to set KGDB_GDB_REG_SIZE for MIPS ISA" 27384740dcSRalf Baechle #endif /* _MIPS_ISA */ 28384740dcSRalf Baechle 29384740dcSRalf Baechle #define BUFMAX 2048 300896a9beSJason Wessel #define DBG_MAX_REG_NUM 72 310896a9beSJason Wessel #define NUMREGBYTES (DBG_MAX_REG_NUM * sizeof(GDB_SIZEOF_REG)) 320896a9beSJason Wessel #define NUMCRITREGBYTES (12 * sizeof(GDB_SIZEOF_REG)) 33384740dcSRalf Baechle #define BREAK_INSTR_SIZE 4 34384740dcSRalf Baechle #define CACHE_FLUSH_IS_SAFE 0 35384740dcSRalf Baechle 36384740dcSRalf Baechle extern void arch_kgdb_breakpoint(void); 37384740dcSRalf Baechle extern void *saved_vectors[32]; 38384740dcSRalf Baechle extern void handle_exception(struct pt_regs *regs); 39384740dcSRalf Baechle extern void breakinst(void); 405dd11d5dSJason Wessel extern int kgdb_ll_trap(int cmd, const char *str, 415dd11d5dSJason Wessel struct pt_regs *regs, long err, int trap, int sig); 42384740dcSRalf Baechle 43384740dcSRalf Baechle #endif /* __KERNEL__ */ 44384740dcSRalf Baechle 45384740dcSRalf Baechle #endif /* __ASM_KGDB_H_ */ 46