summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/arch/x86/platform/olpc/xo1-wakeup.S
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/arch/x86/platform/olpc/xo1-wakeup.S')
-rw-r--r--ANDROID_3.4.5/arch/x86/platform/olpc/xo1-wakeup.S124
1 files changed, 0 insertions, 124 deletions
diff --git a/ANDROID_3.4.5/arch/x86/platform/olpc/xo1-wakeup.S b/ANDROID_3.4.5/arch/x86/platform/olpc/xo1-wakeup.S
deleted file mode 100644
index 948deb28..00000000
--- a/ANDROID_3.4.5/arch/x86/platform/olpc/xo1-wakeup.S
+++ /dev/null
@@ -1,124 +0,0 @@
-.text
-#include <linux/linkage.h>
-#include <asm/segment.h>
-#include <asm/page.h>
-#include <asm/pgtable_32.h>
-
- .macro writepost,value
- movb $0x34, %al
- outb %al, $0x70
- movb $\value, %al
- outb %al, $0x71
- .endm
-
-wakeup_start:
- # OFW lands us here, running in protected mode, with a
- # kernel-compatible GDT already setup.
-
- # Clear any dangerous flags
- pushl $0
- popfl
-
- writepost 0x31
-
- # Set up %cr3
- movl $initial_page_table - __PAGE_OFFSET, %eax
- movl %eax, %cr3
-
- movl saved_cr4, %eax
- movl %eax, %cr4
-
- movl saved_cr0, %eax
- movl %eax, %cr0
-
- # Control registers were modified, pipeline resync is needed
- jmp 1f
-1:
-
- movw $__KERNEL_DS, %ax
- movw %ax, %ss
- movw %ax, %ds
- movw %ax, %es
- movw %ax, %fs
- movw %ax, %gs
-
- lgdt saved_gdt
- lidt saved_idt
- lldt saved_ldt
- ljmp $(__KERNEL_CS),$1f
-1:
- movl %cr3, %eax
- movl %eax, %cr3
- wbinvd
-
- # Go back to the return point
- jmp ret_point
-
-save_registers:
- sgdt saved_gdt
- sidt saved_idt
- sldt saved_ldt
-
- pushl %edx
- movl %cr4, %edx
- movl %edx, saved_cr4
-
- movl %cr0, %edx
- movl %edx, saved_cr0
-
- popl %edx
-
- movl %ebx, saved_context_ebx
- movl %ebp, saved_context_ebp
- movl %esi, saved_context_esi
- movl %edi, saved_context_edi
-
- pushfl
- popl saved_context_eflags
-
- ret
-
-restore_registers:
- movl saved_context_ebp, %ebp
- movl saved_context_ebx, %ebx
- movl saved_context_esi, %esi
- movl saved_context_edi, %edi
-
- pushl saved_context_eflags
- popfl
-
- ret
-
-ENTRY(do_olpc_suspend_lowlevel)
- call save_processor_state
- call save_registers
-
- # This is the stack context we want to remember
- movl %esp, saved_context_esp
-
- pushl $3
- call xo1_do_sleep
-
- jmp wakeup_start
- .p2align 4,,7
-ret_point:
- movl saved_context_esp, %esp
-
- writepost 0x32
-
- call restore_registers
- call restore_processor_state
- ret
-
-.data
-saved_gdt: .long 0,0
-saved_idt: .long 0,0
-saved_ldt: .long 0
-saved_cr4: .long 0
-saved_cr0: .long 0
-saved_context_esp: .long 0
-saved_context_edi: .long 0
-saved_context_esi: .long 0
-saved_context_ebx: .long 0
-saved_context_ebp: .long 0
-saved_context_eflags: .long 0