1abd350237
Robert Jarzmik reports that his PXA25x system fails to boot with 4.12, failing at __flush_whole_cache in arch/arm/mm/proc-xscale.S:215: 0xc0019e20 <+0>: ldr r1, [pc, #788] 0xc0019e24 <+4>: ldr r0, [r1] <== here with r1 containing 0xc06f82cd, which is the address of "clean_addr". Examination of the System.map shows: c06f22c8 D user_pmd_table c06f22cc d __warned.19178 c06f22cd d clean_addr indicating that a .data.unlikely section has appeared just before the .data section from proc-xscale.S. According to objdump -h, it appears that our assembly files default their .data alignment to 2**0, which is bad news if the preceding .data section size is not power-of-2 aligned at link time. Add the appropriate .align directives to all assembly files in arch/arm that are missing them where we require an appropriate alignment. Reported-by: Robert Jarzmik <robert.jarzmik@free.fr> Tested-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
40 lines
962 B
ArmAsm
40 lines
962 B
ArmAsm
/* Bootloader to resume MIO A701
|
|
*
|
|
* 2007-1-12 Robert Jarzmik
|
|
*
|
|
* This code is licenced under the GPLv2.
|
|
*/
|
|
|
|
#include <linux/linkage.h>
|
|
#include <asm/assembler.h>
|
|
|
|
/*
|
|
* Note: Yes, part of the following code is located into the .data section.
|
|
* This is to allow jumpaddr to be accessed with a relative load
|
|
* while we can't rely on any MMU translation. We could have put
|
|
* sleep_save_sp in the .text section as well, but some setups might
|
|
* insist on it to be truly read-only.
|
|
*/
|
|
.data
|
|
.align 2
|
|
ENTRY(mioa701_bootstrap)
|
|
0:
|
|
b 1f
|
|
ENTRY(mioa701_jumpaddr)
|
|
.word 0x40f00008 @ PSPR in no-MMU mode
|
|
1:
|
|
mov r0, #0xa0000000 @ Don't suppose memory access works
|
|
orr r0, r0, #0x00200000 @ even if it's supposed to
|
|
orr r0, r0, #0x0000b000
|
|
mov r1, #0
|
|
str r1, [r0] @ Early disable resume for next boot
|
|
ldr r0, mioa701_jumpaddr @ (Murphy's Law)
|
|
ldr r0, [r0]
|
|
ret r0
|
|
2:
|
|
|
|
ENTRY(mioa701_bootstrap_lg)
|
|
.data
|
|
.align 2
|
|
.word 2b-0b
|