AnsweredAssumed Answered

IMX6 Android Hibernation resume problem

Question asked by John Smith on Nov 15, 2016
Latest reply on Jun 7, 2017 by John Smith

Hello!

 

I'm trying to add hibernation support to IMX6Q processor module. I've aplied this patch - https://lkml.org/lkml/2014/3/11/486 . The problem is in resuming process. Everything freezes in function

static void notrace arch_restore_image(void *unused)
{
   struct pbe *pbe;

   cpu_switch_mm(idmap_pgd, &init_mm);
   for (pbe = restore_pblist; pbe; pbe = pbe->next)
copy_page(pbe->orig_address, pbe->address);

   soft_restart(virt_to_phys(cpu_resume));
}

The program never returns from

for (pbe = restore_pblist; pbe; pbe = pbe->next)

 

copy_page function is being called about 50000 times and than the process freezes. There are some logs, where number of calls, pbe->orig_address and pbe->address values before freezing are collected:

 

Start

.......

50627 d4374000 c5a66000
50628 d4373000 c5a67000
50629 d4372000 c5a68000

Freeze

 

Start

.......

51209 d402b000 c52d7000

Freeze

 

Start

.......

52882 d402e000 c4cea000

52883 d402d000 c4ceb000
52884 d402c000 c4cec000
52885 d402b000 c4ced000

Freeze

 

What can be the reason?....

 

Thank you in advance!

Outcomes