aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/mach-netlogic/multi-node.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/include/asm/mach-netlogic/multi-node.h')
-rw-r--r--arch/mips/include/asm/mach-netlogic/multi-node.h33
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
54extern 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
61struct 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
72extern 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
81void nlm_node_init(int node);
53 82
54#endif 83#endif