Subversion Repositories shark

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*****************************************************************************
* sdlasfm.h     WANPIPE(tm) Multiprotocol WAN Link Driver.
*               Definitions for the SDLA Firmware Module (SFM).
*
* Author:       Gideon Hack    
*
* Copyright:    (c) 1995-1999 Sangoma Technologies Inc.
*
*               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.
* ============================================================================
* Jun 02, 1999  Gideon Hack     Added support for the S514 adapter.
* Dec 11, 1996  Gene Kozin      Cosmetic changes
* Apr 16, 1996  Gene Kozin      Changed adapter & firmware IDs. Version 2
* Dec 15, 1995  Gene Kozin      Structures chaned
* Nov 09, 1995  Gene Kozin      Initial version.
*****************************************************************************/

#ifndef _SDLASFM_H
#define _SDLASFM_H

/****** Defines *************************************************************/

#define SFM_VERSION     2
#define SFM_SIGNATURE   "SFM - Sangoma SDLA Firmware Module"

/* min/max */
#define SFM_IMAGE_SIZE  0x8000  /* max size of SDLA code image file */
#define SFM_DESCR_LEN   256     /* max length of description string */
#define SFM_MAX_SDLA    16      /* max number of compatible adapters */

/* Adapter types */
#define SDLA_S502A      5020
#define SDLA_S502E      5021
#define SDLA_S503       5030
#define SDLA_S508       5080
#define SDLA_S507       5070
#define SDLA_S509       5090
#define SDLA_S514       5140

/* S514 PCI adapter CPU numbers */
#define S514_CPU_A      'A'
#define S514_CPU_B      'B'


/* Firmware identification numbers:
 *    0  ..  999        Test & Diagnostics
 *  1000 .. 1999        Streaming HDLC
 *  2000 .. 2999        Bisync
 *  3000 .. 3999        SDLC
 *  4000 .. 4999        HDLC
 *  5000 .. 5999        X.25
 *  6000 .. 6999        Frame Relay
 *  7000 .. 7999        PPP
 *  8000 .. 8999        Cisco HDLC
 */

#define SFID_CALIB502    200
#define SFID_STRM502    1200
#define SFID_STRM508    1800
#define SFID_BSC502     2200
#define SFID_SDLC502    3200
#define SFID_HDLC502    4200
#define SFID_HDLC508    4800
#define SFID_X25_502    5200
#define SFID_X25_508    5800
#define SFID_FR502      6200
#define SFID_FR508      6800
#define SFID_PPP502     7200
#define SFID_PPP508     7800
#define SFID_PPP514     7140
#define SFID_CHDLC508   8800
#define SFID_CHDLC514   8140

/****** Data Types **********************************************************/

typedef struct  sfm_info                /* firmware module information */
{
        unsigned short  codeid;         /* firmware ID */
        unsigned short  version;        /* firmaware version number */
        unsigned short  adapter[SFM_MAX_SDLA]; /* compatible adapter types */
        unsigned long   memsize;        /* minimum memory size */
        unsigned short  reserved[2];    /* reserved */
        unsigned short  startoffs;      /* entry point offset */
        unsigned short  winoffs;        /* dual-port memory window offset */
        unsigned short  codeoffs;       /* code load offset */
        unsigned short  codesize;       /* code size */
        unsigned short  dataoffs;       /* configuration data load offset */
        unsigned short  datasize;       /* configuration data size */
} sfm_info_t;

typedef struct sfm                      /* SDLA firmware file structire */
{
        char            signature[80];  /* SFM file signature */
        unsigned short  version;        /* file format version */
        unsigned short  checksum;       /* info + image */
        unsigned short  reserved[6];    /* reserved */
        char            descr[SFM_DESCR_LEN]; /* description string */
        sfm_info_t      info;           /* firmware module info */
        unsigned char   image[1];       /* code image (variable size) */
} sfm_t;

#endif  /* _SDLASFM_H */