2 #include <linux/linkage.h>
3 #include <asm/segment.h>
5 #include <asm/pgtable_32.h>
15 # OFW lands us here, running in protected mode, with a
16 # kernel-compatible GDT already setup.
18 # Clear any dangerous flags
25 movl $initial_page_table - __PAGE_OFFSET, %eax
34 # Control registers were modified, pipeline resync is needed
38 movw $__KERNEL_DS, %ax
48 ljmp $(__KERNEL_CS),$1f
54 # Go back to the return point
71 movl %ebx, saved_context_ebx
72 movl %ebp, saved_context_ebp
73 movl %esi, saved_context_esi
74 movl %edi, saved_context_edi
77 popl saved_context_eflags
82 movl saved_context_ebp, %ebp
83 movl saved_context_ebx, %ebx
84 movl saved_context_esi, %esi
85 movl saved_context_edi, %edi
87 pushl saved_context_eflags
92 ENTRY(do_olpc_suspend_lowlevel)
93 call save_processor_state
96 # This is the stack context we want to remember
97 movl %esp, saved_context_esp
105 movl saved_context_esp, %esp
109 call restore_registers
110 call restore_processor_state
119 saved_context_esp: .long 0
120 saved_context_edi: .long 0
121 saved_context_esi: .long 0
122 saved_context_ebx: .long 0
123 saved_context_ebp: .long 0
124 saved_context_eflags: .long 0