Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 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 */