|
|
1.1 root 1: /* @(#)screg.h 1.1 86/02/03 SMI */
2:
3: /*
4: * Copyright (c) 1983 by Sun Microsystems, Inc.
5: */
6:
7: #define HOST_ADDR 0x00 /* 0x80 is right but Sysgen violates spec */
8: #define WAIT_COUNT 250000
9:
10: /*
11: * SCSI Sun host adapter control registers.
12: */
13:
14: struct scsi_ha_reg { /* host adapter (I/O space) registers */
15: u_char data; /* data register */
16: u_char unused;
17: u_char cmd_stat; /* command/status register */
18: u_char unused2;
19: u_short icr; /* interface control register */
20: u_short unused3;
21: u_long dma_addr; /* dma base address */
22: u_short dma_count; /* dma count register */
23: u_char unused4;
24: u_char intvec; /* interrupt vector for VMEbus versions */
25: };
26:
27: /*
28: * bits in the interface control register
29: */
30: #define ICR_PARITY_ERROR 0x8000
31: #define ICR_BUS_ERROR 0x4000
32: #define ICR_ODD_LENGTH 0x2000
33: #define ICR_INTERRUPT_REQUEST 0x1000
34: #define ICR_REQUEST 0x0800
35: #define ICR_MESSAGE 0x0400
36: #define ICR_COMMAND_DATA 0x0200 /* command=1, data=0 */
37: #define ICR_INPUT_OUTPUT 0x0100 /* input=1, output=0 */
38: #define ICR_PARITY 0x0080
39: #define ICR_BUSY 0x0040
40: /* Only the following bits may usefully be set by the CPU */
41: #define ICR_SELECT 0x0020
42: #define ICR_RESET 0x0010
43: #define ICR_PARITY_ENABLE 0x0008
44: #define ICR_WORD_MODE 0x0004
45: #define ICR_DMA_ENABLE 0x0002
46: #define ICR_INTERRUPT_ENABLE 0x0001
47:
48: /*
49: * Compound conditions of icr bits message, command/data and input/output.
50: */
51: #define ICR_COMMAND (ICR_COMMAND_DATA)
52: #define ICR_STATUS (ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
53: #define ICR_MESSAGE_IN (ICR_MESSAGE | ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
54: #define ICR_BITS (ICR_MESSAGE | ICR_COMMAND_DATA | ICR_INPUT_OUTPUT)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.