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#ifndef __CADDY_H__
28#define __CADDY_H__
29
30#define CMD_SIZE 1024
31#define ANSWER_SIZE 1024
32#define CADDY_MAGIC "esd vme8349 V1.0"
33
34enum caddy_cmds {
35 CADDY_CMD_IO_READ_8,
36 CADDY_CMD_IO_READ_16,
37 CADDY_CMD_IO_READ_32,
38 CADDY_CMD_IO_WRITE_8,
39 CADDY_CMD_IO_WRITE_16,
40 CADDY_CMD_IO_WRITE_32,
41 CADDY_CMD_CONFIG_READ_8,
42 CADDY_CMD_CONFIG_READ_16,
43 CADDY_CMD_CONFIG_READ_32,
44 CADDY_CMD_CONFIG_WRITE_8,
45 CADDY_CMD_CONFIG_WRITE_16,
46 CADDY_CMD_CONFIG_WRITE_32,
47};
48
49struct caddy_cmd {
50 uint32_t cmd;
51 uint32_t issue;
52 uint32_t addr;
53 uint32_t par[5];
54};
55
56struct caddy_answer {
57 uint32_t answer;
58 uint32_t issue;
59 uint32_t status;
60 uint32_t par[5];
61};
62
63struct caddy_interface {
64 uint8_t magic[16];
65 uint32_t cmd_in;
66 uint32_t cmd_out;
67 uint32_t heartbeat;
68 uint32_t reserved1;
69 struct caddy_cmd cmd[CMD_SIZE];
70 uint32_t answer_in;
71 uint32_t answer_out;
72 uint32_t reserved2;
73 uint32_t reserved3;
74 struct caddy_answer answer[CMD_SIZE];
75};
76
77#endif
78