88f0de2feabdd2af919be5b6b1c505e544ae548e
[goodfet] / firmware / include / command.h
1 /*! \file command.h
2   \author Travis Goodspeed
3   \brief Command codes and buffers.
4 */
5
6 //! Global data buffer.
7
8 #ifndef CMDDATALEN
9 #define CMDDATALEN 0x204
10 #endif
11
12 extern unsigned char cmddata[CMDDATALEN];
13 extern unsigned char silent;
14
15 #define cmddataword ((unsigned int*) cmddata)
16 #define cmddatalong ((unsigned long*) cmddata)
17 #define memorybyte ((unsigned char*) 0)
18 #define memoryword ((unsigned int*) 0)
19
20 // Global Commands
21 #define READ  0x00
22 #define WRITE 0x01
23 #define PEEK  0x02
24 #define POKE  0x03
25 #define SETUP 0x10
26 #define START 0x20
27 #define STOP  0x21
28 #define NOK   0x7E
29 #define OK    0x7F
30
31 #define DEBUGSTR 0xFF
32
33 // Monitor Commands
34 #define MONITOR_CHANGE_BAUD 0x80
35 #define MONITOR_RAM_PATTERN 0x90
36 #define MONITOR_RAM_DEPTH 0x91
37
38 #define MONITOR_DIR 0xA0
39 #define MONITOR_OUT 0xA1
40 #define MONITOR_IN  0xA2
41
42 #define MONITOR_SILENT 0xB0
43
44 #define MONITOR_READBUF 0xC0
45 #define MONITOR_WRITEBUF 0xC1
46 #define MONITOR_SIZEBUF 0xC2
47
48
49
50
51 //SPI commands
52 #define SPI_JEDEC 0x80
53 #define SPI_ERASE 0x81
54
55 //OCT commands
56 #define OCT_CMP 0x90
57 #define OCT_RES 0x91
58
59
60 //! Handle a plugin, weak-linked to error.
61 extern int pluginhandle(unsigned char app,
62                         unsigned char verb,
63                         unsigned int len)
64   __attribute__ ((weak));
65
66
67 //! Handle a command.  Defined in goodfet.c
68 void handle(unsigned char app,
69             unsigned char verb,
70             unsigned long len);
71 //! Transmit a header.
72 void txhead(unsigned char app,
73             unsigned char verb,
74             unsigned long len);
75 //! Transmit data.
76 void txdata(unsigned char app,
77             unsigned char verb,
78             unsigned long len);
79 //! Transmit a string.
80 void txstring(unsigned char app,
81               unsigned char verb,
82               const char *str);
83
84 //! Receive a long.
85 unsigned long rxlong();
86 //! Receive a word.
87 unsigned int rxword();
88
89 //! Transmit a long.
90 void txlong(unsigned long l);
91 //! Transmit a word.
92 void txword(unsigned int l);
93
94 //! Transmit a debug string.
95 void debugstr(const char *str);
96
97 //! Delay for a count.
98 void delay(unsigned int count);
99 //! MSDelay
100 void msdelay(unsigned int ms);
101
102
103 void monitorhandle(unsigned char, unsigned char, unsigned long);
104 void spihandle(unsigned char, unsigned char, unsigned long);
105 void i2chandle(unsigned char, unsigned char, unsigned long);
106 void cchandle(unsigned char, unsigned char, unsigned long);
107 void jtaghandle(unsigned char, unsigned char, unsigned long);
108 void jtag430handle(unsigned char, unsigned char, unsigned long);
109 void jtag430x2handle(unsigned char app, unsigned char verb,
110                      unsigned long len);
111 void avrhandle(unsigned char app,
112                unsigned char verb,
113                unsigned long len);