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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [gdb/] [minimon.h] - Blame information for rev 1770

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
/* Definitions and macros for support of AMD's remote debugger, MiniMON.
2
   Copyright 1990, 1991 Free Software Foundation, Inc.
3
 
4
   This file is part of GDB.
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., 59 Temple Place - Suite 330,
19
   Boston, MA 02111-1307, USA.  */
20
 
21
/*
22
 * Some basic types.  FIXME, this should be done by declaring bitfield
23
 * sizes in the structs.  We can't portably depend on a "long int" being
24
 * 32 bits, etc.
25
 */
26
typedef long int INT32;         /* 32 bit integer */
27
typedef unsigned long int UINT32;       /* 32 bit integer (unsigned) */
28
typedef unsigned long int ADDR32;       /* 32 bit address */
29
typedef unsigned long int INST32;       /* 32 bit instruction */
30
typedef long int BOOLEAN;       /* Boolean value (32 bit) */
31
typedef unsigned char BYTE;     /* byte (8 bit) */
32
typedef short int INT16;        /* 16 bit integer */
33
typedef unsigned short int UINT16;      /* 16 bit integer (unsigned) */
34
 
35
/****************************************************************************/
36
/************************* Message Information ******************************/
37
/****************************************************************************/
38
 
39
/*
40
 * Error codes
41
 */
42
 
43
/* General errors */
44
#define EMUSAGE     1           /* Bad args / flags               */
45
#define EMFAIL      2           /* Unrecoverable error            */
46
#define EMBADADDR   3           /* Illegal address                */
47
#define EMBADREG    4           /* Illegal register               */
48
#define EMSYNTAX    5           /* Illegal command syntax         */
49
#define EMACCESS    6           /* Could not access memory        */
50
#define EMALLOC     7           /* Could not allocate memory      */
51
#define EMTARGET    8           /* Unknown target type            */
52
#define EMHINIT     9           /* Could not initialize host      */
53
#define EMCOMM     10           /* Could not open communication channel */
54
 
55
/* Message errors */
56
#define EMBADMSG   11           /* Unknown message type           */
57
#define EMMSG2BIG  12           /* Message to large for buffer    */
58
#define EMNOSEND   13           /* Could not send message         */
59
#define EMNORECV   14           /* Could not receive message      */
60
 
61
#define EMRESET    15           /* Could not RESET target         */
62
#define EMCONFIG   16           /* Could not get target CONFIG    */
63
#define EMSTATUS   17           /* Could not get target STATUS    */
64
#define EMREAD     18           /* Could not READ target memory   */
65
#define EMWRITE    19           /* Could not WRITE target memory  */
66
#define EMBKPTSET  20           /* Could not set breakpoint       */
67
#define EMBKPTRM   21           /* Could not remove breakpoint    */
68
#define EMBKPTSTAT 22           /* Could not get breakpoint status */
69
#define EMBKPTNONE 23           /* All breakpoints in use         */
70
#define EMBKPTUSED 24           /* Breakpoints already in use     */
71
#define EMCOPY     25           /* Could not COPY target memory   */
72
#define EMFILL     26           /* Could not FILL target memory   */
73
#define EMINIT     27           /* Could not initialize target memory */
74
#define EMGO       28           /* Could not start execution      */
75
#define EMSTEP     29           /* Could not single step          */
76
#define EMBREAK    30           /* Could not BREAK                */
77
#define EMHIF      31           /* Could not perform HIF service  */
78
#define EMCHANNEL0 32           /* Could not read CHANNEL0        */
79
#define EMCHANNEL1 33           /* Could not write CHANNEL1       */
80
 
81
/* COFF file loader errors */
82
#define EMOPEN     34           /* Could not open COFF file       */
83
#define EMHDR      35           /* Could not read COFF header     */
84
#define EMMAGIC    36           /* Bad magic number               */
85
#define EMAOUT     37           /* Could not read COFF a.out header */
86
#define EMSCNHDR   38           /* Could not read COFF section header */
87
#define EMSCN      39           /* Could not read COFF section    */
88
#define EMCLOSE    40           /* Could not close COFF file      */
89
 
90
/* Log file errors */
91
#define EMLOGOPEN  41           /* Could not open log file        */
92
#define EMLOGREAD  42           /* Could not read log file        */
93
#define EMLOGWRITE 43           /* Could not write to log file    */
94
#define EMLOGCLOSE 44           /* Could not close log file       */
95
 
96
/* Command file errors */
97
#define EMCMDOPEN  45           /* Could not open command file    */
98
#define EMCMDREAD  46           /* Could not read command file    */
99
#define EMCMDWRITE 47           /* Could not write to command file */
100
#define EMCMDCLOSE 48           /* Could not close comand file    */
101
 
