xref: /netbsd/sys/arch/sgimips/dev/imcreg.h (revision bf9ec67e)
1 /*	$NetBSD: imcreg.h,v 1.2 2002/03/13 13:12:26 simonb Exp $	*/
2 
3 /*
4  * Copyright (c) 2001 Rafal K. Boni
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  * 3. The name of the author may not be used to endorse or promote products
16  *    derived from this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 #ifndef _ARCH_SGIMIPS_DEV_IMCREG_H_
31 #define	_ARCH_SGIMIPS_DEV_IMCREG_H_
32 
33 #define IMC_CPUCTRL0		0x1fa00004	/* CPU control, register 0 */
34 
35 #define IMC_CPUCTRL0_REFMASK	0x0000000f	/* # lines to refresh */
36 #define IMC_CPUCTRL0_RFE	0x00000010	/* refresh enable */
37 #define IMC_CPUCTRL0_GPR	0x00000020	/* GIO parity enable */
38 #define IMC_CPUCTRL0_MPR	0x00000040	/* memory parity enable */
39 #define IMC_CPUCTRL0_CPR	0x00000080	/* cpu bus parity enable */
40 #define IMC_CPUCTRL0_WDOG	0x00000100	/* watchdog enable */
41 #define IMC_CPUCTRL0_SIN	0x00000200	/* reset system */
42 #define IMC_CPUCTRL0_GRR	0x00000400	/* graphics reset */
43 #define IMC_CPUCTRL0_ENLOCK	0x00000800	/* enable EISA memory lock */
44 #define IMC_CPUCTRL0_CMDPAR	0x00001000	/* SysCmd parity enable */
45 #define IMC_CPUCTRL0_INTENA	0x00002000	/* enable CPU interrupts */
46 #define IMC_CPUCTRL0_SNOOPENA	0x00004000	/* enable gfx DMA snoop */
47 #define IMC_CPUCTRL0_PROM_WRENA	0x00008000	/* disable buserr on PROM
48 						 * writes */
49 #define IMC_CPUCTRL0_WRST	0x00010000	/* warm restart (reset cpu) */
50 /* Bit 17 reserved		0x00020000	*/
51 #define IMC_CPUCTRL0_LITTLE	0x00040000	/* MC little-endian toggle */
52 #define IMC_CPUCTRL0_WRRST	0x00080000	/* cpu warm reset */
53 #define IMC_CPUCTRL0_MUXHWMSK	0x01f00000	/* MUX fifo high-water mask */
54 #define IMC_CPUCTRL0_BADPAR	0x02000000	/* generate bad parity on
55 						 * CPU->memory writes */
56 #define IMC_CPUCTRL0_NCHKMEMPAR	0x04000000	/* disable CPU parity check
57 						 * on memory reads. */
58 #define IMC_CPUCTRL0_BACK2	0x08000000	/* enable back2back GIO wrt */
59 #define IMC_CPUCTRL0_BUSRTMSK	0xf0000000	/* stall cycle for berr data */
60 
61 #define IMC_CPUCTRL1		0x1fa0000c	/* CPU control, register 1 */
62 #define IMC_CPUCTRL1_MCHWMSK	0x0000000f	/* MC FIFO high water mask */
63 #define IMC_CPUCTRL1_ABORTEN	0x00000010	/* Enable GIO bus timeouts */
64 /* Bits 5 - 11 reserved		0x00000fe0	*/
65 #define IMC_CPUCTRL1_HPCFX	0x00001000	/* HPC endian fix */
66 #define IMC_CPUCTRL1_HPCLITTLE	0x00002000	/* HPC DMA is little-endian */
67 #define IMC_CPUCTRL1_EXP0FX	0x00004000	/* EXP0 endian fix */
68 #define IMC_CPUCTRL1_EXP0LITTLE	0x00008000	/* EXP0 DMA is little-endian */
69 #define IMC_CPUCTRL1_EXP1FX	0x00010000	/* EXP1 endian fix */
70 #define IMC_CPUCTRL1_EXP1LITTLE	0x00020000	/* EXP1 DMA is little-endian */
71 
72 #define IMC_WDOG		0x1fa00014	/* Watchdog counter */
73 #define IMC_WDOG_MASK		0x001fffff	/* counter mask */
74 
75 #define IMC_SYSID		0x1fa0001c	/* MC revision register */
76 #define IMC_SYSID_REVMASK	0x0000000f	/* MC revision mask */
77 #define IMC_SYSID_HAVEISA	0x00000010	/* EISA present */
78 
79 #define IMC_RPSSDIV		0x1fa0002c	/* RPSS divider */
80 #define IMC_RPSSDIV_DIVMSK	0x000000ff	/* RPC divider mask */
81 #define IMC_RPSSDIV_INCMSK	0x0000ff00	/* RPC increment mask */
82 
83 #define IMC_EEPROM		0x1fa00034	/* EEPROM serial interface */
84 /* Bit 1 is reserved		0x00000001	*/
85 #define IMC_EEPROM_CS		0x00000002	/* EEPROM chip select */
86 #define IMC_EEPROM_SCK		0x00000004	/* EEPROM serial clock */
87 #define IMC_EEPROM_SO		0x00000008	/* Serial data to EEPROM */
88 #define IMC_EEPROM_SI		0x00000010	/* Serial data from EEPROM */
89 
90 #define IMC_CTRLD		0x1fa00044	/* Refresh counter preload */
91 #define IMC_CTRLD_MSK		0x000000ff	/* Counter preload mask */
92 
93 #define IMC_REFCTR		0x1fa0004c	/* Refresh counter */
94 #define IMC_REFCTR_MSK		0x000000ff	/* Refresh counter mask */
95 
96 #define IMC_GIO64ARB		0x1fa00084	/* GIO64 arbitration params */
97 #define IMC_GIO64ARB_HPC64	0x00000001	/* HPC addr size (32/64bit) */
98 #define IMC_GIO64ARB_GRX64	0x00000002	/* Gfx addr size (32/64bit) */
99 #define IMC_GIO64ARB_EXP064	0x00000004	/* EXP0 addr size (32/64bit) */
100 #define IMC_GIO64ARB_EXP164	0x00000008	/* EXP0 addr size (32/64bit) */
101 #define IMC_GIO64ARB_EISA64	0x00000010	/* EISA addr size (32/64bit) */
102 #define IMC_GIO64ARB_HPCEXP64	0x00000020	/* HPC2 addr size (32/64bit) */
103 #define IMC_GIO64ARB_GRXRT	0x00000040	/* Gfx is realtime device */
104 #define IMC_GIO64ARB_EXP0RT	0x00000080	/* EXP0 is realtime device */
105 #define IMC_GIO64ARB_EXP1RT	0x00000100	/* EXP1 is realtime device */
106 #define IMC_GIO64ARB_EISAMST	0x00000200	/* EISA can be busmaster */
107 #define IMC_GIO64ARB_ONEGIO	0x00000400	/* One one GIO64 bus */
108 #define IMC_GIO64ARB_GRXMST	0x00000800	/* Gfx can be busmaster */
109 #define IMC_GIO64ARB_EXP0MST	0x00001000	/* EXP0 can be busmaster */
110 #define IMC_GIO64ARB_EXP1MST	0x00002000	/* EXP1 can be busmaster */
111 #define IMC_GIO64ARB_EXP0PIPE	0x00004000	/* EXP0 is pipelined */
112 #define IMC_GIO64ARB_EXP1PIPE	0x00008000	/* EXP1 is pipelined */
113 
114 #define IMC_CPUTIME		0x1fa0008c	/* Arbiter CPU time period */
115 
116 #define IMC_LBTIME		0x1fa0009c	/* Arbiter long-burst time */
117 
118 #define IMC_MEMCFG0		0x1fa000c4	/* Mem config, regsiter 0 */
119 
120 #define IMC_MEMCFG1		0x1fa000cc	/* Mem config, regsiter 1 */
121 
122 #define IMC_CPU_MEMACC		0x1fa000d4	/* CPU mem access config */
123 
124 #define IMC_GIO_MEMACC		0x1fa000dc	/* GIO mem access config */
125 
126 #define IMC_CPU_ERRADDR		0x1fa000e4	/* CPU error address */
127 
128 #define IMC_CPU_ERRSTAT		0x1fa000ec	/* CPU error status */
129 
130 #define IMC_GIO_ERRADDR		0x1fa000f4	/* GIO error address */
131 
132 #define IMC_GIO_ERRSTAT		0x1fa000fc	/* GIO error status */
133 
134 #endif	/* _ARCH_SGIMIPS_DEV_IMCREG_H_ */
135 
136