diff options
-rw-r--r-- | arch/arm/boot/compressed/efi-header.S | 4 | ||||
-rw-r--r-- | arch/arm/boot/compressed/head.S | 17 | ||||
-rw-r--r-- | arch/arm/common/mcpm_entry.c | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/pgtable-nommu.h | 1 |
4 files changed, 15 insertions, 13 deletions
diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S index 9d5dc4fda3c1..3f7d1b74c5e0 100644 --- a/arch/arm/boot/compressed/efi-header.S +++ b/arch/arm/boot/compressed/efi-header.S | |||
@@ -17,14 +17,12 @@ | |||
17 | @ there. | 17 | @ there. |
18 | .inst 'M' | ('Z' << 8) | (0x1310 << 16) @ tstne r0, #0x4d000 | 18 | .inst 'M' | ('Z' << 8) | (0x1310 << 16) @ tstne r0, #0x4d000 |
19 | #else | 19 | #else |
20 | mov r0, r0 | 20 | W(mov) r0, r0 |
21 | #endif | 21 | #endif |
22 | .endm | 22 | .endm |
23 | 23 | ||
24 | .macro __EFI_HEADER | 24 | .macro __EFI_HEADER |
25 | #ifdef CONFIG_EFI_STUB | 25 | #ifdef CONFIG_EFI_STUB |
26 | b __efi_start | ||
27 | |||
28 | .set start_offset, __efi_start - start | 26 | .set start_offset, __efi_start - start |
29 | .org start + 0x3c | 27 | .org start + 0x3c |
30 | @ | 28 | @ |
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 7c711ba61417..8a756870c238 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -130,19 +130,22 @@ start: | |||
130 | .rept 7 | 130 | .rept 7 |
131 | __nop | 131 | __nop |
132 | .endr | 132 | .endr |
133 | ARM( mov r0, r0 ) | 133 | #ifndef CONFIG_THUMB2_KERNEL |
134 | ARM( b 1f ) | 134 | mov r0, r0 |
135 | THUMB( badr r12, 1f ) | 135 | #else |
136 | THUMB( bx r12 ) | 136 | AR_CLASS( sub pc, pc, #3 ) @ A/R: switch to Thumb2 mode |
137 | M_CLASS( nop.w ) @ M: already in Thumb2 mode | ||
138 | .thumb | ||
139 | #endif | ||
140 | W(b) 1f | ||
137 | 141 | ||
138 | .word _magic_sig @ Magic numbers to help the loader | 142 | .word _magic_sig @ Magic numbers to help the loader |
139 | .word _magic_start @ absolute load/run zImage address | 143 | .word _magic_start @ absolute load/run zImage address |
140 | .word _magic_end @ zImage end address | 144 | .word _magic_end @ zImage end address |
141 | .word 0x04030201 @ endianness flag | 145 | .word 0x04030201 @ endianness flag |
142 | 146 | ||
143 | THUMB( .thumb ) | 147 | __EFI_HEADER |
144 | 1: __EFI_HEADER | 148 | 1: |
145 | |||
146 | ARM_BE8( setend be ) @ go BE8 if compiled for BE8 | 149 | ARM_BE8( setend be ) @ go BE8 if compiled for BE8 |
147 | AR_CLASS( mrs r9, cpsr ) | 150 | AR_CLASS( mrs r9, cpsr ) |
148 | #ifdef CONFIG_ARM_VIRT_EXT | 151 | #ifdef CONFIG_ARM_VIRT_EXT |
diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c index cf062472e07b..2b913f17d50f 100644 --- a/arch/arm/common/mcpm_entry.c +++ b/arch/arm/common/mcpm_entry.c | |||
@@ -235,7 +235,7 @@ int mcpm_cpu_power_up(unsigned int cpu, unsigned int cluster) | |||
235 | return ret; | 235 | return ret; |
236 | } | 236 | } |
237 | 237 | ||
238 | typedef void (*phys_reset_t)(unsigned long); | 238 | typedef typeof(cpu_reset) phys_reset_t; |
239 | 239 | ||
240 | void mcpm_cpu_power_down(void) | 240 | void mcpm_cpu_power_down(void) |
241 | { | 241 | { |
@@ -300,7 +300,7 @@ void mcpm_cpu_power_down(void) | |||
300 | * on the CPU. | 300 | * on the CPU. |
301 | */ | 301 | */ |
302 | phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset); | 302 | phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset); |
303 | phys_reset(__pa_symbol(mcpm_entry_point)); | 303 | phys_reset(__pa_symbol(mcpm_entry_point), false); |
304 | 304 | ||
305 | /* should never get here */ | 305 | /* should never get here */ |
306 | BUG(); | 306 | BUG(); |
@@ -389,7 +389,7 @@ static int __init nocache_trampoline(unsigned long _arg) | |||
389 | __mcpm_cpu_down(cpu, cluster); | 389 | __mcpm_cpu_down(cpu, cluster); |
390 | 390 | ||
391 | phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset); | 391 | phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset); |
392 | phys_reset(__pa_symbol(mcpm_entry_point)); | 392 | phys_reset(__pa_symbol(mcpm_entry_point), false); |
393 | BUG(); | 393 | BUG(); |
394 | } | 394 | } |
395 | 395 | ||
diff --git a/arch/arm/include/asm/pgtable-nommu.h b/arch/arm/include/asm/pgtable-nommu.h index 302240c19a5a..a0d726a47c8a 100644 --- a/arch/arm/include/asm/pgtable-nommu.h +++ b/arch/arm/include/asm/pgtable-nommu.h | |||
@@ -66,6 +66,7 @@ typedef pte_t *pte_addr_t; | |||
66 | #define pgprot_noncached(prot) (prot) | 66 | #define pgprot_noncached(prot) (prot) |
67 | #define pgprot_writecombine(prot) (prot) | 67 | #define pgprot_writecombine(prot) (prot) |
68 | #define pgprot_dmacoherent(prot) (prot) | 68 | #define pgprot_dmacoherent(prot) (prot) |
69 | #define pgprot_device(prot) (prot) | ||
69 | 70 | ||
70 | 71 | ||
71 | /* | 72 | /* |