File: /usr/src/linux/include/linux/sdlasfm.h

1     /*****************************************************************************
2     * sdlasfm.h	WANPIPE(tm) Multiprotocol WAN Link Driver.
3     *		Definitions for the SDLA Firmware Module (SFM).
4     *
5     * Author: 	Gideon Hack 	
6     *
7     * Copyright:	(c) 1995-1999 Sangoma Technologies Inc.
8     *
9     *		This program is free software; you can redistribute it and/or
10     *		modify it under the terms of the GNU General Public License
11     *		as published by the Free Software Foundation; either version
12     *		2 of the License, or (at your option) any later version.
13     * ============================================================================
14     * Jun 02, 1999  Gideon Hack	Added support for the S514 adapter.
15     * Dec 11, 1996	Gene Kozin	Cosmetic changes
16     * Apr 16, 1996	Gene Kozin	Changed adapter & firmware IDs. Version 2
17     * Dec 15, 1995	Gene Kozin	Structures chaned
18     * Nov 09, 1995	Gene Kozin	Initial version.
19     *****************************************************************************/
20     #ifndef	_SDLASFM_H
21     #define	_SDLASFM_H
22     
23     /****** Defines *************************************************************/
24     
25     #define	SFM_VERSION	2
26     #define	SFM_SIGNATURE	"SFM - Sangoma SDLA Firmware Module"
27     
28     /* min/max */
29     #define	SFM_IMAGE_SIZE	0x8000	/* max size of SDLA code image file */
30     #define	SFM_DESCR_LEN	256	/* max length of description string */
31     #define	SFM_MAX_SDLA	16	/* max number of compatible adapters */
32     
33     /* Adapter types */
34     #define SDLA_S502A	5020
35     #define SDLA_S502E	5021
36     #define SDLA_S503	5030
37     #define SDLA_S508	5080
38     #define SDLA_S507	5070
39     #define SDLA_S509	5090
40     #define SDLA_S514	5140
41     
42     /* S514 PCI adapter CPU numbers */
43     #define S514_CPU_A	'A'
44     #define S514_CPU_B	'B'
45     
46     
47     /* Firmware identification numbers:
48      *    0  ..  999	Test & Diagnostics
49      *  1000 .. 1999	Streaming HDLC
50      *  2000 .. 2999	Bisync
51      *  3000 .. 3999	SDLC
52      *  4000 .. 4999	HDLC
53      *  5000 .. 5999	X.25
54      *  6000 .. 6999	Frame Relay
55      *  7000 .. 7999	PPP
56      *  8000 .. 8999        Cisco HDLC
57      */
58     #define	SFID_CALIB502	 200
59     #define	SFID_STRM502	1200
60     #define	SFID_STRM508	1800
61     #define	SFID_BSC502	2200
62     #define	SFID_SDLC502	3200
63     #define	SFID_HDLC502	4200
64     #define	SFID_HDLC508	4800
65     #define	SFID_X25_502	5200
66     #define	SFID_X25_508	5800
67     #define	SFID_FR502	6200
68     #define	SFID_FR508	6800
69     #define	SFID_PPP502	7200
70     #define	SFID_PPP508	7800
71     #define SFID_PPP514	7140
72     #define	SFID_CHDLC508	8800
73     #define SFID_CHDLC514	8140
74     
75     /****** Data Types **********************************************************/
76     
77     typedef struct	sfm_info		/* firmware module information */
78     {
79     	unsigned short	codeid;		/* firmware ID */
80     	unsigned short	version;	/* firmaware version number */
81     	unsigned short	adapter[SFM_MAX_SDLA]; /* compatible adapter types */
82     	unsigned long	memsize;	/* minimum memory size */
83     	unsigned short	reserved[2];	/* reserved */
84     	unsigned short	startoffs;	/* entry point offset */
85     	unsigned short	winoffs;	/* dual-port memory window offset */
86     	unsigned short	codeoffs;	/* code load offset */
87     	unsigned short	codesize;	/* code size */
88     	unsigned short	dataoffs;	/* configuration data load offset */
89     	unsigned short	datasize;	/* configuration data size */
90     } sfm_info_t;
91     
92     typedef struct sfm			/* SDLA firmware file structire */
93     {
94     	char		signature[80];	/* SFM file signature */
95     	unsigned short	version;	/* file format version */
96     	unsigned short	checksum;	/* info + image */
97     	unsigned short	reserved[6];	/* reserved */
98     	char		descr[SFM_DESCR_LEN]; /* description string */
99     	sfm_info_t	info;		/* firmware module info */
100     	unsigned char	image[1];	/* code image (variable size) */
101     } sfm_t;
102     
103     #endif	/* _SDLASFM_H */
104     
105