Hello. I need a help for my implementation work on MIPS software suspend.
From 3month ago, I've been coding software suspend(swsusp) on MIPS arch.
I'm developing with MIPS32 4KEc embedded processor for digital appliance.
Swsusp has two procedure. the one is suspending procedure and other one is resume procedure.
Yesterday, I confirmed suspending procedure working.
This is a porting guide of swsusp (http://tree.celinuxforum.org/CelfPubWiki/SwSuspendPortingNotes)
I refered this article.
The problem I faced is assembly language for MIPS.
Of course, there are many manuals for this work but, I need a help from MIPS expert.
This pseudo code should be implemented by MIPS asm.
for (j = nr_copy_pages; j>0; j--) {
src = ""
dst = pagedir_nosave[j].dst;
for (i=0;i<1024;i++) {
*dst++ = *src++;
}
}
src = ""
dst = pagedir_nosave[j].dst;
for (i=0;i<1024;i++) {
*dst++ = *src++;
}
}
nr_copy_pages is unsigned long variable.
and pagedir_nosave is a suspend_pagedir_t type structure array(pointer). (you can refer following url. Line 101. :
http://lxr.linux.no/source/kernel/power/swsusp.c?v=2.6.10)
code skeleton or useful material will be welcomed. (whatever you have.)
The second problem is
" which register should be prevented? "
I saved $v0-v1. $a0-$a3. $t0-t7. $s0-s7. $t8-t9. $gp,sp,fp,ra.
--
Hyon Lim (임현)
Mobile. 010-8212-1240 (Intl' Call : +82-10-8212-1240)
Fax. 032-232-0578 (Intl' Available)
Homepage : http://www.alexlab.net
Blog : http://www.alexlab.net/blog