diff options
Diffstat (limited to 'arch/mips/netlogic/xlp/setup.c')
-rw-r--r-- | arch/mips/netlogic/xlp/setup.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/mips/netlogic/xlp/setup.c b/arch/mips/netlogic/xlp/setup.c index 9f8d360a246e..465b8d60463f 100644 --- a/arch/mips/netlogic/xlp/setup.c +++ b/arch/mips/netlogic/xlp/setup.c | |||
@@ -52,17 +52,17 @@ | |||
52 | #include <asm/netlogic/xlp-hal/xlp.h> | 52 | #include <asm/netlogic/xlp-hal/xlp.h> |
53 | #include <asm/netlogic/xlp-hal/sys.h> | 53 | #include <asm/netlogic/xlp-hal/sys.h> |
54 | 54 | ||
55 | unsigned long nlm_common_ebase = 0x0; | 55 | uint64_t nlm_io_base; |
56 | 56 | struct nlm_soc_info nlm_nodes[NLM_NR_NODES]; | |
57 | /* default to uniprocessor */ | ||
58 | uint32_t nlm_coremask = 1; | ||
59 | cpumask_t nlm_cpumask = CPU_MASK_CPU0; | 57 | cpumask_t nlm_cpumask = CPU_MASK_CPU0; |
60 | int nlm_threads_per_core = 1; | 58 | unsigned int nlm_threads_per_core; |
61 | extern u32 __dtb_start[]; | 59 | extern u32 __dtb_start[]; |
62 | 60 | ||
63 | static void nlm_linux_exit(void) | 61 | static void nlm_linux_exit(void) |
64 | { | 62 | { |
65 | nlm_write_sys_reg(nlm_sys_base, SYS_CHIP_RESET, 1); | 63 | uint64_t sysbase = nlm_get_node(0)->sysbase; |
64 | |||
65 | nlm_write_sys_reg(sysbase, SYS_CHIP_RESET, 1); | ||
66 | for ( ; ; ) | 66 | for ( ; ; ) |
67 | cpu_wait(); | 67 | cpu_wait(); |
68 | } | 68 | } |
@@ -110,10 +110,9 @@ void xlp_mmu_init(void) | |||
110 | 110 | ||
111 | void __init prom_init(void) | 111 | void __init prom_init(void) |
112 | { | 112 | { |
113 | nlm_io_base = CKSEG1ADDR(XLP_DEFAULT_IO_BASE); | ||
113 | xlp_mmu_init(); | 114 | xlp_mmu_init(); |
114 | nlm_hal_init(); | 115 | nlm_node_init(0); |
115 | |||
116 | nlm_common_ebase = read_c0_ebase() & (~((1 << 12) - 1)); | ||
117 | 116 | ||
118 | #ifdef CONFIG_SMP | 117 | #ifdef CONFIG_SMP |
119 | cpumask_setall(&nlm_cpumask); | 118 | cpumask_setall(&nlm_cpumask); |