1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License.  See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * sgi.h: Definitions specific to SGI machines.
7 *
8 * Copyright (C) 1996 David S. Miller (dm@sgi.com)
9 */
10#ifndef _ASM_SGI_SGI_H
11#define _ASM_SGI_SGI_H
12
13/* UP=UniProcessor MP=MultiProcessor(capable) */
14enum sgi_mach {
15	ip4,	/* R2k UP */
16	ip5,	/* R2k MP */
17	ip6,	/* R3k UP */
18	ip7,	/* R3k MP */
19	ip9,	/* R3k UP */
20	ip12,	/* R3kA UP, Indigo */
21	ip15,	/* R3kA MP */
22	ip17,	/* R4K UP */
23	ip19,	/* R4K MP */
24	ip20,	/* R4K UP, Indigo */
25	ip21,	/* TFP MP */
26	ip22,	/* R4x00 UP, Indigo2 */
27	ip25,	/* R10k MP */
28	ip26,	/* TFP UP, Indigo2 */
29	ip27,	/* R10k MP, R12k MP, Origin */
30	ip28,	/* R10k UP, Indigo2 */
31	ip30,	/* Octane */
32	ip32,	/* O2 */
33};
34
35extern enum sgi_mach sgimach;
36extern void sgi_sysinit(void);
37
38/* Many I/O space registers are byte sized and are contained within
39 * one byte per word, specifically the MSB, this macro helps out.
40 */
41#ifdef __MIPSEL__
42#define SGI_MSB(regaddr)   (regaddr)
43#else
44#define SGI_MSB(regaddr)   ((regaddr) | 0x3)
45#endif
46
47#endif /* _ASM_SGI_SGI_H */
48