| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | * cycx_cfm.h	Cyclom 2X WAN Link Driver. | 
|  | 3 | *		Definitions for the Cyclom 2X Firmware Module (CFM). | 
|  | 4 | * | 
|  | 5 | * Author:	Arnaldo Carvalho de Melo <acme@conectiva.com.br> | 
|  | 6 | * | 
|  | 7 | * Copyright:	(c) 1998-2003 Arnaldo Carvalho de Melo | 
|  | 8 | * | 
|  | 9 | * Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.com> | 
|  | 10 | * | 
|  | 11 | *		This program is free software; you can redistribute it and/or | 
|  | 12 | *		modify it under the terms of the GNU General Public License | 
|  | 13 | *		as published by the Free Software Foundation; either version | 
|  | 14 | *		2 of the License, or (at your option) any later version. | 
|  | 15 | * ============================================================================ | 
|  | 16 | * 1998/08/08	acme		Initial version. | 
|  | 17 | */ | 
|  | 18 | #ifndef	_CYCX_CFM_H | 
|  | 19 | #define	_CYCX_CFM_H | 
|  | 20 |  | 
|  | 21 | /* Defines */ | 
|  | 22 |  | 
|  | 23 | #define	CFM_VERSION	2 | 
|  | 24 | #define	CFM_SIGNATURE	"CFM - Cyclades CYCX Firmware Module" | 
|  | 25 |  | 
|  | 26 | /* min/max */ | 
|  | 27 | #define	CFM_IMAGE_SIZE	0x20000	/* max size of CYCX code image file */ | 
|  | 28 | #define	CFM_DESCR_LEN	256	/* max length of description string */ | 
|  | 29 | #define	CFM_MAX_CYCX	1	/* max number of compatible adapters */ | 
|  | 30 | #define	CFM_LOAD_BUFSZ	0x400	/* buffer size for reset code (buffer_load) */ | 
|  | 31 |  | 
|  | 32 | /* Firmware Commands */ | 
|  | 33 | #define GEN_POWER_ON	0x1280 | 
|  | 34 |  | 
|  | 35 | #define GEN_SET_SEG	0x1401	/* boot segment setting. */ | 
|  | 36 | #define GEN_BOOT_DAT	0x1402	/* boot data. */ | 
|  | 37 | #define GEN_START	0x1403	/* board start. */ | 
|  | 38 | #define GEN_DEFPAR	0x1404	/* buffer length for boot. */ | 
|  | 39 |  | 
|  | 40 | /* Adapter Types */ | 
|  | 41 | #define CYCX_2X		2 | 
|  | 42 | /* for now only the 2X is supported, no plans to support 8X or 16X */ | 
|  | 43 | #define CYCX_8X		8 | 
|  | 44 | #define CYCX_16X	16 | 
|  | 45 |  | 
|  | 46 | #define	CFID_X25_2X	5200 | 
|  | 47 |  | 
|  | 48 | /** | 
|  | 49 | *	struct cycx_fw_info - firmware module information. | 
|  | 50 | *	@codeid - firmware ID | 
|  | 51 | *	@version - firmware version number | 
|  | 52 | *	@adapter - compatible adapter types | 
|  | 53 | *	@memsize - minimum memory size | 
|  | 54 | *	@reserved - reserved | 
|  | 55 | *	@startoffs - entry point offset | 
|  | 56 | *	@winoffs - dual-port memory window offset | 
|  | 57 | *	@codeoffs - code load offset | 
|  | 58 | *	@codesize - code size | 
|  | 59 | *	@dataoffs - configuration data load offset | 
|  | 60 | *	@datasize - configuration data size | 
|  | 61 | */ | 
|  | 62 | struct cycx_fw_info { | 
|  | 63 | unsigned short	codeid; | 
|  | 64 | unsigned short	version; | 
|  | 65 | unsigned short	adapter[CFM_MAX_CYCX]; | 
|  | 66 | unsigned long	memsize; | 
|  | 67 | unsigned short	reserved[2]; | 
|  | 68 | unsigned short	startoffs; | 
|  | 69 | unsigned short	winoffs; | 
|  | 70 | unsigned short	codeoffs; | 
|  | 71 | unsigned long	codesize; | 
|  | 72 | unsigned short	dataoffs; | 
|  | 73 | unsigned long	datasize; | 
|  | 74 | }; | 
|  | 75 |  | 
|  | 76 | /** | 
|  | 77 | *	struct cycx_firmware - CYCX firmware file structure | 
|  | 78 | *	@signature - CFM file signature | 
|  | 79 | *	@version - file format version | 
|  | 80 | *	@checksum - info + image | 
|  | 81 | *	@reserved - reserved | 
|  | 82 | *	@descr - description string | 
|  | 83 | *	@info - firmware module info | 
|  | 84 | *	@image - code image (variable size) | 
|  | 85 | */ | 
|  | 86 | struct cycx_firmware { | 
|  | 87 | char		    signature[80]; | 
|  | 88 | unsigned short	    version; | 
|  | 89 | unsigned short	    checksum; | 
|  | 90 | unsigned short	    reserved[6]; | 
|  | 91 | char		    descr[CFM_DESCR_LEN]; | 
|  | 92 | struct cycx_fw_info info; | 
|  | 93 | unsigned char	    image[0]; | 
|  | 94 | }; | 
|  | 95 |  | 
|  | 96 | struct cycx_fw_header { | 
|  | 97 | unsigned long  reset_size; | 
|  | 98 | unsigned long  data_size; | 
|  | 99 | unsigned long  code_size; | 
|  | 100 | }; | 
|  | 101 | #endif	/* _CYCX_CFM_H */ |