aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/include/simtrace_usb.h
blob: 08e452381402b21b83d8ea265d1abf98eee7aa2f (plain)
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
#ifndef SIMTRACE_USB_H
#define SIMTRACE_USB_H

//#include <stdint.h>

/* this is kept compatible with OpenPCD protocol */
struct simtrace_hdr {
	u_int8_t cmd;
	u_int8_t flags;
	u_int8_t res[2];
	u_int8_t data[0];
} __attribute__ ((packed));

enum simtrace_usb_msgt {
	SIMTRACE_MSGT_NULL,
	SIMTRACE_MSGT_DATA,
	SIMTRACE_MSGT_RESET,		/* reset was asserted, no more data */
	SIMTRACE_MSGT_STATS,		/* statistics */
};

/* flags for MSGT_DATA */
#define SIMTRACE_FLAG_ATR		0x01	/* ATR immediately after reset */
#define SIMTRACE_FLAG_WTIME_EXP		0x04	/* work waiting time expired */
#define SIMTRACE_FLAG_PPS_FIDI		0x08	/* Fi/Di values in res[2] */

struct simtrace_stats {
	u_int32_t no_rctx;
	u_int32_t rctx_sent;
	u_int32_t rst;
	u_int32_t pps;
	u_int32_t bytes;
	u_int32_t parity_err;
	u_int32_t frame_err;
	u_int32_t overrun;
} stats;

#endif /* SIMTRACE_USB_H */