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 |