Author: wmb Date: 2007-10-18 23:25:41 +0200 (Thu, 18 Oct 2007) New Revision: 685
Modified: cpu/x86/pc/olpc/draminit.fth cpu/x86/pc/olpc/resume.bth Log: OLPC suspend/resume - Added configed-out code to checksum memory around suspend/resume. Enable it for specific test builds. OLPC trac #4223.
Modified: cpu/x86/pc/olpc/draminit.fth =================================================================== --- cpu/x86/pc/olpc/draminit.fth 2007-10-16 23:46:10 UTC (rev 684) +++ cpu/x86/pc/olpc/draminit.fth 2007-10-18 21:25:41 UTC (rev 685) @@ -59,7 +59,10 @@ 0 1430 port-wl h# 1b # al mov al h# 80 # out char r 3f8 port-wb begin 3fd port-rb 40 bitand 0<> until - resume-entry # sp mov sp jmp + + resume-data # sp mov + resume-entry # ax mov ax call \ This might return if checksumming fails + char x 3f8 port-wb begin 3fd port-rb 40 bitand 0<> until then
h# 1c # al mov al h# 80 # out
Modified: cpu/x86/pc/olpc/resume.bth =================================================================== --- cpu/x86/pc/olpc/resume.bth 2007-10-16 23:46:10 UTC (rev 684) +++ cpu/x86/pc/olpc/resume.bth 2007-10-18 21:25:41 UTC (rev 685) @@ -23,6 +23,7 @@ \ create reset-smbus \ create reset-smbus-bitbang \ create restore-usb-power +\ create checksum-test
h# fe00.0000 constant gp-pa h# fe00.4000 constant dc-pa @@ -256,6 +257,15 @@ begin dx ax in h# e0 # al and h# c0 # al cmp loopne [then]
+[ifdef] checksum-test + \ Checksum memory from 1M to top (excluding framebuffer) + bx bx xor + h# 0010.0000 # si mov + h# 0ef0.0000 2 rshift # cx mov \ Word count + begin ax lods ax bx add loopa + bx resume-data h# 10 - #) mov \ Save checksum +[then] + \ Stop video refresh h# 4758 # h# fe00.4000 #) mov \ Unlock DC registers h# 0 # h# fe00.4004 #) mov \ Turn off access to display memory @@ -328,6 +338,15 @@ si bx cmp = until
+[ifdef] checksum-test + \ Checksum memory from 1M to top (excluding framebuffer) + bx bx xor + h# 0010.0000 # si mov + h# 0ef0.0000 2 rshift # cx mov \ Word count + begin ax lods ax bx add loopa + bx resume-data h# 10 - #) cmp <> if ret then +[then] + h# 38 [bp] si lea \ Save area
ax lods ax dx xchg ax lods ax dx xchg h# 4c00.0014 wmsr \ RSTPLL