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