arch.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id$
  2.  *
  3.  * This file is subject to the terms and conditions of the GNU General Public
  4.  * License.  See the file "COPYING" in the main directory of this archive
  5.  * for more details.
  6.  *
  7.  * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc.
  8.  * Copyright (C) 2000 by Colin Ngam
  9.  */
  10. #ifndef _ASM_SN_SN1_ARCH_H
  11. #define _ASM_SN_SN1_ARCH_H
  12. #if defined(N_MODE)
  13. #error "ERROR constants defined only for M-mode"
  14. #endif
  15. /*
  16.  * This is the maximum number of NASIDS that can be present in a system.
  17.  * (Highest NASID plus one.)
  18.  */
  19. #define MAX_NASIDS              128
  20. /*
  21.  * MAXCPUS refers to the maximum number of CPUs in a single kernel.
  22.  * This is not necessarily the same as MAXNODES * CPUS_PER_NODE
  23.  */
  24. #define MAXCPUS                 512
  25. /*
  26.  * This is the maximum number of nodes that can be part of a kernel.
  27.  * Effectively, it's the maximum number of compact node ids (cnodeid_t).
  28.  * This is not necessarily the same as MAX_NASIDS.
  29.  */
  30. #define MAX_COMPACT_NODES       128
  31. /*
  32.  * MAX_REGIONS refers to the maximum number of hardware partitioned regions.
  33.  */
  34. #define MAX_REGIONS 64
  35. #define MAX_NONPREMIUM_REGIONS  16
  36. #define MAX_PREMIUM_REGIONS     MAX_REGIONS
  37. /*
  38.  * MAX_PARITIONS refers to the maximum number of logically defined 
  39.  * partitions the system can support.
  40.  */
  41. #define MAX_PARTITIONS MAX_REGIONS
  42. #define NASID_MASK_BYTES ((MAX_NASIDS + 7) / 8)
  43. /*
  44.  * Slot constants for IP35
  45.  */
  46. #define MAX_MEM_SLOTS    8                     /* max slots per node */
  47. #if defined(N_MODE)
  48. #error "N-mode not supported"
  49. #endif
  50. #define SLOT_SHIFT       (30)
  51. #define SLOT_MIN_MEM_SIZE (64*1024*1024)
  52. /*
  53.  * two PIs per bedrock, two CPUs per PI
  54.  */
  55. #define NUM_SUBNODES 2
  56. #define SUBNODE_SHFT 1
  57. #define SUBNODE_MASK (0x1 << SUBNODE_SHFT)
  58. #define LOCALCPU_SHFT 0
  59. #define LOCALCPU_MASK (0x1 << LOCALCPU_SHFT)
  60. #define SUBNODE(slice) (((slice) & SUBNODE_MASK) >> SUBNODE_SHFT)
  61. #define LOCALCPU(slice) (((slice) & LOCALCPU_MASK) >> LOCALCPU_SHFT)
  62. #define TO_SLICE(subn, local) (((subn) << SUBNODE_SHFT) | 
  63.  ((local) << LOCALCPU_SHFT))
  64. #endif /* _ASM_SN_SN1_ARCH_H */