diff options
Diffstat (limited to 'arch/mips/include/asm/netlogic/common.h')
| -rw-r--r-- | arch/mips/include/asm/netlogic/common.h | 26 | 
1 files changed, 23 insertions, 3 deletions
diff --git a/arch/mips/include/asm/netlogic/common.h b/arch/mips/include/asm/netlogic/common.h index e5bdf8c529f..fdd2f44c7b5 100644 --- a/arch/mips/include/asm/netlogic/common.h +++ b/arch/mips/include/asm/netlogic/common.h @@ -38,19 +38,39 @@  /*   * Common SMP definitions   */ +#define	RESET_VEC_PHYS		0x1fc00000 +#define	RESET_DATA_PHYS		(RESET_VEC_PHYS + (1<<10)) +#define	BOOT_THREAD_MODE	0 +#define	BOOT_NMI_LOCK		4 +#define	BOOT_NMI_HANDLER	8 + +#ifndef __ASSEMBLY__  struct irq_desc;  extern struct plat_smp_ops nlm_smp_ops;  extern char nlm_reset_entry[], nlm_reset_entry_end[];  void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc);  void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc);  void nlm_smp_irq_init(void); -void prom_pre_boot_secondary_cpus(void); +void nlm_boot_secondary_cpus(void);  int nlm_wakeup_secondary_cpus(u32 wakeup_mask); -void nlm_boot_smp_nmi(void); +void nlm_rmiboot_preboot(void); + +static inline void +nlm_set_nmi_handler(void *handler) +{ +	char *reset_data; + +	reset_data = (char *)CKSEG1ADDR(RESET_DATA_PHYS); +	*(int64_t *)(reset_data + BOOT_NMI_HANDLER) = (long)handler; +}  /*   * Misc.   */ +unsigned int nlm_get_cpu_frequency(void); +  extern unsigned long nlm_common_ebase; -unsigned int	 nlm_get_cpu_frequency(void); +extern int nlm_threads_per_core; +extern uint32_t nlm_cpumask, nlm_coremask; +#endif  #endif /* _NETLOGIC_COMMON_H_ */  |