TuxOnIce on i.MX53QSB platform

S K <[email protected]>
Newsgroups gmane.linux.swsusp.devel
Message-ID <CAEhSjjs8b52S1O4akR3Uw9y6GnqK7egDLXYuR4Bd1_uCNSc4VQ@mail.gmail.com>
Hi guys,

I am trying to bring up TOI on i.MX53 platform, Linux 2.6.35 + ARM
Cortex A8 + 1GB RAM + microSD card. And the kernel config files show
it uses 2G/2G user/kernel memory split layout.

One problem blocks me, during resume process, Kernel oops occurs
during copy memory back, it occurs in this function:

void notrace __swsusp_arch_restore_image(void)
{
	extern struct pbe *restore_pblist;
	struct pbe *pbe;

	cpu_switch_mm(__virt_to_phys(swapper_pg_dir), &init_mm);

	for (pbe = restore_pblist; pbe; pbe = pbe->next)
		copy_page(pbe->orig_address, pbe->address);   // when goes here, oops occurs
}

I tried to dump the to and from parameters of copy_page function
without doing real copy, it looks valid, something like:

cp: 80004000 <-- db000000
cp: 80005000 <-- db001000
cp: 80006000 <-- db002000
cp: 80007000 <-- db003000
cp: 80039000 <-- db004000
cp: 8003a000 <-- db005000
cp: 8003b000 <-- db006000
cp: 8003c000 <-- db007000
cp: 8003d000 <-- db008000
cp: 8003e000 <-- db009000
cp: 8003f000 <-- db00a000
cp: 80040000 <-- db00b000
.....

the oops message:
Unable to handle kernel NULL pointer dereference at virtual address 000000b8
pgd = 80004000
[000000b8] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT
last sysfs file:
Modules linked in:
CPU: 0    Not tainted  (2.6.35.3-g1873a99-dirty #9)
Unable to handle kernel paging request at virtual address 00006018
pgd = 80004000
[00006018] *pgd=00000000
Internal error: Oops: 805 [#2] PREEMPT
last sysfs file:
Modules linked in:
CPU: 0    Not tainted  (2.6.35.3-g1873a99-dirty #9)
Unable to handle kernel paging request at virtual address 00006018
pgd = 80004000
[00006018] *pgd=00000000
Internal error: Oops: 805 [#3] PREEMPT
last sysfs file:
Modules linked in:
CPU: 0    Not tainted  (2.6.35.3-g1873a99-dirty #9)
Unable to handle kernel paging request at virtual address 00006018
pgd = 80004000
[00006018] *pgd=00000000
Internal error: Oops: 805 [#4] PREEMPT
last sysfs file:
Modules linked in:
CPU: 0    Not tainted  (2.6.35.3-g1873a99-dirty #9)
Unable to handle kernel paging request at virtual address 00006018
... ....

Except TOI for 2.6.35 patch, I also applied two other patches, one is
from linus's mainstream kernel,
commit f6b0fa02e8b0708d17d631afce456524eadf87ff
The other is from
http://permalink.gmane.org/gmane.linux.power-management.general/24579



====
Kai
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.