Merge master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6] / 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