103 lines · c
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 Melo9*10* Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.com>11*12* This program is free software; you can redistribute it and/or13* modify it under the terms of the GNU General Public License14* as published by the Free Software Foundation; either version15* 2 of the License, or (at your option) any later version.16* ============================================================================17* 1998/08/08 acme Initial version.18*/19#ifndef _CYCX_CFM_H20#define _CYCX_CFM_H21 22/* Defines */23 24#define CFM_VERSION 225#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 0x128035 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 243/* for now only the 2X is supported, no plans to support 8X or 16X */44#define CYCX_8X 845#define CYCX_16X 1646 47#define CFID_X25_2X 520048 49/**50 * struct cycx_fw_info - firmware module information.51 * @codeid - firmware ID52 * @version - firmware version number53 * @adapter - compatible adapter types54 * @memsize - minimum memory size55 * @reserved - reserved56 * @startoffs - entry point offset57 * @winoffs - dual-port memory window offset58 * @codeoffs - code load offset59 * @codesize - code size60 * @dataoffs - configuration data load offset61 * @datasize - configuration data size62 */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 structure79 * @signature - CFM file signature80 * @version - file format version81 * @checksum - info + image82 * @reserved - reserved83 * @descr - description string84 * @info - firmware module info85 * @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[];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