Merge from Etherboot 5.4
[people/andreif/gpxe.git] / src / arch / i386 / core / start32.S
index e82454b..37ef5eb 100644 (file)
        .text
        .arch i386
        .code32
-       
+
+       /* This is a struct os_entry_regs */
+       .globl os_regs
+os_regs:       .space 56
+               
 /**************************************************************************
 XSTART32 - Transfer control to the kernel just loaded
 **************************************************************************/
@@ -112,8 +116,9 @@ os_regs_ptr:
        movl    %esp, %ebp
        subl    $os_regs, %ebp
        
-       /* Load the stack pointer */
+       /* Load the stack pointer and convert it to physical address */
        movl    52(%esp), %esp
+       addl    %ebp, %esp
 
        /* Enable the virtual addresses */
        leal    _phys_to_virt(%ebp), %eax