Merge tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[platform/kernel/linux-starfive.git] / arch / parisc / include / asm / kgdb.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * PA-RISC KGDB support
4  *
5  * Copyright (c) 2019 Sven Schnelle <svens@stackframe.org>
6  *
7  */
8
9 #ifndef __PARISC_KGDB_H__
10 #define __PARISC_KGDB_H__
11
12 #define BREAK_INSTR_SIZE                4
13 #define PARISC_KGDB_COMPILED_BREAK_INSN 0x3ffc01f
14 #define PARISC_KGDB_BREAK_INSN          0x3ffa01f
15
16
17 #define NUMREGBYTES                     sizeof(struct parisc_gdb_regs)
18 #define BUFMAX                          4096
19
20 #define CACHE_FLUSH_IS_SAFE             1
21
22 #ifndef __ASSEMBLY__
23
24 static inline void arch_kgdb_breakpoint(void)
25 {
26         asm(".word %0" : : "i"(PARISC_KGDB_COMPILED_BREAK_INSN) : "memory");
27 }
28
29 struct parisc_gdb_regs {
30         unsigned long gpr[32];
31         unsigned long sar;
32         unsigned long iaoq_f;
33         unsigned long iasq_f;
34         unsigned long iaoq_b;
35         unsigned long iasq_b;
36         unsigned long eiem;
37         unsigned long iir;
38         unsigned long isr;
39         unsigned long ior;
40         unsigned long ipsw;
41         unsigned long __unused0;
42         unsigned long sr4;
43         unsigned long sr0;
44         unsigned long sr1;
45         unsigned long sr2;
46         unsigned long sr3;
47         unsigned long sr5;
48         unsigned long sr6;
49         unsigned long sr7;
50         unsigned long cr0;
51         unsigned long pid1;
52         unsigned long pid2;
53         unsigned long scrccr;
54         unsigned long pid3;
55         unsigned long pid4;
56         unsigned long cr24;
57         unsigned long cr25;
58         unsigned long cr26;
59         unsigned long cr27;
60         unsigned long cr28;
61         unsigned long cr29;
62         unsigned long cr30;
63
64         u64 fr[32];
65 };
66
67 #endif
68 #endif