initio.h
来自「linux 内核源代码」· C头文件 代码 · 共 668 行 · 第 1/2 页
H
668 行
/************************************************************************** * Initio 9100 device driver for Linux. * * Copyright (c) 1994-1998 Initio Corporation * All rights reserved. * * Cleanups (c) Copyright 2007 Red Hat <alan@redhat.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * **************************************************************************/#include <linux/types.h>#define TOTAL_SG_ENTRY 32#define MAX_SUPPORTED_ADAPTERS 8#define MAX_OFFSET 15#define MAX_TARGETS 16typedef struct { unsigned short base; unsigned short vec;} i91u_config;/***************************************//* Tulip Configuration Register Set *//***************************************/#define TUL_PVID 0x00 /* Vendor ID */#define TUL_PDID 0x02 /* Device ID */#define TUL_PCMD 0x04 /* Command */#define TUL_PSTUS 0x06 /* Status */#define TUL_PRID 0x08 /* Revision number */#define TUL_PPI 0x09 /* Programming interface */#define TUL_PSC 0x0A /* Sub Class */#define TUL_PBC 0x0B /* Base Class */#define TUL_PCLS 0x0C /* Cache line size */#define TUL_PLTR 0x0D /* Latency timer */#define TUL_PHDT 0x0E /* Header type */#define TUL_PBIST 0x0F /* BIST */#define TUL_PBAD 0x10 /* Base address */#define TUL_PBAD1 0x14 /* Base address */#define TUL_PBAD2 0x18 /* Base address */#define TUL_PBAD3 0x1C /* Base address */#define TUL_PBAD4 0x20 /* Base address */#define TUL_PBAD5 0x24 /* Base address */#define TUL_PRSVD 0x28 /* Reserved */#define TUL_PRSVD1 0x2C /* Reserved */#define TUL_PRAD 0x30 /* Expansion ROM base address */#define TUL_PRSVD2 0x34 /* Reserved */#define TUL_PRSVD3 0x38 /* Reserved */#define TUL_PINTL 0x3C /* Interrupt line */#define TUL_PINTP 0x3D /* Interrupt pin */#define TUL_PIGNT 0x3E /* MIN_GNT */#define TUL_PMGNT 0x3F /* MAX_GNT *//************************//* Jasmin Register Set *//************************/#define TUL_HACFG0 0x40 /* H/A Configuration Register 0 */#define TUL_HACFG1 0x41 /* H/A Configuration Register 1 */#define TUL_HACFG2 0x42 /* H/A Configuration Register 2 */#define TUL_SDCFG0 0x44 /* SCSI Device Configuration 0 */#define TUL_SDCFG1 0x45 /* SCSI Device Configuration 1 */#define TUL_SDCFG2 0x46 /* SCSI Device Configuration 2 */#define TUL_SDCFG3 0x47 /* SCSI Device Configuration 3 */#define TUL_GINTS 0x50 /* Global Interrupt Status Register */#define TUL_GIMSK 0x52 /* Global Interrupt MASK Register */#define TUL_GCTRL 0x54 /* Global Control Register */#define TUL_GCTRL_EEPROM_BIT 0x04#define TUL_GCTRL1 0x55 /* Global Control Register */#define TUL_DMACFG 0x5B /* DMA configuration */#define TUL_NVRAM 0x5D /* Non-volatile RAM port */#define TUL_SCnt0 0x80 /* 00 R/W Transfer Counter Low */#define TUL_SCnt1 0x81 /* 01 R/W Transfer Counter Mid */#define TUL_SCnt2 0x82 /* 02 R/W Transfer Count High */#define TUL_SFifoCnt 0x83 /* 03 R FIFO counter */#define TUL_SIntEnable 0x84 /* 03 W Interrupt enble */#define TUL_SInt 0x84 /* 04 R Interrupt Register */#define TUL_SCtrl0 0x85 /* 05 W Control 0 */#define TUL_SStatus0 0x85 /* 05 R Status 0 */#define TUL_SCtrl1 0x86 /* 06 W Control 1 */#define TUL_SStatus1 0x86 /* 06 R Status 1 */#define TUL_SConfig 0x87 /* 07 W Configuration */#define TUL_SStatus2 0x87 /* 07 R Status 2 */#define TUL_SPeriod 0x88 /* 08 W Sync. Transfer Period & Offset */#define TUL_SOffset 0x88 /* 08 R Offset */#define TUL_SScsiId 0x89 /* 09 W SCSI ID */#define TUL_SBusId 0x89 /* 09 R SCSI BUS ID */#define TUL_STimeOut 0x8A /* 0A W Sel/Resel Time Out Register */#define TUL_SIdent 0x8A /* 0A R Identify Message Register */#define TUL_SAvail 0x8A /* 0A R Availiable Counter Register */#define TUL_SData 0x8B /* 0B R/W SCSI data in/out */#define TUL_SFifo 0x8C /* 0C R/W FIFO */#define TUL_SSignal 0x90 /* 10 R/W SCSI signal in/out */#define TUL_SCmd 0x91 /* 11 R/W Command */#define TUL_STest0 0x92 /* 12 R/W Test0 */#define TUL_STest1 0x93 /* 13 R/W Test1 */#define TUL_SCFG1 0x94 /* 14 R/W Configuration */#define TUL_XAddH 0xC0 /*DMA Transfer Physical Address */#define TUL_XAddW 0xC8 /*DMA Current Transfer Physical Address */#define TUL_XCntH 0xD0 /*DMA Transfer Counter */#define TUL_XCntW 0xD4 /*DMA Current Transfer Counter */#define TUL_XCmd 0xD8 /*DMA Command Register */#define TUL_Int 0xDC /*Interrupt Register */#define TUL_XStatus 0xDD /*DMA status Register */#define TUL_Mask 0xE0 /*Interrupt Mask Register */#define TUL_XCtrl 0xE4 /*DMA Control Register */#define TUL_XCtrl1 0xE5 /*DMA Control Register 1 */#define TUL_XFifo 0xE8 /*DMA FIFO */#define TUL_WCtrl 0xF7 /*Bus master wait state control */#define TUL_DCtrl 0xFB /*DMA delay control *//*----------------------------------------------------------------------*//* bit definition for Command register of Configuration Space Header *//*----------------------------------------------------------------------*/#define BUSMS 0x04 /* BUS MASTER Enable */#define IOSPA 0x01 /* IO Space Enable *//*----------------------------------------------------------------------*//* Command Codes of Tulip SCSI Command register *//*----------------------------------------------------------------------*/#define TSC_EN_RESEL 0x80 /* Enable Reselection */#define TSC_CMD_COMP 0x84 /* Command Complete Sequence */#define TSC_SEL 0x01 /* Select Without ATN Sequence */#define TSC_SEL_ATN 0x11 /* Select With ATN Sequence */#define TSC_SEL_ATN_DMA 0x51 /* Select With ATN Sequence with DMA */#define TSC_SEL_ATN3 0x31 /* Select With ATN3 Sequence */#define TSC_SEL_ATNSTOP 0x12 /* Select With ATN and Stop Sequence */#define TSC_SELATNSTOP 0x1E /* Select With ATN and Stop Sequence */#define TSC_SEL_ATN_DIRECT_IN 0x95 /* Select With ATN Sequence */#define TSC_SEL_ATN_DIRECT_OUT 0x15 /* Select With ATN Sequence */#define TSC_SEL_ATN3_DIRECT_IN 0xB5 /* Select With ATN3 Sequence */#define TSC_SEL_ATN3_DIRECT_OUT 0x35 /* Select With ATN3 Sequence */#define TSC_XF_DMA_OUT_DIRECT 0x06 /* DMA Xfer Information out */#define TSC_XF_DMA_IN_DIRECT 0x86 /* DMA Xfer Information in */#define TSC_XF_DMA_OUT 0x43 /* DMA Xfer Information out */#define TSC_XF_DMA_IN 0xC3 /* DMA Xfer Information in */#define TSC_XF_FIFO_OUT 0x03 /* FIFO Xfer Information out */#define TSC_XF_FIFO_IN 0x83 /* FIFO Xfer Information in */#define TSC_MSG_ACCEPT 0x0F /* Message Accept *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Control 0 Register *//*----------------------------------------------------------------------*/#define TSC_RST_SEQ 0x20 /* Reset sequence counter */#define TSC_FLUSH_FIFO 0x10 /* Flush FIFO */#define TSC_ABT_CMD 0x04 /* Abort command (sequence) */#define TSC_RST_CHIP 0x02 /* Reset SCSI Chip */#define TSC_RST_BUS 0x01 /* Reset SCSI Bus *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Control 1 Register *//*----------------------------------------------------------------------*/#define TSC_EN_SCAM 0x80 /* Enable SCAM */#define TSC_TIMER 0x40 /* Select timeout unit */#define TSC_EN_SCSI2 0x20 /* SCSI-2 mode */#define TSC_PWDN 0x10 /* Power down mode */#define TSC_WIDE_CPU 0x08 /* Wide CPU */#define TSC_HW_RESELECT 0x04 /* Enable HW reselect */#define TSC_EN_BUS_OUT 0x02 /* Enable SCSI data bus out latch */#define TSC_EN_BUS_IN 0x01 /* Enable SCSI data bus in latch *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Configuration Register *//*----------------------------------------------------------------------*/#define TSC_EN_LATCH 0x80 /* Enable phase latch */#define TSC_INITIATOR 0x40 /* Initiator mode */#define TSC_EN_SCSI_PAR 0x20 /* Enable SCSI parity */#define TSC_DMA_8BIT 0x10 /* Alternate dma 8-bits mode */#define TSC_DMA_16BIT 0x08 /* Alternate dma 16-bits mode */#define TSC_EN_WDACK 0x04 /* Enable DACK while wide SCSI xfer */#define TSC_ALT_PERIOD 0x02 /* Alternate sync period mode */#define TSC_DIS_SCSIRST 0x01 /* Disable SCSI bus reset us */#define TSC_INITDEFAULT (TSC_INITIATOR | TSC_EN_LATCH | TSC_ALT_PERIOD | TSC_DIS_SCSIRST)#define TSC_WIDE_SCSI 0x80 /* Enable Wide SCSI *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI signal Register *//*----------------------------------------------------------------------*/#define TSC_RST_ACK 0x00 /* Release ACK signal */#define TSC_RST_ATN 0x00 /* Release ATN signal */#define TSC_RST_BSY 0x00 /* Release BSY signal */#define TSC_SET_ACK 0x40 /* ACK signal */#define TSC_SET_ATN 0x08 /* ATN signal */#define TSC_REQI 0x80 /* REQ signal */#define TSC_ACKI 0x40 /* ACK signal */#define TSC_BSYI 0x20 /* BSY signal */#define TSC_SELI 0x10 /* SEL signal */#define TSC_ATNI 0x08 /* ATN signal */#define TSC_MSGI 0x04 /* MSG signal */#define TSC_CDI 0x02 /* C/D signal */#define TSC_IOI 0x01 /* I/O signal *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Status 0 Register *//*----------------------------------------------------------------------*/#define TSS_INT_PENDING 0x80 /* Interrupt pending */#define TSS_SEQ_ACTIVE 0x40 /* Sequencer active */#define TSS_XFER_CNT 0x20 /* Transfer counter zero */#define TSS_FIFO_EMPTY 0x10 /* FIFO empty */#define TSS_PAR_ERROR 0x08 /* SCSI parity error */#define TSS_PH_MASK 0x07 /* SCSI phase mask *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Status 1 Register *//*----------------------------------------------------------------------*/#define TSS_STATUS_RCV 0x08 /* Status received */#define TSS_MSG_SEND 0x40 /* Message sent */#define TSS_CMD_PH_CMP 0x20 /* command phase done */#define TSS_DATA_PH_CMP 0x10 /* Data phase done */#define TSS_STATUS_SEND 0x08 /* Status sent */#define TSS_XFER_CMP 0x04 /* Transfer completed */#define TSS_SEL_CMP 0x02 /* Selection completed */#define TSS_ARB_CMP 0x01 /* Arbitration completed *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Status 2 Register *//*----------------------------------------------------------------------*/#define TSS_CMD_ABTED 0x80 /* Command aborted */#define TSS_OFFSET_0 0x40 /* Offset counter zero */#define TSS_FIFO_FULL 0x20 /* FIFO full */#define TSS_TIMEOUT_0 0x10 /* Timeout counter zero */#define TSS_BUSY_RLS 0x08 /* Busy release */#define TSS_PH_MISMATCH 0x04 /* Phase mismatch */#define TSS_SCSI_BUS_EN 0x02 /* SCSI data bus enable */#define TSS_SCSIRST 0x01 /* SCSI bus reset in progress *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Interrupt Register *//*----------------------------------------------------------------------*/#define TSS_RESEL_INT 0x80 /* Reselected interrupt */#define TSS_SEL_TIMEOUT 0x40 /* Selected/reselected timeout */#define TSS_BUS_SERV 0x20#define TSS_SCSIRST_INT 0x10 /* SCSI bus reset detected */#define TSS_DISC_INT 0x08 /* Disconnected interrupt */#define TSS_SEL_INT 0x04 /* Select interrupt */#define TSS_SCAM_SEL 0x02 /* SCAM selected */#define TSS_FUNC_COMP 0x01/*----------------------------------------------------------------------*//* SCSI Phase Codes. *//*----------------------------------------------------------------------*/#define DATA_OUT 0#define DATA_IN 1 /* 4 */#define CMD_OUT 2#define STATUS_IN 3 /* 6 */#define MSG_OUT 6 /* 3 */#define MSG_IN 7/*----------------------------------------------------------------------*//* Command Codes of Tulip xfer Command register *//*----------------------------------------------------------------------*/#define TAX_X_FORC 0x02#define TAX_X_ABT 0x04#define TAX_X_CLR_FIFO 0x08#define TAX_X_IN 0x21#define TAX_X_OUT 0x01#define TAX_SG_IN 0xA1#define TAX_SG_OUT 0x81/*----------------------------------------------------------------------*//* Tulip Interrupt Register *//*----------------------------------------------------------------------*/#define XCMP 0x01#define FCMP 0x02#define XABT 0x04#define XERR 0x08#define SCMP 0x10#define IPEND 0x80/*----------------------------------------------------------------------*//* Tulip DMA Status Register *//*----------------------------------------------------------------------*/#define XPEND 0x01 /* Transfer pending */#define FEMPTY 0x02 /* FIFO empty *//*----------------------------------------------------------------------*//* bit definition for TUL_GCTRL *//*----------------------------------------------------------------------*/#define EXTSG 0x80#define EXTAD 0x60#define SEG4K 0x08#define EEPRG 0x04#define MRMUL 0x02/*----------------------------------------------------------------------*//* bit definition for TUL_NVRAM *//*----------------------------------------------------------------------*/#define SE2CS 0x08#define SE2CLK 0x04#define SE2DO 0x02
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?