linux/include/uapi/linux/cycx_cfm.h
<<
>>
Prefs
   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 */
  63struct 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 */
  87struct 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
  97struct cycx_fw_header {
  98        unsigned long  reset_size;
  99        unsigned long  data_size;
 100        unsigned long  code_size;
 101};
 102#endif  /* _CYCX_CFM_H */
 103