x86 setup: set %ebx == %ebp == %edi == 0 on protected mode entry
authorH. Peter Anvin <hpa@zytor.com>
Mon, 5 Nov 2007 01:54:31 +0000 (17:54 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 5 Nov 2007 03:48:04 +0000 (19:48 -0800)
In accordance with the newly formalized 32-bit boot protocol, set
%ebx == %ebp == %edi == 0 in order to support future extensions to the
protocol.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/boot/pmjump.S

index 26baeab3a4d4e68f2a0d222732998d696521a9ec..fa6bed1fac14862b86936f1bc45af5c9b64aa7cf 100644 (file)
  * void protected_mode_jump(u32 entrypoint, u32 bootparams);
  */
 protected_mode_jump:
-       xorl    %ebx, %ebx              # Flag to indicate this is a boot
        movl    %edx, %esi              # Pointer to boot_params table
        movl    %eax, 2f                # Patch ljmpl instruction
 
        movw    $__BOOT_DS, %cx
+       xorl    %ebx, %ebx              # Per the 32-bit boot protocol
+       xorl    %ebp, %ebp              # Per the 32-bit boot protocol
+       xorl    %edi, %edi              # Per the 32-bit boot protocol
 
        movl    %cr0, %edx
        orb     $1, %dl                 # Protected mode (PE) bit