Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm
[linux-2.6] / include / asm-mips / sn / sn0 / arch.h
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 IP27 specific setup.
7  *
8  * Copyright (C) 1995 - 1997, 1999 Silcon Graphics, Inc.
9  * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org)
10  */
11 #ifndef _ASM_SN_SN0_ARCH_H
12 #define _ASM_SN_SN0_ARCH_H
13
14
15 #ifndef SN0XXL  /* 128 cpu SMP max */
16 /*
17  * This is the maximum number of nodes that can be part of a kernel.
18  * Effectively, it's the maximum number of compact node ids (cnodeid_t).
19  */
20 #define MAX_COMPACT_NODES       64
21
22 /*
23  * MAXCPUS refers to the maximum number of CPUs in a single kernel.
24  * This is not necessarily the same as MAXNODES * CPUS_PER_NODE
25  */
26 #define MAXCPUS                 128
27
28 #else /* SN0XXL system */
29
30 #define MAX_COMPACT_NODES       128
31 #define MAXCPUS                 256
32
33 #endif /* SN0XXL */
34
35 /*
36  * This is the maximum number of NASIDS that can be present in a system.
37  * (Highest NASID plus one.)
38  */
39 #define MAX_NASIDS              256
40
41 /*
42  * MAX_REGIONS refers to the maximum number of hardware partitioned regions.
43  */
44 #define MAX_REGIONS             64
45 #define MAX_NONPREMIUM_REGIONS  16
46 #define MAX_PREMIUM_REGIONS     MAX_REGIONS
47
48 /*
49  * MAX_PARITIONS refers to the maximum number of logically defined
50  * partitions the system can support.
51  */
52 #define MAX_PARTITIONS          MAX_REGIONS
53
54 #define NASID_MASK_BYTES        ((MAX_NASIDS + 7) / 8)
55
56 /*
57  * Slot constants for SN0
58  */
59 #ifdef CONFIG_SGI_SN_N_MODE
60 #define MAX_MEM_SLOTS   16                      /* max slots per node */
61 #else /* !CONFIG_SGI_SN_N_MODE, assume CONFIG_SGI_SN_M_MODE */
62 #define MAX_MEM_SLOTS   32                      /* max slots per node */
63 #endif /* CONFIG_SGI_SN_M_MODE */
64
65 #define SLOT_SHIFT              (27)
66 #define SLOT_MIN_MEM_SIZE       (32*1024*1024)
67
68 #define CPUS_PER_NODE           2       /* CPUs on a single hub */
69 #define CPUS_PER_NODE_SHFT      1       /* Bits to shift in the node number */
70 #define CPUS_PER_SUBNODE        2       /* CPUs on a single hub PI */
71
72 #endif /* _ASM_SN_SN0_ARCH_H */