diff options
Diffstat (limited to 'arch/mips/include/asm/netlogic')
-rw-r--r-- | arch/mips/include/asm/netlogic/common.h | 42 | ||||
-rw-r--r-- | arch/mips/include/asm/netlogic/mips-extns.h | 5 | ||||
-rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/pic.h | 1 | ||||
-rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/sys.h | 1 | ||||
-rw-r--r-- | arch/mips/include/asm/netlogic/xlr/pic.h | 2 |
5 files changed, 42 insertions, 9 deletions
diff --git a/arch/mips/include/asm/netlogic/common.h b/arch/mips/include/asm/netlogic/common.h index fd735bcac3e6..2eb39fa02586 100644 --- a/arch/mips/include/asm/netlogic/common.h +++ b/arch/mips/include/asm/netlogic/common.h | |||
@@ -46,10 +46,10 @@ | |||
46 | 46 | ||
47 | #ifndef __ASSEMBLY__ | 47 | #ifndef __ASSEMBLY__ |
48 | #include <linux/cpumask.h> | 48 | #include <linux/cpumask.h> |
49 | #include <linux/spinlock.h> | ||
50 | #include <asm/irq.h> | ||
49 | 51 | ||
50 | struct irq_desc; | 52 | struct irq_desc; |
51 | extern struct plat_smp_ops nlm_smp_ops; | ||
52 | extern char nlm_reset_entry[], nlm_reset_entry_end[]; | ||
53 | void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc); | 53 | void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc); |
54 | void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc); | 54 | void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc); |
55 | void nlm_smp_irq_init(void); | 55 | void nlm_smp_irq_init(void); |
@@ -70,10 +70,42 @@ nlm_set_nmi_handler(void *handler) | |||
70 | * Misc. | 70 | * Misc. |
71 | */ | 71 | */ |
72 | unsigned int nlm_get_cpu_frequency(void); | 72 | unsigned int nlm_get_cpu_frequency(void); |
73 | void nlm_node_init(int node); | ||
74 | extern struct plat_smp_ops nlm_smp_ops; | ||
75 | extern char nlm_reset_entry[], nlm_reset_entry_end[]; | ||
73 | 76 | ||
74 | extern unsigned long nlm_common_ebase; | 77 | extern unsigned int nlm_threads_per_core; |
75 | extern int nlm_threads_per_core; | ||
76 | extern uint32_t nlm_coremask; | ||
77 | extern cpumask_t nlm_cpumask; | 78 | extern cpumask_t nlm_cpumask; |
79 | |||
80 | struct nlm_soc_info { | ||
81 | unsigned long coremask; /* cores enabled on the soc */ | ||
82 | unsigned long ebase; | ||
83 | uint64_t irqmask; | ||
84 | uint64_t sysbase; /* only for XLP */ | ||
85 | uint64_t picbase; | ||
86 | spinlock_t piclock; | ||
87 | }; | ||
88 | |||
89 | #define NLM_CORES_PER_NODE 8 | ||
90 | #define NLM_THREADS_PER_CORE 4 | ||
91 | #define NLM_CPUS_PER_NODE (NLM_CORES_PER_NODE * NLM_THREADS_PER_CORE) | ||
92 | #define nlm_get_node(i) (&nlm_nodes[i]) | ||
93 | #define NLM_NR_NODES 1 | ||
94 | #define nlm_current_node() (&nlm_nodes[0]) | ||
95 | |||
96 | struct irq_data; | ||
97 | uint64_t nlm_pci_irqmask(int node); | ||
98 | void nlm_set_pic_extra_ack(int node, int irq, void (*xack)(struct irq_data *)); | ||
99 | |||
100 | /* | ||
101 | * The NR_IRQs is divided between nodes, each of them has a separate irq space | ||
102 | */ | ||
103 | static inline int nlm_irq_to_xirq(int node, int irq) | ||
104 | { | ||
105 | return node * NR_IRQS / NLM_NR_NODES + irq; | ||
106 | } | ||
107 | |||
108 | extern struct nlm_soc_info nlm_nodes[NLM_NR_NODES]; | ||
109 | extern int nlm_cpu_ready[]; | ||
78 | #endif | 110 | #endif |
79 | #endif /* _NETLOGIC_COMMON_H_ */ | 111 | #endif /* _NETLOGIC_COMMON_H_ */ |
diff --git a/arch/mips/include/asm/netlogic/mips-extns.h b/arch/mips/include/asm/netlogic/mips-extns.h index 8c53d0ba4bf2..c9f6de53d410 100644 --- a/arch/mips/include/asm/netlogic/mips-extns.h +++ b/arch/mips/include/asm/netlogic/mips-extns.h | |||
@@ -73,4 +73,9 @@ static inline int hard_smp_processor_id(void) | |||
73 | return __read_32bit_c0_register($15, 1) & 0x3ff; | 73 | return __read_32bit_c0_register($15, 1) & 0x3ff; |
74 | } | 74 | } |
75 | 75 | ||
76 | static inline int nlm_nodeid(void) | ||
77 | { | ||
78 | return (__read_32bit_c0_register($15, 1) >> 5) & 0x3; | ||
79 | } | ||
80 | |||
76 | #endif /*_ASM_NLM_MIPS_EXTS_H */ | 81 | #endif /*_ASM_NLM_MIPS_EXTS_H */ |
diff --git a/arch/mips/include/asm/netlogic/xlp-hal/pic.h b/arch/mips/include/asm/netlogic/xlp-hal/pic.h index 061e0710607a..857a967e4530 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/pic.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/pic.h | |||
@@ -381,7 +381,6 @@ nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt) | |||
381 | nlm_pic_write_irt_direct(base, irt, 0, 0, 0, irq, hwt); | 381 | nlm_pic_write_irt_direct(base, irt, 0, 0, 0, irq, hwt); |
382 | } | 382 | } |
383 | 383 | ||
384 | extern uint64_t nlm_pic_base; | ||
385 | int nlm_irq_to_irt(int irq); | 384 | int nlm_irq_to_irt(int irq); |
386 | int nlm_irt_to_irq(int irt); | 385 | int nlm_irt_to_irq(int irt); |
387 | 386 | ||
diff --git a/arch/mips/include/asm/netlogic/xlp-hal/sys.h b/arch/mips/include/asm/netlogic/xlp-hal/sys.h index 21432f7d89b9..258e8cc00e99 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/sys.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/sys.h | |||
@@ -124,6 +124,5 @@ | |||
124 | #define nlm_get_sys_pcibase(node) nlm_pcicfg_base(XLP_IO_SYS_OFFSET(node)) | 124 | #define nlm_get_sys_pcibase(node) nlm_pcicfg_base(XLP_IO_SYS_OFFSET(node)) |
125 | #define nlm_get_sys_regbase(node) (nlm_get_sys_pcibase(node) + XLP_IO_PCI_HDRSZ) | 125 | #define nlm_get_sys_regbase(node) (nlm_get_sys_pcibase(node) + XLP_IO_PCI_HDRSZ) |
126 | 126 | ||
127 | extern uint64_t nlm_sys_base; | ||
128 | #endif | 127 | #endif |
129 | #endif | 128 | #endif |
diff --git a/arch/mips/include/asm/netlogic/xlr/pic.h b/arch/mips/include/asm/netlogic/xlr/pic.h index 868013e62f32..9a691b1f91ba 100644 --- a/arch/mips/include/asm/netlogic/xlr/pic.h +++ b/arch/mips/include/asm/netlogic/xlr/pic.h | |||
@@ -258,7 +258,5 @@ nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt) | |||
258 | nlm_write_reg(base, PIC_IRT_1(irt), | 258 | nlm_write_reg(base, PIC_IRT_1(irt), |
259 | (1 << 30) | (1 << 6) | irq); | 259 | (1 << 30) | (1 << 6) | irq); |
260 | } | 260 | } |
261 | |||
262 | extern uint64_t nlm_pic_base; | ||
263 | #endif | 261 | #endif |
264 | #endif /* _ASM_NLM_XLR_PIC_H */ | 262 | #endif /* _ASM_NLM_XLR_PIC_H */ |