130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* cycx_cfm.h Cyclom 2X WAN Link Driver. 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* Definitions for the Cyclom 2X Firmware Module (CFM). 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br> 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* Copyright: (c) 1998-2003 Arnaldo Carvalho de Melo 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.com> 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* This program is free software; you can redistribute it and/or 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* modify it under the terms of the GNU General Public License 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* as published by the Free Software Foundation; either version 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* 2 of the License, or (at your option) any later version. 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* ============================================================================ 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng* 1998/08/08 acme Initial version. 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng*/ 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _CYCX_CFM_H 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _CYCX_CFM_H 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Defines */ 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CFM_VERSION 2 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CFM_SIGNATURE "CFM - Cyclades CYCX Firmware Module" 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* min/max */ 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CFM_IMAGE_SIZE 0x20000 /* max size of CYCX code image file */ 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CFM_DESCR_LEN 256 /* max length of description string */ 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CFM_MAX_CYCX 1 /* max number of compatible adapters */ 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CFM_LOAD_BUFSZ 0x400 /* buffer size for reset code (buffer_load) */ 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Firmware Commands */ 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GEN_POWER_ON 0x1280 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GEN_SET_SEG 0x1401 /* boot segment setting. */ 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GEN_BOOT_DAT 0x1402 /* boot data. */ 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GEN_START 0x1403 /* board start. */ 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GEN_DEFPAR 0x1404 /* buffer length for boot. */ 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Adapter Types */ 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CYCX_2X 2 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* for now only the 2X is supported, no plans to support 8X or 16X */ 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CYCX_8X 8 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CYCX_16X 16 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CFID_X25_2X 5200 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/** 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * struct cycx_fw_info - firmware module information. 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @codeid - firmware ID 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @version - firmware version number 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @adapter - compatible adapter types 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @memsize - minimum memory size 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @reserved - reserved 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @startoffs - entry point offset 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @winoffs - dual-port memory window offset 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @codeoffs - code load offset 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @codesize - code size 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @dataoffs - configuration data load offset 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @datasize - configuration data size 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 6230692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct cycx_fw_info { 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short codeid; 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short version; 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short adapter[CFM_MAX_CYCX]; 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long memsize; 6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short reserved[2]; 6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short startoffs; 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short winoffs; 7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short codeoffs; 7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long codesize; 7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short dataoffs; 7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long datasize; 7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/** 7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * struct cycx_firmware - CYCX firmware file structure 7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @signature - CFM file signature 7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @version - file format version 8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @checksum - info + image 8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @reserved - reserved 8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @descr - description string 8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @info - firmware module info 8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * @image - code image (variable size) 8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 8630692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct cycx_firmware { 8730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char signature[80]; 8830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short version; 8930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short checksum; 9030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short reserved[6]; 9130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char descr[CFM_DESCR_LEN]; 9230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct cycx_fw_info info; 9330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char image[0]; 9430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 9530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 9630692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct cycx_fw_header { 9730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long reset_size; 9830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long data_size; 9930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long code_size; 10030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 10130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _CYCX_CFM_H */ 102