OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [branches/] [stable_0_2_x/] [or1ksim/] [debug/] [debug_unit.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 221 markom
/* debug_unit.h -- Simulation of Or1k debug unit
2
   Copyright (C) 2001 Chris Ziomkowski, chris@asics.ws
3
 
4
This file is part of OpenRISC 1000 Architectural Simulator.
5
 
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
10
 
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
GNU General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
19
 
20
typedef enum {
21
  JTAG_CHAIN_GLOBAL = 0,
22
  JTAG_CHAIN_DEBUG_UNIT = 1,
23
  JTAG_CHAIN_TEST = 2,
24
  JTAG_CHAIN_TRACE = 3,
25
  JTAG_CHAIN_DEVELOPMENT = 4,
26
  JTAG_CHAIN_WISHBONE = 5,
27
  JTAG_CHAIN_BLOCK1 = 6,
28
  JTAG_CHAIN_BLOCK2 = 7,
29
  JTAG_CHAIN_OPTIONAL0 = 8,
30
  JTAG_CHAIN_OPTIONAL1 = 9,
31
  JTAG_CHAIN_OPTIONAL2 = 10,
32
  JTAG_CHAIN_OPTIONAL3 = 11,
33
  JTAG_CHAIN_OPTIONAL4 = 12,
34
  JTAG_CHAIN_OPTIONAL5 = 13,
35
  JTAG_CHAIN_OPTIONAL6 = 14,
36
  JTAG_CHAIN_OPTIONAL7 = 15,
37
} DebugScanChainIDs;
38
 
39 479 markom
 
40 221 markom
typedef struct {
41 479 markom
  unsigned int DCR_hit;
42
  unsigned int watchpoint;
43
} DebugUnit;
44
 
45
typedef enum {
46
  DebugInstructionFetch = 1,
47
  DebugLoadAddress = 2,
48
  DebugStoreAddress = 3,
49
  DebugLoadData = 4,
50
  DebugStoreData = 5,
51
} DebugUnitAction;
52
 
53
 
54
/* Debug registers and their bits */
55
typedef struct {
56
  unsigned long moder;
57
  unsigned long tsel;
58
  unsigned long qsel;
59
  unsigned long ssel;
60
  unsigned long riscop;
61
  unsigned long recwp[11];
62
  unsigned long recbp;
63 221 markom
} DevelopmentInterface;
64
 
65
typedef enum {
66
  DEVELOPINT_MODER = 0,
67
  DEVELOPINT_TSEL = 1,
68
  DEVELOPINT_QSEL = 2,
69
  DEVELOPINT_SSEL = 3,
70
  DEVELOPINT_RISCOP = 4,
71
  DEVELOPINT_RECWP0 = 16,
72
  DEVELOPINT_RECWP1 = 17,
73
  DEVELOPINT_RECWP2 = 18,
74
  DEVELOPINT_RECWP3 = 19,
75
  DEVELOPINT_RECWP4 = 20,
76
  DEVELOPINT_RECWP5 = 21,
77
  DEVELOPINT_RECWP6 = 22,
78
  DEVELOPINT_RECWP7 = 23,
79
  DEVELOPINT_RECWP8 = 24,
80
  DEVELOPINT_RECWP9 = 25,
81
  DEVELOPINT_RECWP10 = 26,
82
  DEVELOPINT_RECBP0 = 27,
83
} DevelopmentInterfaceAddressSpace;
84
 
85 479 markom
#define RISCOP_STALL  0x00000001
86
#define RISCOP_RESET  0x00000002
87 221 markom
 
88 479 markom
/* Resets the debug unit */
89
void du_reset(void);
90
 
91 1244 hpanther
/* do cycle-related initialisation (watchpoints etc.) */
92 1557 nogj
void du_clock(void);
93 1244 hpanther
 
94 479 markom
/* set cpu_stalled flag */
95
void set_stall_state (int state);
96
 
97
/* Whether debug unit should ignore exception */
98
int debug_ignore_exception (unsigned long except);
99
 
100 1308 phoenix
/* Gets development interface register */
101 1557 nogj
int get_devint_reg(unsigned int addr, uint32_t *data);
102 1308 phoenix
 
103
/* Sets development interface register */
104 1557 nogj
int set_devint_reg(unsigned int addr, uint32_t data);
105 1308 phoenix
 
106
/* Reads from bus address */
107 1557 nogj
int debug_get_mem(oraddr_t address, uorreg_t *data);
108 1308 phoenix
 
109
/* Writes to bus address */
110 1557 nogj
int debug_set_mem(oraddr_t address, uorreg_t data);
111 1308 phoenix
 
112 1557 nogj
int DebugGetRegister(oraddr_t address, uorreg_t *data);
113 1308 phoenix
 
114 1557 nogj
int DebugSetRegister(oraddr_t address, uorreg_t data);
115 1308 phoenix
 
116
int DebugSetChain(int chain);
117
 
118 221 markom
#ifdef DEBUGMOD_OFF
119
#define CheckDebugUnit(x,y) 0
120 1308 phoenix
#else
121
int CheckDebugUnit(DebugUnitAction, unsigned long);
122 221 markom
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.