diff options
Diffstat (limited to 'arch/mips/netlogic/common/smpboot.S')
-rw-r--r-- | arch/mips/netlogic/common/smpboot.S | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/mips/netlogic/common/smpboot.S b/arch/mips/netlogic/common/smpboot.S index 8597657c27fc..805355b0bd05 100644 --- a/arch/mips/netlogic/common/smpboot.S +++ b/arch/mips/netlogic/common/smpboot.S | |||
@@ -54,8 +54,9 @@ | |||
54 | .set noat | 54 | .set noat |
55 | .set arch=xlr /* for mfcr/mtcr, XLR is sufficient */ | 55 | .set arch=xlr /* for mfcr/mtcr, XLR is sufficient */ |
56 | 56 | ||
57 | FEXPORT(xlp_boot_core0_siblings) /* "Master" cpu starts from here */ | 57 | /* Called by the boot cpu to wake up its sibling threads */ |
58 | dmtc0 sp, $4, 2 /* SP saved in UserLocal */ | 58 | NESTED(xlp_boot_core0_siblings, PT_SIZE, sp) |
59 | /* CPU register contents lost when enabling threads, save them first */ | ||
59 | SAVE_ALL | 60 | SAVE_ALL |
60 | sync | 61 | sync |
61 | /* find the location to which nlm_boot_siblings was relocated */ | 62 | /* find the location to which nlm_boot_siblings was relocated */ |
@@ -65,9 +66,12 @@ FEXPORT(xlp_boot_core0_siblings) /* "Master" cpu starts from here */ | |||
65 | dsubu t2, t1 | 66 | dsubu t2, t1 |
66 | daddu t2, t0 | 67 | daddu t2, t0 |
67 | /* call it */ | 68 | /* call it */ |
68 | jr t2 | 69 | jalr t2 |
69 | nop | 70 | nop |
70 | /* not reached */ | 71 | RESTORE_ALL |
72 | jr ra | ||
73 | nop | ||
74 | END(xlp_boot_core0_siblings) | ||
71 | 75 | ||
72 | NESTED(nlm_boot_secondary_cpus, 16, sp) | 76 | NESTED(nlm_boot_secondary_cpus, 16, sp) |
73 | /* Initialize CP0 Status */ | 77 | /* Initialize CP0 Status */ |