1217309Snwhitehorn/* SPDX-License-Identifier: GPL-2.0 */ 2251843Sbapt/* 3217309Snwhitehorn * PA-RISC KGDB support 4220749Snwhitehorn * 5217309Snwhitehorn * Copyright (c) 2019 Sven Schnelle <svens@stackframe.org> 6251843Sbapt * 7217309Snwhitehorn */ 8217309Snwhitehorn 9217309Snwhitehorn#ifndef __PARISC_KGDB_H__ 10217309Snwhitehorn#define __PARISC_KGDB_H__ 11217309Snwhitehorn 12217309Snwhitehorn#define BREAK_INSTR_SIZE 4 13217309Snwhitehorn#define PARISC_KGDB_COMPILED_BREAK_INSN 0x3ffc01f 14217309Snwhitehorn#define PARISC_KGDB_BREAK_INSN 0x3ffa01f 15217309Snwhitehorn 16217309Snwhitehorn 17217309Snwhitehorn#define NUMREGBYTES sizeof(struct parisc_gdb_regs) 18217309Snwhitehorn#define BUFMAX 4096 19217309Snwhitehorn 20217309Snwhitehorn#define KGDB_MAX_BREAKPOINTS 40 21217309Snwhitehorn 22217309Snwhitehorn#define CACHE_FLUSH_IS_SAFE 1 23217309Snwhitehorn 24217309Snwhitehorn#ifndef __ASSEMBLY__ 25217309Snwhitehorn 26217309Snwhitehornstatic inline void arch_kgdb_breakpoint(void) 27217309Snwhitehorn{ 28217309Snwhitehorn asm(".word %0" : : "i"(PARISC_KGDB_COMPILED_BREAK_INSN) : "memory"); 29217309Snwhitehorn} 30217309Snwhitehorn 31251843Sbaptstruct parisc_gdb_regs { 32217309Snwhitehorn unsigned long gpr[32]; 33217309Snwhitehorn unsigned long sar; 34217309Snwhitehorn unsigned long iaoq_f; 35217309Snwhitehorn unsigned long iasq_f; 36217309Snwhitehorn unsigned long iaoq_b; 37217309Snwhitehorn unsigned long iasq_b; 38217309Snwhitehorn unsigned long eiem; 39217309Snwhitehorn unsigned long iir; 40217309Snwhitehorn unsigned long isr; 41217309Snwhitehorn unsigned long ior; 42217309Snwhitehorn unsigned long ipsw; 43217309Snwhitehorn unsigned long __unused0; 44217309Snwhitehorn unsigned long sr4; 45217309Snwhitehorn unsigned long sr0; 46217309Snwhitehorn unsigned long sr1; 47217309Snwhitehorn unsigned long sr2; 48217309Snwhitehorn unsigned long sr3; 49217309Snwhitehorn unsigned long sr5; 50217309Snwhitehorn unsigned long sr6; 51217309Snwhitehorn unsigned long sr7; 52217309Snwhitehorn unsigned long cr0; 53217309Snwhitehorn unsigned long pid1; 54217309Snwhitehorn unsigned long pid2; 55217309Snwhitehorn unsigned long scrccr; 56217309Snwhitehorn unsigned long pid3; 57217309Snwhitehorn unsigned long pid4; 58217309Snwhitehorn unsigned long cr24; 59217309Snwhitehorn unsigned long cr25; 60217309Snwhitehorn unsigned long cr26; 61217309Snwhitehorn unsigned long cr27; 62217309Snwhitehorn unsigned long cr28; 63217309Snwhitehorn unsigned long cr29; 64217309Snwhitehorn unsigned long cr30; 65217309Snwhitehorn 66217309Snwhitehorn u64 fr[32]; 67217309Snwhitehorn}; 68217309Snwhitehorn 69217309Snwhitehorn#endif 70217309Snwhitehorn#endif 71217309Snwhitehorn