I had apply this patch :
http://lists.infradead.org/pipermail/linux-arm-kernel/2010-December/036055.html
I had found a solution to this problem:
in file arch/arm/kernel/hibernate.c
You need to change in this mode:
/* Used in hibernate_asm.S */
#define USER_CONTEXT_SIZE (15 * sizeof(u32))
unsigned long saved_spsr_svc;
unsigned long saved_context_r14_svc;
unsigned long saved_context_r13_svc;
unsigned long saved_cpsr;
unsigned long saved_context_r0[USER_CONTEXT_SIZE];
static struct saved_context saved_context;
/* References to section boundaries */
extern const void __nosave_begin, __nosave_end;
the sequence is VERY IMPORTAN because in assemble file ( arch/arm/kernel/hibernate_asm.S)
load the R13 and R14 register in sequence.
ENTRY(swsusp_arch_resume)
/*
* Restore_pblist is the starting point for loaded pages
*/
ldr r0, .Lrestore_pblist
ldr r6, [r0]
.Lcopy_loop:
ldr r4, [r6] /* src IOW present address */
ldr r5, [r6, #4] /* dst IOW original address*/
mov r9, #1024 /* No. of entries in one page, where each entry is bytes */
.Lcopy_one_page:
/*
* This loop could be optimized by using stm and ldm.
*/
ldr r8, [r4], #4
str r8, [r5], #4
subs r9, r9, #1
bne .Lcopy_one_page
/* The last field of struct pbe is a pointer to the next pbe structure */
ldr r6, [r6, #8]
cmp r6, #0
bne .Lcopy_loop
/*
* Restore SVC context
*/
ldr r3, .Lsaved_context_r13_svc
ldmia r3, {r13-r14}
ldr r3, .Lsaved_spsr_svc
ldr r1, [r3]
msr spsr_cxsf, r1
mrs r0, cpsr /* Save current mode into r0 */
/*
* Change to system(user) mode
*/
mov r1, r0
orr r1, r1, #0x1f
msr cpsr_c, r1
/*
* Restore User context
*/
ldr r3, .Lsaved_context_r0
ldmia r3, {r0-r14}
ldr r3, .Lsaved_cpsr
ldr r1, [r3]
msr cpsr_cxsf, r1
msr cpsr_c, r0 /* Restore original mode from r0 */
/*
* Flush TLB (Invalidate unified TLB unlocked entries)
*/
mov r1, #0
mcr p15, 0, r1, c8, c7, 0
/* Set the return value */
mov r0, #0
/* Restore return address */
ldr r3, .Lsaved_context_r14_svc
ldr lr, [r3]
mov pc, lr
ENDPROC(swsusp_arch_resume)
after about 40000 pages copy loop the function stop.
str r8, [r5], #4
virtual of r5 stop adress is about 0xcb080000 ~.
Have you idea for solution?
Hi park
please try latest linux on
meta-fsl-arm - Layer containing Freescale ARM hardware support metadata
Best regards
igor
Hi igor
I use android Lollipo - linux version imx-3.10.53.
I'm try patch version.
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.53-1.1.0_ga
I want to know.
What did you modify in the Linux version?
Do you give informed?
thank you
Hello!
I have the same problem, did you find a solution???
Thank you in advance.