1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 2 of the License, or
5  * (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  */
12 
13 #include <linux/firmware.h>
14 
15 #define	MAX_STR	256
16 
17 enum fmt_image {
18 	f_bit,	/* only bitstream is supported */
19 	f_rbt,
20 	f_bin,
21 	f_mcs,
22 	f_hex,
23 };
24 
25 enum mdownload {
26 	m_systemmap,	/* only system map is supported */
27 	m_serial,
28 	m_jtag,
29 };
30 
31 /*
32  * xilinx fpgaimage information
33  * NOTE: use MAX_STR instead of dynamic alloc for simplicity
34  */
35 struct fpgaimage {
36 	enum fmt_image	fmt_img;
37 	enum mdownload	dmethod;
38 
39 	const struct	firmware	*fw_entry;
40 
41 	/*
42 	 * the following can be read from bitstream,
43 	 * but other image format should have as well
44 	 */
45 	char	filename[MAX_STR];
46 	char	part[MAX_STR];
47 	char	date[MAX_STR];
48 	char	time[MAX_STR];
49 	int	lendata;
50 	u8	*fpgadata;
51 };
52