102
#define EMTIMEOUT  49           /* Host timed out waiting for a message */
103
#define EMCOMMTYPE 50           /* A '-t' flag must be specified  */
104
#define EMCOMMERR  51           /* Communication error            */
105
#define EMBAUD     52           /* Invalid baud rate specified    */
106
/*
107
 * Memory Spaces
108
 */
109
#define LOCAL_REG    0          /* Local processor register     */
110
#define GLOBAL_REG   1          /* Global processor register    */
111
#define SPECIAL_REG  2          /* Special processor register   */
112
#define TLB_REG      3          /* Translation Lookaside Buffer */
113
#define COPROC_REG   4          /* Coprocessor register         */
114
#define I_MEM        5          /* Instruction Memory           */
115
#define D_MEM        6          /* Data Memory                  */
116
#define I_ROM        7          /* Instruction ROM              */
117
#define D_ROM        8          /* Data ROM                     */
118
#define I_O          9          /* Input/Output                 */
119
#define I_CACHE     10          /* Instruction Cache            */
120
#define D_CACHE     11          /* Data Cache                   */
121
 
122
/* To supress warnings for zero length array definitions */
123
#define DUMMY 1
124
 
125
/*
126
   ** Host to target definitions
127
 */
128
 
129
#define RESET          0
130
#define CONFIG_REQ     1
131
#define STATUS_REQ     2
132
#define READ_REQ       3
133
#define WRITE_REQ      4
134
#define BKPT_SET       5
135
#define BKPT_RM        6
136
#define BKPT_STAT      7
137
#define COPY           8
138
#define FILL           9
139
#define INIT          10
140
#define GO            11
141
#define STEP          12
142
#define BREAK         13
143
 
144
#define HIF_CALL_RTN  64
145
#define CHANNEL0      65
146
#define CHANNEL1_ACK  66
147
 
148
 
149
/*
150
   ** Target to host definitions
151
 */
152
 
153
#define RESET_ACK     32
154
#define CONFIG        33
155
#define STATUS        34
156
#define READ_ACK      35
157
#define WRITE_ACK     36
158
#define BKPT_SET_ACK  37
159
#define BKPT_RM_ACK   38
160
#define BKPT_STAT_ACK 39
161
#define COPY_ACK      40
162
#define FILL_ACK      41
163
#define INIT_ACK      42
164
#define HALT          43
165
 
166
#define ERROR         63
167
 
168
#define HIF_CALL      96
169
#define CHANNEL0_ACK  97
170
#define CHANNEL1      98
171
 
172
 
173
/* A "generic" message */
174
struct generic_msg_t
175
  {
176
    INT32 code;                 /* generic */
177
    INT32 length;
178
    BYTE byte[DUMMY];
179
  };
180
 
181
 
182
/* A "generic" message (with an INT32 array) */
183
struct generic_int32_msg_t
184
  {
185
    INT32 code;                 /* generic */
186
    INT32 length;
187
    INT32 int32[DUMMY];
188
  };
189
 
190
 
191
/*
192
   ** Host to target messages
193
 */
194
 
195
struct reset_msg_t
196
  {
197
    INT32 code;                 /* 0 */
198
    INT32 length;
199
  };
200
 
201
 
202
struct config_req_msg_t
203
  {
204
    INT32 code;                 /* 1 */
205
    INT32 length;
206
  };
207
 
208
 
209
struct status_req_msg_t
210
  {
211
    INT32 code;                 /* 2 */
212
    INT32 length;
213
  };
214
 
215
 
216
struct read_req_msg_t
217
  {
218
    INT32 code;                 /* 3 */
219
    INT32 length;
220
    INT32 memory_space;
221
    ADDR32 address;
222
    INT32 byte_count;
223
  };
224
 
225
 
226
struct write_req_msg_t
227
  {
228
    INT32 code;                 /* 4 */
229
    INT32 length;
230
    INT32 memory_space;
231
    ADDR32 address;
232
    INT32 byte_count;
233
    BYTE data[DUMMY];
234
  };
235
 
236
 
237
struct write_r_msg_t
238
  {
239
    INT32 code;                 /* 4 */
240
    INT32 length;
241
    INT32 memory_space;
242
    ADDR32 address;
243
    INT32 byte_count;
244
    INT32 data[DUMMY];
245
  };
246
 
247
 
248
struct bkpt_set_msg_t
249
  {
250
    INT32 code;                 /* 5 */
251
    INT32 length;
252
    INT32 memory_space;
253
    ADDR32 bkpt_addr;
254
    INT32 pass_count;
255
    INT32 bkpt_type;
256
  };
257
 
258
 
259
struct bkpt_rm_msg_t
260
  {
261
    INT32 code;                 /* 6 */
262
    INT32 length;
263
    INT32 memory_space;
264
    ADDR32 bkpt_addr;
265
  };
266
 
267
 
