MIDI
[mw/milkymist.git] / tools / sfl.h
1 /*
2  * Milkymist VJ SoC
3  * Copyright (C) 2007, 2008, 2009 Sebastien Bourdeauducq
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, version 3 of the License.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #ifndef __SFL_H
19 #define __SFL_H
20
21 #define SFL_MAGIC_LEN 14
22 #define SFL_MAGIC_REQ "sL5DdSMmkekro\n"
23 #define SFL_MAGIC_ACK "z6IHG7cYDID6o\n"
24
25 struct sfl_frame {
26         unsigned char length;
27         unsigned char crc[2];
28         unsigned char cmd;
29         unsigned char payload[255];
30 } __attribute__((packed));
31
32 /* General commands */
33 #define SFL_CMD_ABORT           0x00
34 #define SFL_CMD_LOAD            0x01
35 #define SFL_CMD_JUMP            0x02
36
37 /* Linux-specific commands */
38 #define SFL_CMD_CMDLINE         0x03
39 #define SFL_CMD_INITRDSTART     0x04
40 #define SFL_CMD_INITRDEND       0x05
41
42 /* Replies */
43 #define SFL_ACK_SUCCESS         'K'
44 #define SFL_ACK_CRCERROR        'C'
45 #define SFL_ACK_UNKNOWN         'U'
46 #define SFL_ACK_ERROR           'E'
47
48 #endif /* __SFL_H */