Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

150 lines
8.1 KiB

/****************************************************************************/
/****************************************************************************/
/* */
/* THE MADGE ADAPTER CARD DEFINITIONS (PCI CARDS) */
/* =================================================== */
/* */
/* FTK_PCI.H : Part of the FASTMAC TOOL-KIT (FTK) */
/* */
/* Copyright (c) Madge Networks Ltd. 1994 */
/* Developed by PRR */
/* CONFIDENTIAL */
/* */
/* */
/****************************************************************************/
/* */
/* This header file contains the definitions for programming Madge Smart */
/* 16/4 PCI */
/* adapter cards. These adapter cards have a couple of control registers, */
/* in addition to the SIF registers. ALL bits in ALL control registers are */
/* defined by Madge Networks Ltd */
/* */
/****************************************************************************/
/****************************************************************************/
/* */
/* VERSION_NUMBER of FTK to which this FTK_PCI.H belongs : */
/* */
#define FTK_VERSION_NUMBER_FTK_PCI_H 221
/****************************************************************************/
/* */
/* Values : PCI REGISTER MAP */
/* */
/* The Madge PCI Ringnode uses the following register layout. */
/* N.B. The SIF registers are mapped linearly, with no overlaying. */
/* */
#define PCI_GENERAL_CONTROL_REG 0
#define PCI_INT_MASK_REG 4
#define PCI_SEEPROM_CONTROL_REG 8
#define PCI_FIRST_SIF_REGISTER 0x20
#define PCI_IO_RANGE 256
#define PCI1_SRESET 1 /* Bit 0 of General Control Register */
#define PCI1_RSPEED_4MBPS 0x200 /* Bit 9 of General Control Register */
#define PCI1_RSPEED_VALID 0x400 /* Bit 10 of General Control Register */
#define PCI1_BIA_CLK 0x0001 /* Bit 0 of SEEPROM control word. */
#define PCI1_BIA_DOUT 0x0002 /* Bit 1 of SEEPROM control word. */
#define PCI1_BIA_ENA 0x0004 /* Bit 2 of SEEPROM control word. */
#define PCI1_BIA_DIN 0x0008 /* Bit 3 of SEEPROM control word. */
#define PCI1_ENABLE_MMIO 0x0080 /* MC32 config value to enable MMIO. */
/****************************************************************************/
/* */
/* Values : AT93C46 Serial EEPROM control valuse */
/* */
#define PCI_C46_START_BIT 0x8000
#define PCI_C46_READ_CMD 0x4000
#define PCI_C46_ADDR_MASK 0x003f
#define PCI_C46_ADDR_SHIFT 7
#define PCI_C46_CMD_LENGTH 9
/****************************************************************************/
/* */
/* Values : PCI SIF REGISTERS */
/* */
/* The EAGLE SIF registers are in two groups - the normal SIF registers */
/* (those from the old TI chipset) and the extended SIF registers (those */
/* particular to the EAGLE). */
/* */
/* The definitions for the normal SIF registers are here because they */
/* appear in the same relative IO locations for all adapter cards. */
/* */
#define PCI_SIFDAT 0 /* DIO data */
#define PCI_SIFDAT_INC 4 /* DIO data auto-increment */
#define PCI_SIFADR 8 /* DIO address (low) */
#define PCI_SIFINT 12 /* interrupt SIFCMD-SIFSTS */
/* These definitions are for the case when the SIF registers are mapped */
/* linearly. Otherwise, they will be at some extended location. */
#define PCI_SIFACL 16
#define PCI_SIFADX 24
/* These definitions are for Eagle Pseudo DMA. Notice that they replace the */
/* registers above - this is controlled by SIFACL. */
#define PCI_SDMADAT 0
#define PCI_DMALEN 4
#define PCI_SDMAADR 8
#define PCI_SDMAADX 12
/****************************************************************************/
/* */
/* Value : Number of IO locations for SIF registers */
/* */
/* The number of SIF registers is only needed for enabling and disabling */
/* ranges of IO ports. For the ATULA and MC cards the SIF registers are in */
/* 2 pages only using 8 IO ports. However, for EISA cards, the SIF */
/* registers are in a single page of 16 IO ports. Hence, 16 IO ports need */
/* to be enabled whenever accessing SIF registers. */
/* */
#define PCI_SIF_IO_RANGE 32
/****************************************************************************/
/* */
/* Values : Locations of data in the serial EEPROM (in words) */
/* */
/* */
#define PCI_EEPROM_BIA_WORD0 0
#define PCI_EEPROM_BIA_WORD1 1
#define PCI_EEPROM_BIA_WORD2 2
#define PCI_EEPROM_RING_SPEED 3
#define PCI_EEPROM_RAM_SIZE 4
/* */
/* For some perverted reason it is not possible to read these bits back */
/* from the SEEPROM control register once they have been written. */
/* */
#define BITS_TO_REMEMBER (PCI1_BIA_ENA | PCI1_BIA_DOUT | PCI1_BIA_CLK)
/****************************************************************************/
/* */
/* Values : Ring speed values stored in the serial EEPROM */
/* */
/* */
#define PCI_EEPROM_4MBS 1
#define PCI_EEPROM_16MBPS 0
/* */
/* */
/************** End of FTK_PCI.H file ***************************************/
/* */
/* */