OpenOCD
Select one of the symbols to view example projects that use it.
Symbol previews are coming soon...
Outline
#define OPENOCD_TARGET_ESIRISC_H
#include <helper/types.h>
#include <target/breakpoints.h>
#include <target/register.h>
#include <target/target.h>
#include "esirisc_jtag.h"
#include "esirisc_regs.h"
#include "esirisc_trace.h"
#define MAX_BREAKPOINTS
#define MAX_WATCHPOINTS
#define EID_RESET
#define EID_HARDWARE_FAILURE
#define EID_NMI
#define EID_INST_BREAKPOINT
#define EID_DATA_BREAKPOINT
#define EID_UNSUPPORTED
#define EID_PRIVILEGE_VIOLATION
#define EID_INST_BUS_ERROR
#define EID_DATA_BUS_ERROR
#define EID_ALIGNMENT_ERROR
#define EID_ARITHMETIC_ERROR
#define EID_SYSTEM_CALL
#define EID_MEMORY_MANAGEMENT
#define EID_UNRECOVERABLE
#define EID_INTERRUPT_N
#define ENTRY_RESET
#define ENTRY_UNRECOVERABLE
#define ENTRY_HARDWARE_FAILURE
#define ENTRY_RUNTIME
#define ENTRY_MEMORY
#define ENTRY_SYSCALL
#define ENTRY_DEBUG
#define ENTRY_NMI
#define ENTRY_INTERRUPT_N
#define HWDC_R
#define HWDC_I
#define HWDC_S
#define HWDC_E
#define HWDC_D
esirisc_cache
ESIRISC_CACHE_VON_NEUMANN
ESIRISC_CACHE_HARVARD
esirisc_common
target
jtag_info
cache_arch
gdb_arch
reg_cache
epc
ecas
eid
ed
etc_save
hwdc_save
num_bits
num_regs
has_icache
has_dcache
has_trace
num_breakpoints
breakpoints_p
num_watchpoints
watchpoints_p
trace_info
esirisc_memory
word
hword
byte
esirisc_reg
esirisc
bank
csr
read
write
target_to_esirisc(const struct target *)
esirisc_cache_arch_name(struct esirisc_common *)
esirisc_has_cache(struct esirisc_common *)
Files
loading...
SourceVu
Development Tools
OpenOCD
src/target/esirisc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/* SPDX-License-Identifier: GPL-2.0-or-later */
/***************************************************************************
* Copyright (C) 2018 by Square, Inc. *
* Steven Stallion <stallion@squareup.com> *
* James Zhao <hjz@squareup.com> *
***************************************************************************/
/* ... */
#ifndef
OPENOCD_TARGET_ESIRISC_H
#define
OPENOCD_TARGET_ESIRISC_H
#include
<
helper
/
types.h>
#include
<
target
/
breakpoints.h>
#include
<
target
/
register.h>
#include
<
target
/
target.h>
#include
"
esirisc_jtag.h"
#include
"
esirisc_regs.h"
#include
"
esirisc_trace.h"
7 includes
#define
MAX_BREAKPOINTS
8
#define
MAX_WATCHPOINTS
8
/* Exception IDs */
#define
EID_RESET
0x00
#define
EID_HARDWARE_FAILURE
0x01
#define
EID_NMI
0x02
#define
EID_INST_BREAKPOINT
0x03
#define
EID_DATA_BREAKPOINT
0x04
#define
EID_UNSUPPORTED
0x05
#define
EID_PRIVILEGE_VIOLATION
0x06
#define
EID_INST_BUS_ERROR
0x07
#define
EID_DATA_BUS_ERROR
0x08
#define
EID_ALIGNMENT_ERROR
0x09
#define
EID_ARITHMETIC_ERROR
0x0a
#define
EID_SYSTEM_CALL
0x0b
#define
EID_MEMORY_MANAGEMENT
0x0c
#define
EID_UNRECOVERABLE
0x0d
#define
EID_INTERRUPT_N
0x20
/* Exception Entry Points */
#define
ENTRY_RESET
0x00
#define
ENTRY_UNRECOVERABLE
0x01
#define
ENTRY_HARDWARE_FAILURE
0x02
#define
ENTRY_RUNTIME
0x03
#define
ENTRY_MEMORY
0x04
#define
ENTRY_SYSCALL
0x05
#define
ENTRY_DEBUG
0x06
#define
ENTRY_NMI
0x07
#define
ENTRY_INTERRUPT_N
0x08
/* Hardware Debug Control */
#define
HWDC_R
(
1
<
<
4
)
/* Reset & Hardware Failure */
#define
HWDC_I
(
1
<
<
3
)
/* Interrupts */
#define
HWDC_S
(
1
<
<
2
)
/* System Calls */
#define
HWDC_E
(
1
<
<
1
)
/* Program Errors */
#define
HWDC_D
(
1
<
<
0
)
/* Debug Exceptions */
31 defines
enum
esirisc_cache
{
ESIRISC_CACHE_VON_NEUMANN
,
ESIRISC_CACHE_HARVARD
,
...
}
;
struct
esirisc_common
{
struct
target
*
target
;
struct
esirisc_jtag
jtag_info
;
enum
esirisc_cache
cache_arch
;
char
*
gdb_arch
;
struct
reg_cache
*
reg_cache
;
struct
reg
*
epc
;
struct
reg
*
ecas
;
struct
reg
*
eid
;
struct
reg
*
ed
;
uint32_t
etc_save
;
uint32_t
hwdc_save
;
int
num_bits
;
int
num_regs
;
bool
has_icache
;
bool
has_dcache
;
bool
has_trace
;
int
num_breakpoints
;
struct
breakpoint
*
breakpoints_p
[
MAX_BREAKPOINTS
]
;
int
num_watchpoints
;
struct
watchpoint
*
watchpoints_p
[
MAX_WATCHPOINTS
]
;
struct
esirisc_trace
trace_info
;
...
}
;
union
esirisc_memory
{
uint32_t
word
;
uint16_t
hword
;
uint8_t
byte
;
...
}
;
struct
esirisc_reg
{
struct
esirisc_common
*
esirisc
;
uint8_t
bank
;
uint8_t
csr
;
int
(
*
read
)
(
struct
reg
*
reg
)
;
int
(
*
write
)
(
struct
reg
*
reg
)
;
...
}
;
static
inline
struct
esirisc_common
*
target_to_esirisc
(
const
struct
target
*
target
)
{
return
(
struct
esirisc_common
*
)
target
->
arch_info
;
}
{ ... }
static
inline
char
*
esirisc_cache_arch_name
(
struct
esirisc_common
*
esirisc
)
{
return
esirisc
->
cache_arch
==
ESIRISC_CACHE_HARVARD
?
"harvard"
:
"von_neumann"
;
}
{ ... }
static
inline
bool
esirisc_has_cache
(
struct
esirisc_common
*
esirisc
)
{
return
esirisc
->
has_icache
||
esirisc
->
has_dcache
;
}
{ ... }
/* ... */
#endif
/* OPENOCD_TARGET_ESIRISC_H */
Details
Show:
from
Types:
Columns:
All items filtered out
All items filtered out
Click anywhere in the source to view detailed information here...