102 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			102 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  | * cycx_cfm.h	Cyclom 2X WAN Link Driver. | ||
|  | *		Definitions for the Cyclom 2X Firmware Module (CFM). | ||
|  | * | ||
|  | * Author:	Arnaldo Carvalho de Melo <acme@conectiva.com.br> | ||
|  | * | ||
|  | * Copyright:	(c) 1998-2003 Arnaldo Carvalho de Melo | ||
|  | * | ||
|  | * Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.com> | ||
|  | * | ||
|  | *		This program is free software; you can redistribute it and/or | ||
|  | *		modify it under the terms of the GNU General Public License | ||
|  | *		as published by the Free Software Foundation; either version | ||
|  | *		2 of the License, or (at your option) any later version. | ||
|  | * ============================================================================ | ||
|  | * 1998/08/08	acme		Initial version. | ||
|  | */ | ||
|  | #ifndef	_CYCX_CFM_H
 | ||
|  | #define	_CYCX_CFM_H
 | ||
|  | 
 | ||
|  | /* Defines */ | ||
|  | 
 | ||
|  | #define	CFM_VERSION	2
 | ||
|  | #define	CFM_SIGNATURE	"CFM - Cyclades CYCX Firmware Module"
 | ||
|  | 
 | ||
|  | /* min/max */ | ||
|  | #define	CFM_IMAGE_SIZE	0x20000	/* max size of CYCX code image file */
 | ||
|  | #define	CFM_DESCR_LEN	256	/* max length of description string */
 | ||
|  | #define	CFM_MAX_CYCX	1	/* max number of compatible adapters */
 | ||
|  | #define	CFM_LOAD_BUFSZ	0x400	/* buffer size for reset code (buffer_load) */
 | ||
|  | 
 | ||
|  | /* Firmware Commands */ | ||
|  | #define GEN_POWER_ON	0x1280
 | ||
|  | 
 | ||
|  | #define GEN_SET_SEG	0x1401	/* boot segment setting. */
 | ||
|  | #define GEN_BOOT_DAT	0x1402	/* boot data. */
 | ||
|  | #define GEN_START	0x1403	/* board start. */
 | ||
|  | #define GEN_DEFPAR	0x1404	/* buffer length for boot. */
 | ||
|  | 
 | ||
|  | /* Adapter Types */ | ||
|  | #define CYCX_2X		2
 | ||
|  | /* for now only the 2X is supported, no plans to support 8X or 16X */ | ||
|  | #define CYCX_8X		8
 | ||
|  | #define CYCX_16X	16
 | ||
|  | 
 | ||
|  | #define	CFID_X25_2X	5200
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  *	struct cycx_fw_info - firmware module information. | ||
|  |  *	@codeid - firmware ID | ||
|  |  *	@version - firmware version number | ||
|  |  *	@adapter - compatible adapter types | ||
|  |  *	@memsize - minimum memory size | ||
|  |  *	@reserved - reserved | ||
|  |  *	@startoffs - entry point offset | ||
|  |  *	@winoffs - dual-port memory window offset | ||
|  |  *	@codeoffs - code load offset | ||
|  |  *	@codesize - code size | ||
|  |  *	@dataoffs - configuration data load offset | ||
|  |  *	@datasize - configuration data size | ||
|  |  */ | ||
|  | struct cycx_fw_info { | ||
|  | 	unsigned short	codeid; | ||
|  | 	unsigned short	version; | ||
|  | 	unsigned short	adapter[CFM_MAX_CYCX]; | ||
|  | 	unsigned long	memsize; | ||
|  | 	unsigned short	reserved[2]; | ||
|  | 	unsigned short	startoffs; | ||
|  | 	unsigned short	winoffs; | ||
|  | 	unsigned short	codeoffs; | ||
|  | 	unsigned long	codesize; | ||
|  | 	unsigned short	dataoffs; | ||
|  | 	unsigned long	datasize; | ||
|  | }; | ||
|  | 
 | ||
|  | /**
 | ||
|  |  *	struct cycx_firmware - CYCX firmware file structure | ||
|  |  *	@signature - CFM file signature | ||
|  |  *	@version - file format version | ||
|  |  *	@checksum - info + image | ||
|  |  *	@reserved - reserved | ||
|  |  *	@descr - description string | ||
|  |  *	@info - firmware module info | ||
|  |  *	@image - code image (variable size) | ||
|  |  */ | ||
|  | struct cycx_firmware { | ||
|  | 	char		    signature[80]; | ||
|  | 	unsigned short	    version; | ||
|  | 	unsigned short	    checksum; | ||
|  | 	unsigned short	    reserved[6]; | ||
|  | 	char		    descr[CFM_DESCR_LEN]; | ||
|  | 	struct cycx_fw_info info; | ||
|  | 	unsigned char	    image[0]; | ||
|  | }; | ||
|  | 
 | ||
|  | struct cycx_fw_header { | ||
|  | 	unsigned long  reset_size; | ||
|  | 	unsigned long  data_size; | ||
|  | 	unsigned long  code_size; | ||
|  | }; | ||
|  | #endif	/* _CYCX_CFM_H */
 |