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 */
73