diff options
Diffstat (limited to 'arch/mips/include/asm/sgi/hpc3.h')
-rw-r--r-- | arch/mips/include/asm/sgi/hpc3.h | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/arch/mips/include/asm/sgi/hpc3.h b/arch/mips/include/asm/sgi/hpc3.h index c4729f531919..59920b345942 100644 --- a/arch/mips/include/asm/sgi/hpc3.h +++ b/arch/mips/include/asm/sgi/hpc3.h | |||
@@ -65,39 +65,39 @@ struct hpc3_scsiregs { | |||
65 | u32 _unused0[0x1000/4 - 2]; /* padding */ | 65 | u32 _unused0[0x1000/4 - 2]; /* padding */ |
66 | volatile u32 bcd; /* byte count info */ | 66 | volatile u32 bcd; /* byte count info */ |
67 | #define HPC3_SBCD_BCNTMSK 0x00003fff /* bytes to transfer from/to memory */ | 67 | #define HPC3_SBCD_BCNTMSK 0x00003fff /* bytes to transfer from/to memory */ |
68 | #define HPC3_SBCD_XIE 0x00004000 /* Send IRQ when done with cur buf */ | 68 | #define HPC3_SBCD_XIE 0x00004000 /* Send IRQ when done with cur buf */ |
69 | #define HPC3_SBCD_EOX 0x00008000 /* Indicates this is last buf in chain */ | 69 | #define HPC3_SBCD_EOX 0x00008000 /* Indicates this is last buf in chain */ |
70 | 70 | ||
71 | volatile u32 ctrl; /* control register */ | 71 | volatile u32 ctrl; /* control register */ |
72 | #define HPC3_SCTRL_IRQ 0x01 /* IRQ asserted, either dma done or parity */ | 72 | #define HPC3_SCTRL_IRQ 0x01 /* IRQ asserted, either dma done or parity */ |
73 | #define HPC3_SCTRL_ENDIAN 0x02 /* DMA endian mode, 0=big 1=little */ | 73 | #define HPC3_SCTRL_ENDIAN 0x02 /* DMA endian mode, 0=big 1=little */ |
74 | #define HPC3_SCTRL_DIR 0x04 /* DMA direction, 1=dev2mem 0=mem2dev */ | 74 | #define HPC3_SCTRL_DIR 0x04 /* DMA direction, 1=dev2mem 0=mem2dev */ |
75 | #define HPC3_SCTRL_FLUSH 0x08 /* Tells HPC3 to flush scsi fifos */ | 75 | #define HPC3_SCTRL_FLUSH 0x08 /* Tells HPC3 to flush scsi fifos */ |
76 | #define HPC3_SCTRL_ACTIVE 0x10 /* SCSI DMA channel is active */ | 76 | #define HPC3_SCTRL_ACTIVE 0x10 /* SCSI DMA channel is active */ |
77 | #define HPC3_SCTRL_AMASK 0x20 /* DMA active inhibits PIO */ | 77 | #define HPC3_SCTRL_AMASK 0x20 /* DMA active inhibits PIO */ |
78 | #define HPC3_SCTRL_CRESET 0x40 /* Resets dma channel and external controller */ | 78 | #define HPC3_SCTRL_CRESET 0x40 /* Resets dma channel and external controller */ |
79 | #define HPC3_SCTRL_PERR 0x80 /* Bad parity on HPC3 iface to scsi controller */ | 79 | #define HPC3_SCTRL_PERR 0x80 /* Bad parity on HPC3 iface to scsi controller */ |
80 | 80 | ||
81 | volatile u32 gfptr; /* current GIO fifo ptr */ | 81 | volatile u32 gfptr; /* current GIO fifo ptr */ |
82 | volatile u32 dfptr; /* current device fifo ptr */ | 82 | volatile u32 dfptr; /* current device fifo ptr */ |
83 | volatile u32 dconfig; /* DMA configuration register */ | 83 | volatile u32 dconfig; /* DMA configuration register */ |
84 | #define HPC3_SDCFG_HCLK 0x00001 /* Enable DMA half clock mode */ | 84 | #define HPC3_SDCFG_HCLK 0x00001 /* Enable DMA half clock mode */ |
85 | #define HPC3_SDCFG_D1 0x00006 /* Cycles to spend in D1 state */ | 85 | #define HPC3_SDCFG_D1 0x00006 /* Cycles to spend in D1 state */ |
86 | #define HPC3_SDCFG_D2 0x00038 /* Cycles to spend in D2 state */ | 86 | #define HPC3_SDCFG_D2 0x00038 /* Cycles to spend in D2 state */ |
87 | #define HPC3_SDCFG_D3 0x001c0 /* Cycles to spend in D3 state */ | 87 | #define HPC3_SDCFG_D3 0x001c0 /* Cycles to spend in D3 state */ |
88 | #define HPC3_SDCFG_HWAT 0x00e00 /* DMA high water mark */ | 88 | #define HPC3_SDCFG_HWAT 0x00e00 /* DMA high water mark */ |
89 | #define HPC3_SDCFG_HW 0x01000 /* Enable 16-bit halfword DMA accesses to scsi */ | 89 | #define HPC3_SDCFG_HW 0x01000 /* Enable 16-bit halfword DMA accesses to scsi */ |
90 | #define HPC3_SDCFG_SWAP 0x02000 /* Byte swap all DMA accesses */ | 90 | #define HPC3_SDCFG_SWAP 0x02000 /* Byte swap all DMA accesses */ |
91 | #define HPC3_SDCFG_EPAR 0x04000 /* Enable parity checking for DMA */ | 91 | #define HPC3_SDCFG_EPAR 0x04000 /* Enable parity checking for DMA */ |
92 | #define HPC3_SDCFG_POLL 0x08000 /* hd_dreq polarity control */ | 92 | #define HPC3_SDCFG_POLL 0x08000 /* hd_dreq polarity control */ |
93 | #define HPC3_SDCFG_ERLY 0x30000 /* hd_dreq behavior control bits */ | 93 | #define HPC3_SDCFG_ERLY 0x30000 /* hd_dreq behavior control bits */ |
94 | 94 | ||
95 | volatile u32 pconfig; /* PIO configuration register */ | 95 | volatile u32 pconfig; /* PIO configuration register */ |
96 | #define HPC3_SPCFG_P3 0x0003 /* Cycles to spend in P3 state */ | 96 | #define HPC3_SPCFG_P3 0x0003 /* Cycles to spend in P3 state */ |
97 | #define HPC3_SPCFG_P2W 0x001c /* Cycles to spend in P2 state for writes */ | 97 | #define HPC3_SPCFG_P2W 0x001c /* Cycles to spend in P2 state for writes */ |
98 | #define HPC3_SPCFG_P2R 0x01e0 /* Cycles to spend in P2 state for reads */ | 98 | #define HPC3_SPCFG_P2R 0x01e0 /* Cycles to spend in P2 state for reads */ |
99 | #define HPC3_SPCFG_P1 0x0e00 /* Cycles to spend in P1 state */ | 99 | #define HPC3_SPCFG_P1 0x0e00 /* Cycles to spend in P1 state */ |
100 | #define HPC3_SPCFG_HW 0x1000 /* Enable 16-bit halfword PIO accesses to scsi */ | 100 | #define HPC3_SPCFG_HW 0x1000 /* Enable 16-bit halfword PIO accesses to scsi */ |
101 | #define HPC3_SPCFG_SWAP 0x2000 /* Byte swap all PIO accesses */ | 101 | #define HPC3_SPCFG_SWAP 0x2000 /* Byte swap all PIO accesses */ |
102 | #define HPC3_SPCFG_EPAR 0x4000 /* Enable parity checking for PIO */ | 102 | #define HPC3_SPCFG_EPAR 0x4000 /* Enable parity checking for PIO */ |
103 | #define HPC3_SPCFG_FUJI 0x8000 /* Fujitsu scsi controller mode for faster dma/pio */ | 103 | #define HPC3_SPCFG_FUJI 0x8000 /* Fujitsu scsi controller mode for faster dma/pio */ |
@@ -108,13 +108,13 @@ struct hpc3_scsiregs { | |||
108 | /* SEEQ ethernet HPC3 registers, only one seeq per HPC3. */ | 108 | /* SEEQ ethernet HPC3 registers, only one seeq per HPC3. */ |
109 | struct hpc3_ethregs { | 109 | struct hpc3_ethregs { |
110 | /* Receiver registers. */ | 110 | /* Receiver registers. */ |
111 | volatile u32 rx_cbptr; /* current dma buffer ptr, diagnostic use only */ | 111 | volatile u32 rx_cbptr; /* current dma buffer ptr, diagnostic use only */ |
112 | volatile u32 rx_ndptr; /* next dma descriptor ptr */ | 112 | volatile u32 rx_ndptr; /* next dma descriptor ptr */ |
113 | u32 _unused0[0x1000/4 - 2]; /* padding */ | 113 | u32 _unused0[0x1000/4 - 2]; /* padding */ |
114 | volatile u32 rx_bcd; /* byte count info */ | 114 | volatile u32 rx_bcd; /* byte count info */ |
115 | #define HPC3_ERXBCD_BCNTMSK 0x00003fff /* bytes to be sent to memory */ | 115 | #define HPC3_ERXBCD_BCNTMSK 0x00003fff /* bytes to be sent to memory */ |
116 | #define HPC3_ERXBCD_XIE 0x20000000 /* HPC3 interrupts cpu at end of this buf */ | 116 | #define HPC3_ERXBCD_XIE 0x20000000 /* HPC3 interrupts cpu at end of this buf */ |
117 | #define HPC3_ERXBCD_EOX 0x80000000 /* flags this as end of descriptor chain */ | 117 | #define HPC3_ERXBCD_EOX 0x80000000 /* flags this as end of descriptor chain */ |
118 | 118 | ||
119 | volatile u32 rx_ctrl; /* control register */ | 119 | volatile u32 rx_ctrl; /* control register */ |
120 | #define HPC3_ERXCTRL_STAT50 0x0000003f /* Receive status reg bits of Seeq8003 */ | 120 | #define HPC3_ERXCTRL_STAT50 0x0000003f /* Receive status reg bits of Seeq8003 */ |
@@ -131,23 +131,23 @@ struct hpc3_ethregs { | |||
131 | volatile u32 reset; /* reset register */ | 131 | volatile u32 reset; /* reset register */ |
132 | #define HPC3_ERST_CRESET 0x1 /* Reset dma channel and external controller */ | 132 | #define HPC3_ERST_CRESET 0x1 /* Reset dma channel and external controller */ |
133 | #define HPC3_ERST_CLRIRQ 0x2 /* Clear channel interrupt */ | 133 | #define HPC3_ERST_CLRIRQ 0x2 /* Clear channel interrupt */ |
134 | #define HPC3_ERST_LBACK 0x4 /* Enable diagnostic loopback mode of Seeq8003 */ | 134 | #define HPC3_ERST_LBACK 0x4 /* Enable diagnostic loopback mode of Seeq8003 */ |
135 | 135 | ||
136 | volatile u32 dconfig; /* DMA configuration register */ | 136 | volatile u32 dconfig; /* DMA configuration register */ |
137 | #define HPC3_EDCFG_D1 0x0000f /* Cycles to spend in D1 state for PIO */ | 137 | #define HPC3_EDCFG_D1 0x0000f /* Cycles to spend in D1 state for PIO */ |
138 | #define HPC3_EDCFG_D2 0x000f0 /* Cycles to spend in D2 state for PIO */ | 138 | #define HPC3_EDCFG_D2 0x000f0 /* Cycles to spend in D2 state for PIO */ |
139 | #define HPC3_EDCFG_D3 0x00f00 /* Cycles to spend in D3 state for PIO */ | 139 | #define HPC3_EDCFG_D3 0x00f00 /* Cycles to spend in D3 state for PIO */ |
140 | #define HPC3_EDCFG_WCTRL 0x01000 /* Enable writes of desc into ex ctrl port */ | 140 | #define HPC3_EDCFG_WCTRL 0x01000 /* Enable writes of desc into ex ctrl port */ |
141 | #define HPC3_EDCFG_FRXDC 0x02000 /* Clear eop stat bits upon rxdc, hw seeq fix */ | 141 | #define HPC3_EDCFG_FRXDC 0x02000 /* Clear eop stat bits upon rxdc, hw seeq fix */ |
142 | #define HPC3_EDCFG_FEOP 0x04000 /* Bad packet marker timeout enable */ | 142 | #define HPC3_EDCFG_FEOP 0x04000 /* Bad packet marker timeout enable */ |
143 | #define HPC3_EDCFG_FIRQ 0x08000 /* Another bad packet timeout enable */ | 143 | #define HPC3_EDCFG_FIRQ 0x08000 /* Another bad packet timeout enable */ |
144 | #define HPC3_EDCFG_PTO 0x30000 /* Programmed timeout value for above two */ | 144 | #define HPC3_EDCFG_PTO 0x30000 /* Programmed timeout value for above two */ |
145 | 145 | ||
146 | volatile u32 pconfig; /* PIO configuration register */ | 146 | volatile u32 pconfig; /* PIO configuration register */ |
147 | #define HPC3_EPCFG_P1 0x000f /* Cycles to spend in P1 state for PIO */ | 147 | #define HPC3_EPCFG_P1 0x000f /* Cycles to spend in P1 state for PIO */ |
148 | #define HPC3_EPCFG_P2 0x00f0 /* Cycles to spend in P2 state for PIO */ | 148 | #define HPC3_EPCFG_P2 0x00f0 /* Cycles to spend in P2 state for PIO */ |
149 | #define HPC3_EPCFG_P3 0x0f00 /* Cycles to spend in P3 state for PIO */ | 149 | #define HPC3_EPCFG_P3 0x0f00 /* Cycles to spend in P3 state for PIO */ |
150 | #define HPC3_EPCFG_TST 0x1000 /* Diagnistic ram test feature bit */ | 150 | #define HPC3_EPCFG_TST 0x1000 /* Diagnistic ram test feature bit */ |
151 | 151 | ||
152 | u32 _unused2[0x1000/4 - 8]; /* padding */ | 152 | u32 _unused2[0x1000/4 - 8]; /* padding */ |
153 | 153 | ||
@@ -158,9 +158,9 @@ struct hpc3_ethregs { | |||
158 | volatile u32 tx_bcd; /* byte count info */ | 158 | volatile u32 tx_bcd; /* byte count info */ |
159 | #define HPC3_ETXBCD_BCNTMSK 0x00003fff /* bytes to be read from memory */ | 159 | #define HPC3_ETXBCD_BCNTMSK 0x00003fff /* bytes to be read from memory */ |
160 | #define HPC3_ETXBCD_ESAMP 0x10000000 /* if set, too late to add descriptor */ | 160 | #define HPC3_ETXBCD_ESAMP 0x10000000 /* if set, too late to add descriptor */ |
161 | #define HPC3_ETXBCD_XIE 0x20000000 /* Interrupt cpu at end of cur desc */ | 161 | #define HPC3_ETXBCD_XIE 0x20000000 /* Interrupt cpu at end of cur desc */ |
162 | #define HPC3_ETXBCD_EOP 0x40000000 /* Last byte of cur buf is end of packet */ | 162 | #define HPC3_ETXBCD_EOP 0x40000000 /* Last byte of cur buf is end of packet */ |
163 | #define HPC3_ETXBCD_EOX 0x80000000 /* This buf is the end of desc chain */ | 163 | #define HPC3_ETXBCD_EOX 0x80000000 /* This buf is the end of desc chain */ |
164 | 164 | ||
165 | volatile u32 tx_ctrl; /* control register */ | 165 | volatile u32 tx_ctrl; /* control register */ |
166 | #define HPC3_ETXCTRL_STAT30 0x0000000f /* Rdonly copy of seeq tx stat reg */ | 166 | #define HPC3_ETXCTRL_STAT30 0x0000000f /* Rdonly copy of seeq tx stat reg */ |
@@ -215,10 +215,10 @@ struct hpc3_regs { | |||
215 | 215 | ||
216 | volatile u32 istat1; /* Irq status, only bits <9:5> reliable. */ | 216 | volatile u32 istat1; /* Irq status, only bits <9:5> reliable. */ |
217 | volatile u32 bestat; /* Bus error interrupt status reg. */ | 217 | volatile u32 bestat; /* Bus error interrupt status reg. */ |
218 | #define HPC3_BESTAT_BLMASK 0x000ff /* Bus lane where bad parity occurred */ | 218 | #define HPC3_BESTAT_BLMASK 0x000ff /* Bus lane where bad parity occurred */ |
219 | #define HPC3_BESTAT_CTYPE 0x00100 /* Bus cycle type, 0=PIO 1=DMA */ | 219 | #define HPC3_BESTAT_CTYPE 0x00100 /* Bus cycle type, 0=PIO 1=DMA */ |
220 | #define HPC3_BESTAT_PIDSHIFT 9 | 220 | #define HPC3_BESTAT_PIDSHIFT 9 |
221 | #define HPC3_BESTAT_PIDMASK 0x3f700 /* DMA channel parity identifier */ | 221 | #define HPC3_BESTAT_PIDMASK 0x3f700 /* DMA channel parity identifier */ |
222 | 222 | ||
223 | u32 _unused1[0x14000/4 - 5]; /* padding */ | 223 | u32 _unused1[0x14000/4 - 5]; /* padding */ |
224 | 224 | ||
@@ -259,7 +259,7 @@ struct hpc3_regs { | |||
259 | #define HPC3_DMACFG_RTIME 0x00200000 | 259 | #define HPC3_DMACFG_RTIME 0x00200000 |
260 | /* 5 bit burst count for DMA device */ | 260 | /* 5 bit burst count for DMA device */ |
261 | #define HPC3_DMACFG_BURST_MASK 0x07c00000 | 261 | #define HPC3_DMACFG_BURST_MASK 0x07c00000 |
262 | #define HPC3_DMACFG_BURST_SHIFT 22 | 262 | #define HPC3_DMACFG_BURST_SHIFT 22 |
263 | /* Use live pbus_dreq unsynchronized signal */ | 263 | /* Use live pbus_dreq unsynchronized signal */ |
264 | #define HPC3_DMACFG_DRQLIVE 0x08000000 | 264 | #define HPC3_DMACFG_DRQLIVE 0x08000000 |
265 | volatile u32 pbus_piocfg[16][64]; | 265 | volatile u32 pbus_piocfg[16][64]; |
@@ -288,20 +288,20 @@ struct hpc3_regs { | |||
288 | 288 | ||
289 | /* PBUS PROM control regs. */ | 289 | /* PBUS PROM control regs. */ |
290 | volatile u32 pbus_promwe; /* PROM write enable register */ | 290 | volatile u32 pbus_promwe; /* PROM write enable register */ |
291 | #define HPC3_PROM_WENAB 0x1 /* Enable writes to the PROM */ | 291 | #define HPC3_PROM_WENAB 0x1 /* Enable writes to the PROM */ |
292 | 292 | ||
293 | u32 _unused5[0x0800/4 - 1]; | 293 | u32 _unused5[0x0800/4 - 1]; |
294 | volatile u32 pbus_promswap; /* Chip select swap reg */ | 294 | volatile u32 pbus_promswap; /* Chip select swap reg */ |
295 | #define HPC3_PROM_SWAP 0x1 /* invert GIO addr bit to select prom0 or prom1 */ | 295 | #define HPC3_PROM_SWAP 0x1 /* invert GIO addr bit to select prom0 or prom1 */ |
296 | 296 | ||
297 | u32 _unused6[0x0800/4 - 1]; | 297 | u32 _unused6[0x0800/4 - 1]; |
298 | volatile u32 pbus_gout; /* PROM general purpose output reg */ | 298 | volatile u32 pbus_gout; /* PROM general purpose output reg */ |
299 | #define HPC3_PROM_STAT 0x1 /* General purpose status bit in gout */ | 299 | #define HPC3_PROM_STAT 0x1 /* General purpose status bit in gout */ |
300 | 300 | ||
301 | u32 _unused7[0x1000/4 - 1]; | 301 | u32 _unused7[0x1000/4 - 1]; |
302 | volatile u32 rtcregs[14]; /* Dallas clock registers */ | 302 | volatile u32 rtcregs[14]; /* Dallas clock registers */ |
303 | u32 _unused8[50]; | 303 | u32 _unused8[50]; |
304 | volatile u32 bbram[8192-50-14]; /* Battery backed ram */ | 304 | volatile u32 bbram[8192-50-14]; /* Battery backed ram */ |
305 | }; | 305 | }; |
306 | 306 | ||
307 | /* | 307 | /* |