- /* restore proper idt */
- lidt idtarg
-
- /* and exit */
- mov __stack, %esp
- popal
- ret
-
-#if defined(CONFIG_GEODE_VSA) && CONFIG_GEODE_VSA
-#define VSA2_ENTRY_POINT 0x60020
-
- .globl __run_vsa
-__run_vsa = RELOCATED(.)
- /* save all registers to the stack */
- pushal
-
- /* Move the protected mode stack to a safe place */
- mov %esp, __stack
-
- movl %esp, %ebp
- /* This function is called with regparm=0 and we have
- * to skip the 32 byte from pushal:
- */
- movl 36(%ebp), %ecx
- movl 40(%ebp), %edx
-
- /* Activate the right segment descriptor real mode. */
- ljmp $0x28, $RELOCATED(1f)
-1:
-.code16
- /* 16 bit code from here on... */
-
- /* Load the segment registers w/ properly configured
- * segment descriptors. They will retain these
- * configurations (limits, writability, etc.) once
- * protected mode is turned off.
- */
- mov $0x30, %ax
- mov %ax, %ds
- mov %ax, %es
- mov %ax, %fs
- mov %ax, %gs
- mov %ax, %ss
-