root/include/uapi/linux/cycx_cfm.h

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
   2 /*
   3 * cycx_cfm.h    Cyclom 2X WAN Link Driver.
   4 *               Definitions for the Cyclom 2X Firmware Module (CFM).
   5 *
   6 * Author:       Arnaldo Carvalho de Melo <acme@conectiva.com.br>
   7 *
   8 * Copyright:    (c) 1998-2003 Arnaldo Carvalho de Melo
   9 *
  10 * Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.com>
  11 *
  12 *               This program is free software; you can redistribute it and/or
  13 *               modify it under the terms of the GNU General Public License
  14 *               as published by the Free Software Foundation; either version
  15 *               2 of the License, or (at your option) any later version.
  16 * ============================================================================
  17 * 1998/08/08    acme            Initial version.
  18 */
  19 #ifndef _CYCX_CFM_H
  20 #define _CYCX_CFM_H
  21 
  22 /* Defines */
  23 
  24 #define CFM_VERSION     2
  25 #define CFM_SIGNATURE   "CFM - Cyclades CYCX Firmware Module"
  26 
  27 /* min/max */
  28 #define CFM_IMAGE_SIZE  0x20000 /* max size of CYCX code image file */
  29 #define CFM_DESCR_LEN   256     /* max length of description string */
  30 #define CFM_MAX_CYCX    1       /* max number of compatible adapters */
  31 #define CFM_LOAD_BUFSZ  0x400   /* buffer size for reset code (buffer_load) */
  32 
  33 /* Firmware Commands */
  34 #define GEN_POWER_ON    0x1280
  35 
  36 #define GEN_SET_SEG     0x1401  /* boot segment setting. */
  37 #define GEN_BOOT_DAT    0x1402  /* boot data. */
  38 #define GEN_START       0x1403  /* board start. */
  39 #define GEN_DEFPAR      0x1404  /* buffer length for boot. */
  40 
  41 /* Adapter Types */
  42 #define CYCX_2X         2
  43 /* for now only the 2X is supported, no plans to support 8X or 16X */
  44 #define CYCX_8X         8
  45 #define CYCX_16X        16
  46 
  47 #define CFID_X25_2X     5200
  48 
  49 /**
  50  *      struct cycx_fw_info - firmware module information.
  51  *      @codeid - firmware ID
  52  *      @version - firmware version number
  53  *      @adapter - compatible adapter types
  54  *      @memsize - minimum memory size
  55  *      @reserved - reserved
  56  *      @startoffs - entry point offset
  57  *      @winoffs - dual-port memory window offset
  58  *      @codeoffs - code load offset
  59  *      @codesize - code size
  60  *      @dataoffs - configuration data load offset
  61  *      @datasize - configuration data size
  62  */
  63 struct cycx_fw_info {
  64         unsigned short  codeid;
  65         unsigned short  version;
  66         unsigned short  adapter[CFM_MAX_CYCX];
  67         unsigned long   memsize;
  68         unsigned short  reserved[2];
  69         unsigned short  startoffs;
  70         unsigned short  winoffs;
  71         unsigned short  codeoffs;
  72         unsigned long   codesize;
  73         unsigned short  dataoffs;
  74         unsigned long   datasize;
  75 };
  76 
  77 /**
  78  *      struct cycx_firmware - CYCX firmware file structure
  79  *      @signature - CFM file signature
  80  *      @version - file format version
  81  *      @checksum - info + image
  82  *      @reserved - reserved
  83  *      @descr - description string
  84  *      @info - firmware module info
  85  *      @image - code image (variable size)
  86  */
  87 struct cycx_firmware {
  88         char                signature[80];
  89         unsigned short      version;
  90         unsigned short      checksum;
  91         unsigned short      reserved[6];
  92         char                descr[CFM_DESCR_LEN];
  93         struct cycx_fw_info info;
  94         unsigned char       image[0];
  95 };
  96 
  97 struct cycx_fw_header {
  98         unsigned long  reset_size;
  99         unsigned long  data_size;
 100         unsigned long  code_size;
 101 };
 102 #endif  /* _CYCX_CFM_H */

/* [<][>][^][v][top][bottom][index][help] */