diff options
Diffstat (limited to '')
-rw-r--r-- | private/ntos/ndis/madge/driver/head_def/ftk_init.h | 330 |
1 files changed, 330 insertions, 0 deletions
diff --git a/private/ntos/ndis/madge/driver/head_def/ftk_init.h b/private/ntos/ndis/madge/driver/head_def/ftk_init.h new file mode 100644 index 000000000..491df1e0a --- /dev/null +++ b/private/ntos/ndis/madge/driver/head_def/ftk_init.h @@ -0,0 +1,330 @@ +/****************************************************************************/ +/****************************************************************************/ +/* */ +/* THE INITIALIZATION BLOCK DEFINITIONS */ +/* ==================================== */ +/* */ +/* FTK_INIT.H : Part of the FASTMAC TOOL-KIT (FTK) */ +/* */ +/* Copyright (c) Madge Networks Ltd. 1991-1994 */ +/* CONFIDENTIAL */ +/* */ +/* */ +/****************************************************************************/ +/* */ +/* This header file contains the definitions for the structures that go to */ +/* make the initialization block that is needed in order to initialize an */ +/* adapter card that is in use by the FTK. */ +/* */ +/* IMPORTANT : All structures used within the FTK need to be packed in */ +/* order to work correctly. This means sizeof(STRUCTURE) will give the real */ +/* size in bytes, and if a structure contains sub-structures there will be */ +/* no spaces between the sub-structures. */ +/* */ +/****************************************************************************/ + +#pragma pack(1) + +/****************************************************************************/ +/* */ +/* VERSION_NUMBER of FTK to which this FTK_INIT.H belongs : */ +/* */ + +#define FTK_VERSION_NUMBER_FTK_INIT_H 221 + + +/****************************************************************************/ +/* */ +/* TYPEDEFs for all structures defined within this header file : */ +/* */ + +typedef struct STRUCT_INITIALIZATION_BLOCK INITIALIZATION_BLOCK; +typedef struct STRUCT_TI_INIT_PARMS TI_INIT_PARMS; +typedef struct STRUCT_MADGE_INIT_PARMS_HEADER MADGE_INIT_PARMS_HEADER; +typedef struct STRUCT_SMART_INIT_PARMS SMART_INIT_PARMS; +typedef struct STRUCT_FASTMAC_INIT_PARMS FASTMAC_INIT_PARMS; + +/****************************************************************************/ +/* */ +/* Structure type : TI_INIT_PARMS */ +/* */ +/* The TI initialization parameters are exactly those defined by TI for */ +/* initializing an adapter based on the EAGLE chipset except for a special */ +/* byte of 16/4 MC 32 configuration information. This byte overrides a TI */ +/* initialization block field not used by Madge adapter cards. */ +/* */ +/* REFERENCE : The TMS 380 Second-Generation Token_Ring User's Guide */ +/* by Texas Instruments */ +/* 4-42 4.6 Adapter Initialization */ +/* */ + +struct STRUCT_TI_INIT_PARMS + { + WORD init_options; + WORD madge_mc32_config; /* special MC 32 data */ + BYTE reserved[4]; /* ignored by Madge cards */ + WORD rx_burst; + WORD tx_burst; + BYTE parity_retry; + BYTE dma_retry; + DWORD scb_addr; /* 32 bit phys host addr */ + DWORD ssb_addr; /* 32 bit phys host addr */ + }; + + +/****************************************************************************/ +/* */ +/* Values : TI_INIT_PARMS - WORD init_options */ +/* */ +/* The init_options are set up for burst mode DMA. */ +/* */ + +#define TI_INIT_OPTIONS_BURST_DMA 0x9F00 + + +/****************************************************************************/ +/* */ +/* Values : TI_INIT_PARMS - WORD madge_mc32_config */ +/* */ +/* This value is used to configure MC and ISA CLIENT cards. */ +/* */ + +#define MC_AND_ISACP_USE_PIO 0x0040 + + +/****************************************************************************/ +/* */ +/* Values : TI_INIT_PARMS - BYTE parity_retry, BYTE dma_retry */ +/* */ +/* A default value is used by the FTK for the parity and dma retry counts. */ +/* */ + +#define TI_INIT_RETRY_DEFAULT 5 + + +/****************************************************************************/ +/* */ +/* Structure type : MADGE_INIT_PARMS_HEADER */ +/* */ +/* This is the common header to all Madge smart software initialization */ +/* parameter blocks - that is, in this case, the header for the general */ +/* smart software MAC level parameters and the Fastmac specific parameters. */ +/* */ +/* REFERENCE : The Madge Smart SRB Interface */ +/* - Bring-Up and Initialization */ +/* */ + + +struct STRUCT_MADGE_INIT_PARMS_HEADER + { + WORD length; /* byte length of parms */ + WORD signature; /* parms specific */ + WORD reserved; /* must be 0 */ + WORD version; /* parms specific */ + }; + + +/****************************************************************************/ +/* */ +/* Structure type : SMART_INIT_PARMS */ +/* */ +/* This structure contains general MAC level parameters for when */ +/* downloading any Madge smart software. */ +/* */ +/* REFERENCE : The Madge Smart SRB Interface */ +/* - Bring-Up and Initialization */ +/* */ + +struct STRUCT_SMART_INIT_PARMS + { + + MADGE_INIT_PARMS_HEADER header; + + WORD reserved_1; /* must be 0 */ + NODE_ADDRESS permanent_address; /* BIA PROM node address */ + WORD rx_tx_buffer_size; /* 0 => default 1K-8 bytes */ + DWORD reserved_2; /* must be 0 */ + WORD dma_buffer_size; /* 0 => no limit */ + WORD max_buffer_ram; /* 0 => default 2MB */ + WORD min_buffer_ram; /* 0 => default 10K */ + WORD sif_burst_size; /* 0 => no limit */ + }; + + +/****************************************************************************/ +/* */ +/* Values : SMART_INIT_PARMS - header. WORD signature, WORD version */ +/* */ +/* The values for the header of the general smart software MAC level */ +/* paramters strcture. */ +/* */ + +#define SMART_INIT_HEADER_SIGNATURE 0x0007 +#define SMART_INIT_HEADER_VERSION 0x0101 +#ifdef FMPLUS +#define SMART_INIT_MIN_RAM_DEFAULT 0x0002 +#endif + +/****************************************************************************/ +/* */ +/* Structure type : SMART_FASTMAC_INIT_PARMS */ +/* */ +/* The Fastmac initialization parameters as specified in the Fastmac */ +/* documentation. */ +/* */ +/* REFERENCE : The Madge Fastmac Interface Specification */ +/* - Initialization */ +/* */ + + +struct STRUCT_FASTMAC_INIT_PARMS + { + + MADGE_INIT_PARMS_HEADER header; + + WORD feature_flags; + WORD int_flags; + + WORD open_options; /* only for auto_open */ + NODE_ADDRESS open_address; /* only for auto_open */ + DWORD group_address; /* only for auto_open */ + DWORD functional_address; /* only for auto_open */ + + DWORD rx_buf_physaddr; /* set to zero for FMPlus */ + WORD rx_buf_size; /* (see rx_bufs/rx_slots) */ + WORD rx_buf_space; + + DWORD tx_buf_physaddr; /* set to zero for FMPlus */ + WORD tx_buf_size; /* (see tx_bufs/tx_slots) */ + WORD tx_buf_space; + + WORD max_frame_size; /* for both rx and tx */ + WORD size_rxdesc_queue; /* set to zero for FMPlus */ + WORD max_rx_dma; /* set to zero for FMPlus */ + + WORD group_root_address; /* only for auto_open */ +#ifdef FMPLUS + WORD rx_bufs; /* # of internel rx buffers */ + WORD tx_bufs; /* # of internal tx buffers */ + WORD rx_slots; /* # of host rx buffers */ + WORD tx_slots; /* # of host tx buffers */ + WORD tx_ahead; /* Leave as zero */ +#endif + }; + + +/****************************************************************************/ +/* */ +/* Values : FASTMAC_INIT_PARMS - header. WORD signature, WORD version */ +/* */ +/* The values for the header of the Fastmac specific initialization */ +/* parameter block. */ +/* */ + +#ifdef FMPLUS +#define FMPLUS_INIT_HEADER_SIGNATURE 0x000E +#define FMPLUS_INIT_HEADER_VERSION 0x0200 /* NOT Fastmac version! */ +#else +#define FASTMAC_INIT_HEADER_SIGNATURE 0x0005 +#define FASTMAC_INIT_HEADER_VERSION 0x0405 /* NOT Fastmac version! */ +#endif + +/****************************************************************************/ +/* */ +/* Values : FASTMAC_INIT_PARMS - WORD feature_flags */ +/* */ +/* The feature flag bit signifcant values as described in the Fastmac */ +/* specification document. */ +/* */ +/* REFERENCE : The Madge Fastmac Interface Specification */ +/* - Initialization */ +/* */ + +#define FEATURE_FLAG_AUTO_OPEN 0x0001 +#define FEATURE_FLAG_NOVELL 0x0002 +#define FEATURE_FLAG_SELL_BY_DATE 0x0004 +#define FEATURE_FLAG_PASS_RX_CRC 0x0008 +#define FEATURE_FLAG_WATCHDOG_TIMER 0x0020 +#define FEATURE_FLAG_DISCARD_BEACON_TX 0x0040 +#define FEATURE_FLAG_TRUNCATE_DMA 0x0080 +#define FEATURE_FLAG_DELAY_RX 0x0100 +#define FEATURE_FLAG_ONE_INT_PER_RX 0x0200 +#define FEATURE_FLAG_NEW_INIT_BLOCK 0x0400 +#define FEATURE_FLAG_AUTO_OPEN_ON_OPEN 0x0800 +#define FEATURE_FLAG_DISABLE_TX_FAIRNES 0x1000 +#ifdef FMPLUS +#define FEATURE_FLAG_FMPLUS_ALWAYS_SET 0x0000 +#endif + +/* Yes, the FMPLUS_ALWAYS_SET bit is ZERO, because in fact it must NOT */ +/* always be set! This is an unfortunate historical legacy... */ + + +/****************************************************************************/ +/* */ +/* Values : FASTMAC_INIT_PARMS - WORD int_flags */ +/* */ +/* The interrupt flag bit significant values as described in the Fastmac */ +/* Plus specification document. */ +/* */ +/* REFERENCE : The Madge Fastmac Plus Programming Specification */ +/* - Initialization : TMS Load Parms */ +/* */ + +#define INT_FLAG_TX_BUF_EMPTY 0x0001 +#define INT_FLAG_TIMER_TICK_ARB 0x0002 +#define INT_FLAG_RING_STATUS_ARB 0x0004 +#ifdef FMPLUS +#define INT_FLAG_LARGE_DMA 0x0008 +#define INT_FLAG_RX 0x0010 +#endif + +#ifdef FMPLUS +/****************************************************************************/ +/* */ +/* Values : Magic Fastmac Plus numbers to do with buffers on the adapter */ +/* */ +/* The size of buffers on the adapter card can be set with in the init. */ +/* block with the rx_tx_buffer_size field. The minimum value and default */ +/* values are specified here. Also, there are numbers giving the amount of */ +/* memory (in bytes) available for buffers on adapter cards of various RAM */ +/* sizes. */ +/* */ +/* REFERENCE : The Madge Fastmac Plus Programming Specification */ +/* - Initialization : SMTMAC Load Parms */ +/* */ + +#define FMPLUS_MIN_TXRX_BUFF_SIZE 97 + +#define FMPLUS_DEFAULT_BUFF_SIZE_SMALL 504 /* For EISA/MC32 cards */ +#define FMPLUS_DEFAULT_BUFF_SIZE_LARGE 1016 /* For all other cards */ + +#define FMPLUS_MAX_BUFFMEM_IN_128K 63056 /* Bytes available for buffs*/ +#define FMPLUS_MAX_BUFFMEM_IN_256K 193104 /* on cards of 128K,256K, & */ +#define FMPLUS_MAX_BUFFMEM_IN_512K 453200 /* 512K RAM. */ +#endif + +/****************************************************************************/ +/* */ +/* Structure type : INITIALIZATION_BLOCK */ +/* */ +/* The initialization block consists of 3 parts - 22 bytes of TI */ +/* intialization parameters, general smart software MAC level parameters, */ +/* and the Fastmac specific parameters. */ +/* */ + +struct STRUCT_INITIALIZATION_BLOCK + { + TI_INIT_PARMS ti_parms; + SMART_INIT_PARMS smart_parms; + FASTMAC_INIT_PARMS fastmac_parms; + }; + + +#pragma pack() + +/* */ +/* */ +/************** End of FTK_INIT.H file **************************************/ +/* */ +/* */ |