diff options
Diffstat (limited to 'arch/mips/include/asm/mach-netlogic/multi-node.h')
| -rw-r--r-- | arch/mips/include/asm/mach-netlogic/multi-node.h | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/arch/mips/include/asm/mach-netlogic/multi-node.h b/arch/mips/include/asm/mach-netlogic/multi-node.h index d62fc773f4d7..9ed8dacdc37c 100644 --- a/arch/mips/include/asm/mach-netlogic/multi-node.h +++ b/arch/mips/include/asm/mach-netlogic/multi-node.h | |||
| @@ -47,8 +47,37 @@ | |||
| 47 | #endif | 47 | #endif |
| 48 | #endif | 48 | #endif |
| 49 | 49 | ||
| 50 | #define NLM_CORES_PER_NODE 8 | ||
| 51 | #define NLM_THREADS_PER_CORE 4 | 50 | #define NLM_THREADS_PER_CORE 4 |
| 52 | #define NLM_CPUS_PER_NODE (NLM_CORES_PER_NODE * NLM_THREADS_PER_CORE) | 51 | #ifdef CONFIG_CPU_XLR |
| 52 | #define nlm_cores_per_node() 8 | ||
| 53 | #else | ||
| 54 | extern unsigned int xlp_cores_per_node; | ||
| 55 | #define nlm_cores_per_node() xlp_cores_per_node | ||
| 56 | #endif | ||
| 57 | |||
| 58 | #define nlm_threads_per_node() (nlm_cores_per_node() * NLM_THREADS_PER_CORE) | ||
| 59 | #define nlm_cpuid_to_node(c) ((c) / nlm_threads_per_node()) | ||
| 60 | |||
| 61 | struct nlm_soc_info { | ||
| 62 | unsigned long coremask; /* cores enabled on the soc */ | ||
| 63 | unsigned long ebase; /* not used now */ | ||
| 64 | uint64_t irqmask; /* EIMR for the node */ | ||
| 65 | uint64_t sysbase; /* only for XLP - sys block base */ | ||
| 66 | uint64_t picbase; /* PIC block base */ | ||
| 67 | spinlock_t piclock; /* lock for PIC access */ | ||
| 68 | cpumask_t cpumask; /* logical cpu mask for node */ | ||
| 69 | unsigned int socbus; | ||
| 70 | }; | ||
| 71 | |||
| 72 | extern struct nlm_soc_info nlm_nodes[NLM_NR_NODES]; | ||
| 73 | #define nlm_get_node(i) (&nlm_nodes[i]) | ||
| 74 | #define nlm_node_present(n) ((n) >= 0 && (n) < NLM_NR_NODES && \ | ||
| 75 | nlm_get_node(n)->coremask != 0) | ||
| 76 | #ifdef CONFIG_CPU_XLR | ||
| 77 | #define nlm_current_node() (&nlm_nodes[0]) | ||
| 78 | #else | ||
| 79 | #define nlm_current_node() (&nlm_nodes[nlm_nodeid()]) | ||
| 80 | #endif | ||
| 81 | void nlm_node_init(int node); | ||
| 53 | 82 | ||
| 54 | #endif | 83 | #endif |
