|
@@ -28,11 +28,13 @@
|
|
|
* 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
|