⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ispreg.h

📁 基于组件方式开发操作系统的OSKIT源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
#define	DMA_PCI_STATUS_DMA_SUSP		0x0004	/* DMA suspended */#define	DMA_PCI_STATUS_PIPE_MASK	0x0003	/* DMA Pipeline status mask *//* DMA Status Register, pipeline status bits */#define	DMA_SBUS_PIPE_FULL		0x00C0	/* Both pipeline stages full */#define	DMA_SBUS_PIPE_OVERRUN		0x0080	/* Pipeline overrun */#define	DMA_SBUS_PIPE_STAGE1		0x0040	/*						 * Pipeline stage 1 Loaded,						 * stage 2 empty						 */#define	DMA_PCI_PIPE_FULL		0x0003	/* Both pipeline stages full */#define	DMA_PCI_PIPE_OVERRUN		0x0002	/* Pipeline overrun */#define	DMA_PCI_PIPE_STAGE1		0x0001	/*						 * Pipeline stage 1 Loaded,						 * stage 2 empty						 */#define	DMA_PIPE_EMPTY			0x0000	/* All pipeline stages empty *//* DMA Status Register, channel status bits */#define	DMA_SBUS_CHAN_SUSPEND	0x0030	/* Channel error or suspended */#define	DMA_SBUS_CHAN_TRANSFER	0x0020	/* Chan transfer in progress */#define	DMA_SBUS_CHAN_ACTIVE	0x0010	/* Chan trans to host active */#define	DMA_PCI_CHAN_TRANSFER	0x3000	/* Chan transfer in progress */#define	DMA_PCI_CHAN_SUSPEND	0x2000	/* Channel error or suspended */#define	DMA_PCI_CHAN_ACTIVE	0x1000	/* Chan trans to host active */#define	ISP_DMA_CHAN_IDLE	0x0000	/* Chan idle (normal comp) *//* DMA FIFO STATUS REGISTER */#define	DMA_FIFO_STATUS_OVERRUN		0x0200	/* FIFO Overrun Condition */#define	DMA_FIFO_STATUS_UNDERRUN	0x0100	/* FIFO Underrun Condition */#define	DMA_FIFO_SBUS_COUNT_MASK	0x007F	/* FIFO Byte count mask */#define	DMA_FIFO_PCI_COUNT_MASK		0x00FF	/* FIFO Byte count mask *//* * Mailbox Block Register Offsets */#define	INMAILBOX0	MBOX_BLOCK+0x0#define	INMAILBOX1	MBOX_BLOCK+0x2#define	INMAILBOX2	MBOX_BLOCK+0x4#define	INMAILBOX3	MBOX_BLOCK+0x6#define	INMAILBOX4	MBOX_BLOCK+0x8#define	INMAILBOX5	MBOX_BLOCK+0xA#define	INMAILBOX6	MBOX_BLOCK+0xC#define	INMAILBOX7	MBOX_BLOCK+0xE#define	OUTMAILBOX0	MBOX_BLOCK+0x0#define	OUTMAILBOX1	MBOX_BLOCK+0x2#define	OUTMAILBOX2	MBOX_BLOCK+0x4#define	OUTMAILBOX3	MBOX_BLOCK+0x6#define	OUTMAILBOX4	MBOX_BLOCK+0x8#define	OUTMAILBOX5	MBOX_BLOCK+0xA#define	OUTMAILBOX6	MBOX_BLOCK+0xC#define	OUTMAILBOX7	MBOX_BLOCK+0xE#define	OMBOX_OFFN(n)	(MBOX_BLOCK + (n * 2))#define	NMBOX(isp)	\	(((((isp)->isp_type & ISP_HA_SCSI) >= ISP_HA_SCSI_1040A) || \	 ((isp)->isp_type & ISP_HA_FC))? 8 : 6)/* * SXP Block Register Offsets */#define	SXP_PART_ID		SXP_BLOCK+0x0	/* R  : Part ID Code */#define	SXP_CONFIG1		SXP_BLOCK+0x2	/* RW*: Configuration Reg #1 */#define	SXP_CONFIG2		SXP_BLOCK+0x4	/* RW*: Configuration Reg #2 */#define	SXP_CONFIG3		SXP_BLOCK+0x6	/* RW*: Configuration Reg #2 */#define	SXP_INSTRUCTION		SXP_BLOCK+0xC	/* RW*: Instruction Pointer */#define	SXP_RETURN_ADDR		SXP_BLOCK+0x10	/* RW*: Return Address */#define	SXP_COMMAND		SXP_BLOCK+0x14	/* RW*: Command */#define	SXP_INTERRUPT		SXP_BLOCK+0x18	/* R  : Interrupt */#define	SXP_SEQUENCE		SXP_BLOCK+0x1C	/* RW*: Sequence */#define	SXP_GROSS_ERR		SXP_BLOCK+0x1E	/* R  : Gross Error */#define	SXP_EXCEPTION		SXP_BLOCK+0x20	/* RW*: Exception Enable */#define	SXP_OVERRIDE		SXP_BLOCK+0x24	/* RW*: Override */#define	SXP_LITERAL_BASE	SXP_BLOCK+0x28	/* RW*: Literal Base */#define	SXP_USER_FLAGS		SXP_BLOCK+0x2C	/* RW*: User Flags */#define	SXP_USER_EXCEPT		SXP_BLOCK+0x30	/* RW*: User Exception */#define	SXP_BREAKPOINT		SXP_BLOCK+0x34	/* RW*: Breakpoint */#define	SXP_SCSI_ID		SXP_BLOCK+0x40	/* RW*: SCSI ID */#define	SXP_DEV_CONFIG1		SXP_BLOCK+0x42	/* RW*: Device Config Reg #1 */#define	SXP_DEV_CONFIG2		SXP_BLOCK+0x44	/* RW*: Device Config Reg #2 */#define	SXP_PHASE_POINTER	SXP_BLOCK+0x48	/* RW*: SCSI Phase Pointer */#define	SXP_BUF_POINTER		SXP_BLOCK+0x4C	/* RW*: SCSI Buffer Pointer */#define	SXP_BUF_COUNTER		SXP_BLOCK+0x50	/* RW*: SCSI Buffer Counter */#define	SXP_BUFFER		SXP_BLOCK+0x52	/* RW*: SCSI Buffer */#define	SXP_BUF_BYTE		SXP_BLOCK+0x54	/* RW*: SCSI Buffer Byte */#define	SXP_BUF_WORD		SXP_BLOCK+0x56	/* RW*: SCSI Buffer Word */#define	SXP_BUF_WORD_TRAN	SXP_BLOCK+0x58	/* RW*: SCSI Buffer Wd xlate */#define	SXP_FIFO		SXP_BLOCK+0x5A	/* RW*: SCSI FIFO */#define	SXP_FIFO_STATUS		SXP_BLOCK+0x5C	/* RW*: SCSI FIFO Status */#define	SXP_FIFO_TOP		SXP_BLOCK+0x5E	/* RW*: SCSI FIFO Top Resid */#define	SXP_FIFO_BOTTOM		SXP_BLOCK+0x60	/* RW*: SCSI FIFO Bot Resid */#define	SXP_TRAN_REG		SXP_BLOCK+0x64	/* RW*: SCSI Transferr Reg */#define	SXP_TRAN_COUNT_LO	SXP_BLOCK+0x68	/* RW*: SCSI Trans Count */#define	SXP_TRAN_COUNT_HI	SXP_BLOCK+0x6A	/* RW*: SCSI Trans Count */#define	SXP_TRAN_COUNTER_LO	SXP_BLOCK+0x6C	/* RW*: SCSI Trans Counter */#define	SXP_TRAN_COUNTER_HI	SXP_BLOCK+0x6E	/* RW*: SCSI Trans Counter */#define	SXP_ARB_DATA		SXP_BLOCK+0x70	/* R  : SCSI Arb Data */#define	SXP_PINS_CONTROL	SXP_BLOCK+0x72	/* RW*: SCSI Control Pins */#define	SXP_PINS_DATA		SXP_BLOCK+0x74	/* RW*: SCSI Data Pins */#define	SXP_PINS_DIFF		SXP_BLOCK+0x76	/* RW*: SCSI Diff Pins *//* SXP CONF1 REGISTER */#define	SXP_CONF1_ASYNCH_SETUP		0xF000	/* Asynchronous setup time */#define	SXP_CONF1_SELECTION_UNIT	0x0000	/* Selection time unit */#define	SXP_CONF1_SELECTION_TIMEOUT	0x0600	/* Selection timeout */#define	SXP_CONF1_CLOCK_FACTOR		0x00E0	/* Clock factor */#define	SXP_CONF1_SCSI_ID		0x000F	/* SCSI id *//* SXP CONF2 REGISTER */#define	SXP_CONF2_DISABLE_FILTER	0x0040	/* Disable SCSI rec filters */#define	SXP_CONF2_REQ_ACK_PULLUPS	0x0020	/* Enable req/ack pullups */#define	SXP_CONF2_DATA_PULLUPS		0x0010	/* Enable data pullups */#define	SXP_CONF2_CONFIG_AUTOLOAD	0x0008	/* Enable dev conf auto-load */#define	SXP_CONF2_RESELECT		0x0002	/* Enable reselection */#define	SXP_CONF2_SELECT		0x0001	/* Enable selection *//* SXP INTERRUPT REGISTER */#define	SXP_INT_PARITY_ERR		0x8000	/* Parity error detected */#define	SXP_INT_GROSS_ERR		0x4000	/* Gross error detected */#define	SXP_INT_FUNCTION_ABORT		0x2000	/* Last cmd aborted */#define	SXP_INT_CONDITION_FAILED	0x1000	/* Last cond failed test */#define	SXP_INT_FIFO_EMPTY		0x0800	/* SCSI FIFO is empty */#define	SXP_INT_BUF_COUNTER_ZERO	0x0400	/* SCSI buf count == zero */#define	SXP_INT_XFER_ZERO		0x0200	/* SCSI trans count == zero */#define	SXP_INT_INT_PENDING		0x0080	/* SXP interrupt pending */#define	SXP_INT_CMD_RUNNING		0x0040	/* SXP is running a command */#define	SXP_INT_INT_RETURN_CODE		0x000F	/* Interrupt return code *//* SXP GROSS ERROR REGISTER */#define	SXP_GROSS_OFFSET_RESID		0x0040	/* Req/Ack offset not zero */#define	SXP_GROSS_OFFSET_UNDERFLOW	0x0020	/* Req/Ack offset underflow */#define	SXP_GROSS_OFFSET_OVERFLOW	0x0010	/* Req/Ack offset overflow */#define	SXP_GROSS_FIFO_UNDERFLOW	0x0008	/* SCSI FIFO underflow */#define	SXP_GROSS_FIFO_OVERFLOW		0x0004	/* SCSI FIFO overflow */#define	SXP_GROSS_WRITE_ERR		0x0002	/* SXP and RISC wrote to reg */#define	SXP_GROSS_ILLEGAL_INST		0x0001	/* Bad inst loaded into SXP *//* SXP EXCEPTION REGISTER */#define	SXP_EXCEPT_USER_0		0x8000	/* Enable user exception #0 */#define	SXP_EXCEPT_USER_1		0x4000	/* Enable user exception #1 */#define	PCI_SXP_EXCEPT_SCAM		0x0400	/* SCAM Selection enable */#define	SXP_EXCEPT_BUS_FREE		0x0200	/* Enable Bus Free det */#define	SXP_EXCEPT_TARGET_ATN		0x0100	/* Enable TGT mode atten det */#define	SXP_EXCEPT_RESELECTED		0x0080	/* Enable ReSEL exc handling */#define	SXP_EXCEPT_SELECTED		0x0040	/* Enable SEL exc handling */#define	SXP_EXCEPT_ARBITRATION		0x0020	/* Enable ARB exc handling */#define	SXP_EXCEPT_GROSS_ERR		0x0010	/* Enable gross error except */#define	SXP_EXCEPT_BUS_RESET		0x0008	/* Enable Bus Reset except */	/* SXP OVERRIDE REGISTER */#define	SXP_ORIDE_EXT_TRIGGER		0x8000	/* Enable external trigger */#define	SXP_ORIDE_STEP			0x4000	/* Enable single step mode */#define	SXP_ORIDE_BREAKPOINT		0x2000	/* Enable breakpoint reg */#define	SXP_ORIDE_PIN_WRITE		0x1000	/* Enable write to SCSI pins */#define	SXP_ORIDE_FORCE_OUTPUTS		0x0800	/* Force SCSI outputs on */#define	SXP_ORIDE_LOOPBACK		0x0400	/* Enable SCSI loopback mode */#define	SXP_ORIDE_PARITY_TEST		0x0200	/* Enable parity test mode */#define	SXP_ORIDE_TRISTATE_ENA_PINS	0x0100	/* Tristate SCSI enable pins */#define	SXP_ORIDE_TRISTATE_PINS		0x0080	/* Tristate SCSI pins */#define	SXP_ORIDE_FIFO_RESET		0x0008	/* Reset SCSI FIFO */#define	SXP_ORIDE_CMD_TERMINATE		0x0004	/* Terminate cur SXP com */#define	SXP_ORIDE_RESET_REG		0x0002	/* Reset SXP registers */#define	SXP_ORIDE_RESET_MODULE		0x0001	/* Reset SXP module *//* SXP COMMANDS */#define	SXP_RESET_BUS_CMD		0x300b/* SXP SCSI ID REGISTER */#define	SXP_SELECTING_ID		0x0F00	/* (Re)Selecting id */#define	SXP_SELECT_ID			0x000F	/* Select id *//* SXP DEV CONFIG1 REGISTER */#define	SXP_DCONF1_SYNC_HOLD		0x7000	/* Synchronous data hold */#define	SXP_DCONF1_SYNC_SETUP		0x0F00	/* Synchronous data setup */#define	SXP_DCONF1_SYNC_OFFSET		0x000F	/* Synchronous data offset *//* SXP DEV CONFIG2 REGISTER */#define	SXP_DCONF2_FLAGS_MASK		0xF000	/* Device flags */#define	SXP_DCONF2_WIDE			0x0400	/* Enable wide SCSI */#define	SXP_DCONF2_PARITY		0x0200	/* Enable parity checking */#define	SXP_DCONF2_BLOCK_MODE		0x0100	/* Enable blk mode xfr count */#define	SXP_DCONF2_ASSERTION_MASK	0x0007	/* Assersion period mask *//* SXP PHASE POINTER REGISTER */#define	SXP_PHASE_STATUS_PTR		0x1000	/* Status buffer offset */#define	SXP_PHASE_MSG_IN_PTR		0x0700	/* Msg in buffer offset */#define	SXP_PHASE_COM_PTR		0x00F0	/* Command buffer offset */#define	SXP_PHASE_MSG_OUT_PTR		0x0007	/* Msg out buffer offset *//* SXP FIFO STATUS REGISTER */#define	SXP_FIFO_TOP_RESID		0x8000	/* Top residue reg full */#define	SXP_FIFO_ACK_RESID		0x4000	/* Wide transfers odd resid */#define	SXP_FIFO_COUNT_MASK		0x001C	/* Words in SXP FIFO */#define	SXP_FIFO_BOTTOM_RESID		0x0001	/* Bottom residue reg full *//* SXP CONTROL PINS REGISTER */#define	SXP_PINS_CON_PHASE		0x8000	/* Scsi phase valid */#define	SXP_PINS_CON_PARITY_HI		0x0400	/* Parity pin */#define	SXP_PINS_CON_PARITY_LO		0x0200	/* Parity pin */#define	SXP_PINS_CON_REQ		0x0100	/* SCSI bus REQUEST */#define	SXP_PINS_CON_ACK		0x0080	/* SCSI bus ACKNOWLEDGE */#define	SXP_PINS_CON_RST		0x0040	/* SCSI bus RESET */#define	SXP_PINS_CON_BSY		0x0020	/* SCSI bus BUSY */#define	SXP_PINS_CON_SEL		0x0010	/* SCSI bus SELECT */#define	SXP_PINS_CON_ATN		0x0008	/* SCSI bus ATTENTION */#define	SXP_PINS_CON_MSG		0x0004	/* SCSI bus MESSAGE */#define	SXP_PINS_CON_CD 		0x0002	/* SCSI bus COMMAND */#define	SXP_PINS_CON_IO 		0x0001	/* SCSI bus INPUT *//* * Set the hold time for the SCSI Bus Reset to be 250 ms */#define	SXP_SCSI_BUS_RESET_HOLD_TIME	250/* SXP DIFF PINS REGISTER */#define	SXP_PINS_DIFF_SENSE		0x0200	/* DIFFSENS sig on SCSI bus */#define	SXP_PINS_DIFF_MODE		0x0100	/* DIFFM signal */#define	SXP_PINS_DIFF_ENABLE_OUTPUT	0x0080	/* Enable SXP SCSI data drv */#define	SXP_PINS_DIFF_PINS_MASK		0x007C	/* Differential control pins */#define	SXP_PINS_DIFF_TARGET		0x0002	/* Enable SXP target mode */#define	SXP_PINS_DIFF_INITIATOR		0x0001	/* Enable SXP initiator mode *//* 1080 only */#define	SXP_PINS_LVD_MODE		0x1000#define	SXP_PINS_HVD_MODE		0x0800#define	SXP_PINS_SE_MODE		0x0400/* The above have to be put together with the DIFFM pin to make sense */#define	ISP1080_LVD_MODE		(SXP_PINS_LVD_MODE)#define	ISP1080_HVD_MODE		(SXP_PINS_HVD_MODE|SXP_PINS_DIFF_MODE)#define	ISP1080_SE_MODE			(SXP_PINS_SE_MODE)#define	ISP1080_MODE_MASK	\    (SXP_PINS_LVD_MODE|SXP_PINS_HVD_MODE|SXP_PINS_SE_MODE|SXP_PINS_DIFF_MODE)/* * RISC and Host Command and Control Block Register Offsets */#define	RISC_ACC	RISC_BLOCK+0x0	/* RW*: Accumulator */#define	RISC_R1		RISC_BLOCK+0x2	/* RW*: GP Reg R1  */#define	RISC_R2		RISC_BLOCK+0x4	/* RW*: GP Reg R2  */#define	RISC_R3		RISC_BLOCK+0x6	/* RW*: GP Reg R3  */#define	RISC_R4		RISC_BLOCK+0x8	/* RW*: GP Reg R4  */#define	RISC_R5		RISC_BLOCK+0xA	/* RW*: GP Reg R5  */#define	RISC_R6		RISC_BLOCK+0xC	/* RW*: GP Reg R6  */#define	RISC_R7		RISC_BLOCK+0xE	/* RW*: GP Reg R7  */#define	RISC_R8		RISC_BLOCK+0x10	/* RW*: GP Reg R8  */#define	RISC_R9		RISC_BLOCK+0x12	/* RW*: GP Reg R9  */#define	RISC_R10	RISC_BLOCK+0x14	/* RW*: GP Reg R10 */#define	RISC_R11	RISC_BLOCK+0x16	/* RW*: GP Reg R11 */#define	RISC_R12	RISC_BLOCK+0x18	/* RW*: GP Reg R12 */#define	RISC_R13	RISC_BLOCK+0x1a	/* RW*: GP Reg R13 */#define	RISC_R14	RISC_BLOCK+0x1c	/* RW*: GP Reg R14 */#define	RISC_R15	RISC_BLOCK+0x1e	/* RW*: GP Reg R15 */#define	RISC_PSR	RISC_BLOCK+0x20	/* RW*: Processor Status */#define	RISC_IVR	RISC_BLOCK+0x22	/* RW*: Interrupt Vector */#define	RISC_PCR	RISC_BLOCK+0x24	/* RW*: Processor Ctrl */#define	RISC_RAR0	RISC_BLOCK+0x26	/* RW*: Ram Address #0 */#define	RISC_RAR1	RISC_BLOCK+0x28	/* RW*: Ram Address #1 */#define	RISC_LCR	RISC_BLOCK+0x2a	/* RW*: Loop Counter */#define	RISC_PC		RISC_BLOCK+0x2c	/* R  : Program Counter */#define	RISC_MTR	RISC_BLOCK+0x2e	/* RW*: Memory Timing */#define		RISC_MTR2100	RISC_BLOCK+0x30#define	RISC_EMB	RISC_BLOCK+0x30	/* RW*: Ext Mem Boundary */#define		DUAL_BANK	8#define	RISC_SP		RISC_BLOCK+0x32	/* RW*: Stack Pointer */#define	RISC_HRL	RISC_BLOCK+0x3e	/* R *: Hardware Rev Level */#define	HCCR		RISC_BLOCK+0x40	/* RW : Host Command & Ctrl */#define	BP0		RISC_BLOCK+0x42	/* RW : Processor Brkpt #0 */#define	BP1		RISC_BLOCK+0x44	/* RW : Processor Brkpt #1 */#define	TCR		RISC_BLOCK+0x46	/*  W : Test Control */#define	TMR		RISC_BLOCK+0x48	/*  W : Test Mode */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -