diff options
Diffstat (limited to 'arch/arm/boot/compressed/head.S')
-rw-r--r-- | arch/arm/boot/compressed/head.S | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 14a9ff9c68df..e5ab51b9cceb 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -20,11 +20,21 @@ | |||
20 | #ifdef DEBUG | 20 | #ifdef DEBUG |
21 | 21 | ||
22 | #if defined(CONFIG_DEBUG_ICEDCC) | 22 | #if defined(CONFIG_DEBUG_ICEDCC) |
23 | |||
24 | #ifdef CONFIG_CPU_V6 | ||
25 | .macro loadsp, rb | ||
26 | .endm | ||
27 | .macro writeb, ch, rb | ||
28 | mcr p14, 0, \ch, c0, c5, 0 | ||
29 | .endm | ||
30 | #else | ||
23 | .macro loadsp, rb | 31 | .macro loadsp, rb |
24 | .endm | 32 | .endm |
25 | .macro writeb, ch, rb | 33 | .macro writeb, ch, rb |
26 | mcr p14, 0, \ch, c0, c1, 0 | 34 | mcr p14, 0, \ch, c0, c1, 0 |
27 | .endm | 35 | .endm |
36 | #endif | ||
37 | |||
28 | #else | 38 | #else |
29 | 39 | ||
30 | #include <asm/arch/debug-macro.S> | 40 | #include <asm/arch/debug-macro.S> |
@@ -42,12 +52,6 @@ | |||
42 | add \rb, \rb, #0x00010000 @ Ser1 | 52 | add \rb, \rb, #0x00010000 @ Ser1 |
43 | #endif | 53 | #endif |
44 | .endm | 54 | .endm |
45 | #elif defined(CONFIG_ARCH_IOP331) | ||
46 | .macro loadsp, rb | ||
47 | mov \rb, #0xff000000 | ||
48 | orr \rb, \rb, #0x00ff0000 | ||
49 | orr \rb, \rb, #0x0000f700 @ location of the UART | ||
50 | .endm | ||
51 | #elif defined(CONFIG_ARCH_S3C2410) | 55 | #elif defined(CONFIG_ARCH_S3C2410) |
52 | .macro loadsp, rb | 56 | .macro loadsp, rb |
53 | mov \rb, #0x50000000 | 57 | mov \rb, #0x50000000 |
@@ -78,9 +82,11 @@ | |||
78 | kphex r6, 8 /* processor id */ | 82 | kphex r6, 8 /* processor id */ |
79 | kputc #':' | 83 | kputc #':' |
80 | kphex r7, 8 /* architecture id */ | 84 | kphex r7, 8 /* architecture id */ |
85 | #ifdef CONFIG_CPU_CP15 | ||
81 | kputc #':' | 86 | kputc #':' |
82 | mrc p15, 0, r0, c1, c0 | 87 | mrc p15, 0, r0, c1, c0 |
83 | kphex r0, 8 /* control reg */ | 88 | kphex r0, 8 /* control reg */ |
89 | #endif | ||
84 | kputc #'\n' | 90 | kputc #'\n' |
85 | kphex r5, 8 /* decompressed kernel start */ | 91 | kphex r5, 8 /* decompressed kernel start */ |
86 | kputc #'-' | 92 | kputc #'-' |
@@ -503,7 +509,11 @@ call_kernel: bl cache_clean_flush | |||
503 | */ | 509 | */ |
504 | 510 | ||
505 | call_cache_fn: adr r12, proc_types | 511 | call_cache_fn: adr r12, proc_types |
512 | #ifdef CONFIG_CPU_CP15 | ||
506 | mrc p15, 0, r6, c0, c0 @ get processor ID | 513 | mrc p15, 0, r6, c0, c0 @ get processor ID |
514 | #else | ||
515 | ldr r6, =CONFIG_PROCESSOR_ID | ||
516 | #endif | ||
507 | 1: ldr r1, [r12, #0] @ get value | 517 | 1: ldr r1, [r12, #0] @ get value |
508 | ldr r2, [r12, #4] @ get mask | 518 | ldr r2, [r12, #4] @ get mask |
509 | eor r1, r1, r6 @ (real ^ match) | 519 | eor r1, r1, r6 @ (real ^ match) |