268
struct bkpt_stat_msg_t
269
  {
270
    INT32 code;                 /* 7 */
271
    INT32 length;
272
    INT32 memory_space;
273
    ADDR32 bkpt_addr;
274
  };
275
 
276
 
277
struct copy_msg_t
278
  {
279
    INT32 code;                 /* 8 */
280
    INT32 length;
281
    INT32 source_space;
282
    ADDR32 source_addr;
283
    INT32 dest_space;
284
    ADDR32 dest_addr;
285
    INT32 byte_count;
286
  };
287
 
288
 
289
struct fill_msg_t
290
  {
291
    INT32 code;                 /* 9 */
292
    INT32 length;
293
    INT32 memory_space;
294
    ADDR32 start_addr;
295
    INT32 fill_count;
296
    INT32 byte_count;
297
    BYTE fill_data[DUMMY];
298
  };
299
 
300
 
301
struct init_msg_t
302
  {
303
    INT32 code;                 /* 10 */
304
    INT32 length;
305
    ADDR32 text_start;
306
    ADDR32 text_end;
307
    ADDR32 data_start;
308
    ADDR32 data_end;
309
    ADDR32 entry_point;
310
    INT32 mem_stack_size;
311
    INT32 reg_stack_size;
312
    ADDR32 arg_start;
313
    INT32 os_control;
314
  };
315
 
316
 
317
struct go_msg_t
318
  {
319
    INT32 code;                 /* 11 */
320
    INT32 length;
321
  };
322
 
323
 
324
struct step_msg_t
325
  {
326
    INT32 code;                 /* 12 */
327
    INT32 length;
328
    INT32 count;
329
  };
330
 
331
 
332
struct break_msg_t
333
  {
334
    INT32 code;                 /* 13 */
335
    INT32 length;
336
  };
337
 
338
 
339
struct hif_call_rtn_msg_t
340
  {
341
    INT32 code;                 /* 64 */
342
    INT32 length;
343
    INT32 service_number;
344
    INT32 gr121;
345
    INT32 gr96;
346
    INT32 gr97;
347
  };
348
 
349
 
350
struct channel0_msg_t
351
  {
352
    INT32 code;                 /* 65 */
353
    INT32 length;
354
    BYTE data;
355
  };
356
 
357
 
358
struct channel1_ack_msg_t
359
  {
360
    INT32 code;                 /* 66 */
361
    INT32 length;
362
  };
363
 
364
 
365
/*
366
   ** Target to host messages
367
 */
368
 
369
 
370
struct reset_ack_msg_t
371
  {
372
    INT32 code;                 /* 32 */
373
    INT32 length;
374
  };
375
 
376
 
377
struct config_msg_t
378
  {
379
    INT32 code;                 /* 33 */
380
    INT32 length;
381
    INT32 processor_id;
382
    INT32 version;
383
    ADDR32 I_mem_start;
384
    INT32 I_mem_size;
385
    ADDR32 D_mem_start;
386
    INT32 D_mem_size;
387
    ADDR32 ROM_start;
388
    INT32 ROM_size;
389
    INT32 max_msg_size;
390
    INT32 max_bkpts;
391
    INT32 coprocessor;
392
    INT32 reserved;
393
  };
394
 
395
 
396
struct status_msg_t
397
  {
398
    INT32 code;                 /* 34 */
399
    INT32 length;
400
    INT32 msgs_sent;
401
    INT32 msgs_received;
402
    INT32 errors;
403
    INT32 bkpts_hit;
404
    INT32 bkpts_free;
405
    INT32 traps;
406
    INT32 fills;
407
    INT32 spills;
408
    INT32 cycles;
409
    INT32 reserved;
410
  };
411
 
412
 
413
struct read_ack_msg_t
414
  {
415
    INT32 code;                 /* 35 */
416
    INT32 length;
417
    INT32 memory_space;
418
    ADDR32 address;
419
    INT32 byte_count;
420
    BYTE data[DUMMY];
421
  };
422
 
423
struct read_r_ack_msg_t
424
  {
425
    INT32 code;                 /* 35 */
426
    INT32 length;
427
    INT32 memory_space;
428
    ADDR32 address;
429
    INT32 byte_count;
430
    INT32 data[DUMMY];
431
  };
432
 
433
 
434
struct write_ack_msg_t
435
  {
436
    INT32 code;                 /* 36 */
437
    INT32 length;
438
    INT32 memory_space;
439
    ADDR32 address;
440
    INT32 byte_count;
441
  };
442
 
443
 
444
struct bkpt_set_ack_msg_t
445
  {
446
    INT32 code;                 /* 37 */
447
    INT32 length;
448
    INT32 memory_space;
449
    ADDR32 address;
450
    INT32 pass_count;
451
    INT32 bkpt_type;
452
  };
453
 
