diff options
Diffstat (limited to 'arch/mn10300/boot/compressed')
-rw-r--r-- | arch/mn10300/boot/compressed/head.S | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/arch/mn10300/boot/compressed/head.S b/arch/mn10300/boot/compressed/head.S index 4ef608a62416..7b50345b9e84 100644 --- a/arch/mn10300/boot/compressed/head.S +++ b/arch/mn10300/boot/compressed/head.S | |||
@@ -15,10 +15,28 @@ | |||
15 | #include <linux/linkage.h> | 15 | #include <linux/linkage.h> |
16 | #include <asm/cpu-regs.h> | 16 | #include <asm/cpu-regs.h> |
17 | #include <asm/cache.h> | 17 | #include <asm/cache.h> |
18 | #ifdef CONFIG_SMP | ||
19 | #include <proc/smp-regs.h> | ||
20 | #endif | ||
18 | 21 | ||
19 | .globl startup_32 | 22 | .globl startup_32 |
20 | startup_32: | 23 | startup_32: |
21 | # first save off parameters from bootloader | 24 | #ifdef CONFIG_SMP |
25 | # | ||
26 | # Secondary CPUs jump directly to the kernel entry point | ||
27 | # | ||
28 | # Must save primary CPU's D0-D2 registers as they hold boot parameters | ||
29 | # | ||
30 | mov (CPUID), d3 | ||
31 | and CPUID_MASK,d3 | ||
32 | beq startup_primary | ||
33 | mov CONFIG_KERNEL_TEXT_ADDRESS,a0 | ||
34 | jmp (a0) | ||
35 | |||
36 | startup_primary: | ||
37 | #endif /* CONFIG_SMP */ | ||
38 | |||
39 | # first save parameters from bootloader | ||
22 | mov param_save_area,a0 | 40 | mov param_save_area,a0 |
23 | mov d0,(a0) | 41 | mov d0,(a0) |
24 | mov d1,(4,a0) | 42 | mov d1,(4,a0) |