1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-28 20:14:35 +02:00
openwrt-xburst/target/linux/olpc/files/arch/i386/kernel/olpc-sleep.S
blogic f39cd04251 cleaning up olpc patch 1
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10060 3c298f89-4303-0410-b956-a3cf2f4a3e73
2007-12-30 17:38:08 +00:00

40 lines
521 B
ArmAsm

.text
ENTRY(olpc_sleep_asm)
olpc_sleep:
;; Get the value of PM1_CNT and store it off
add 08h, ax
mov bx,dx
in dx,eax
or 2000h, ax
mov ax,di
;; flush the cache
wbinvd
;; GX2 must disable refresh before going into self-refresh
mov 2000000180xh, ecx
rdmsr
mov eax, esi
and 0FF0000FFh, eax
wrmsr
;; Now, put the memory into self refresh
mov 2004, cx
xor edx, edx
xor eax, eax
mov 04h, al
wrmsr
;; Thats all she wrote - time to go to sleep
mov bx, dx
movzx di, eax
out eax, dx
;;