454
 
455
struct bkpt_rm_ack_msg_t
456
  {
457
    INT32 code;                 /* 38 */
458
    INT32 length;
459
    INT32 memory_space;
460
    ADDR32 address;
461
  };
462
 
463
 
464
struct bkpt_stat_ack_msg_t
465
  {
466
    INT32 code;                 /* 39 */
467
    INT32 length;
468
    INT32 memory_space;
469
    ADDR32 address;
470
    INT32 pass_count;
471
    INT32 bkpt_type;
472
  };
473
 
474
 
475
struct copy_ack_msg_t
476
  {
477
    INT32 code;                 /* 40 */
478
    INT32 length;
479
    INT32 source_space;
480
    ADDR32 source_addr;
481
    INT32 dest_space;
482
    ADDR32 dest_addr;
483
    INT32 byte_count;
484
  };
485
 
486
 
487
struct fill_ack_msg_t
488
  {
489
    INT32 code;                 /* 41 */
490
    INT32 length;
491
    INT32 memory_space;
492
    ADDR32 start_addr;
493
    INT32 fill_count;
494
    INT32 byte_count;
495
  };
496
 
497
 
498
struct init_ack_msg_t
499
  {
500
    INT32 code;                 /* 42 */
501
    INT32 length;
502
  };
503
 
504
 
505
struct halt_msg_t
506
  {
507
    INT32 code;                 /* 43 */
508
    INT32 length;
509
    INT32 memory_space;
510
    ADDR32 pc0;
511
    ADDR32 pc1;
512
    INT32 trap_number;
513
  };
514
 
515
 
516
struct error_msg_t
517
  {
518
    INT32 code;                 /* 63 */
519
    INT32 length;
520
    INT32 error_code;
521
    INT32 memory_space;
522
    ADDR32 address;
523
  };
524
 
525
 
526
struct hif_call_msg_t
527
  {
528
    INT32 code;                 /* 96 */
529
    INT32 length;
530
    INT32 service_number;
531
    INT32 lr2;
532
    INT32 lr3;
533
    INT32 lr4;
534
  };
535
 
536
 
537
struct channel0_ack_msg_t
538
  {
539
    INT32 code;                 /* 97 */
540
    INT32 length;
541
  };
542
 
543
 
544
struct channel1_msg_t
545
  {
546
    INT32 code;                 /* 98 */
547
    INT32 length;
548
    BYTE data[DUMMY];
549
  };
550
 
551
 
552
 
553
/*
554
   ** Union all of the message types together
555
 */
556
 
557
union msg_t
558
  {
559
    struct generic_msg_t generic_msg;
560
    struct generic_int32_msg_t generic_int32_msg;
561
 
562
    struct reset_msg_t reset_msg;
563
    struct config_req_msg_t config_req_msg;
564
    struct status_req_msg_t status_req_msg;
565
    struct read_req_msg_t read_req_msg;
566
    struct write_req_msg_t write_req_msg;
567
    struct write_r_msg_t write_r_msg;
568
    struct bkpt_set_msg_t bkpt_set_msg;
569
    struct bkpt_rm_msg_t bkpt_rm_msg;
570
    struct bkpt_stat_msg_t bkpt_stat_msg;
571
    struct copy_msg_t copy_msg;
572
    struct fill_msg_t fill_msg;
573
    struct init_msg_t init_msg;
574
    struct go_msg_t go_msg;
575
    struct step_msg_t step_msg;
576
    struct break_msg_t break_msg;
577
 
578
    struct hif_call_rtn_msg_t hif_call_rtn_msg;
579
    struct channel0_msg_t channel0_msg;
580
    struct channel1_ack_msg_t channel1_ack_msg;
581
 
582
    struct reset_ack_msg_t reset_ack_msg;
583
    struct config_msg_t config_msg;
584
    struct status_msg_t status_msg;
585
    struct read_ack_msg_t read_ack_msg;
586
    struct read_r_ack_msg_t read_r_ack_msg;
587
    struct write_ack_msg_t write_ack_msg;
588
    struct bkpt_set_ack_msg_t bkpt_set_ack_msg;
589
    struct bkpt_rm_ack_msg_t bkpt_rm_ack_msg;
590
    struct bkpt_stat_ack_msg_t bkpt_stat_ack_msg;
591
    struct copy_ack_msg_t copy_ack_msg;
592
    struct fill_ack_msg_t fill_ack_msg;
593
    struct init_ack_msg_t init_ack_msg;
594
    struct halt_msg_t halt_msg;
595
 
596
    struct error_msg_t error_msg;
597
 
598
    struct hif_call_msg_t hif_call_msg;
599
    struct channel0_ack_msg_t channel0_ack_msg;
600
    struct channel1_msg_t channel1_msg;
601
  };

powered by: WebSVN 2.1.0

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