[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[1724] 2008-07-21 Bean <address@hidden>
From: |
Bean |
Subject: |
[1724] 2008-07-21 Bean <address@hidden> |
Date: |
Mon, 21 Jul 2008 10:40:02 +0000 |
Revision: 1724
http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1724
Author: bean
Date: 2008-07-21 10:40:01 +0000 (Mon, 21 Jul 2008)
Log Message:
-----------
2008-07-21 Bean <address@hidden>
* kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
a20. Run keyboard test last, as it will cause macbook to halt.
Modified Paths:
--------------
trunk/grub2/ChangeLog
trunk/grub2/kern/i386/pc/startup.S
Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog 2008-07-18 16:11:35 UTC (rev 1723)
+++ trunk/grub2/ChangeLog 2008-07-21 10:40:01 UTC (rev 1724)
@@ -1,3 +1,8 @@
+2008-07-21 Bean <address@hidden>
+
+ * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
+ a20. Run keyboard test last, as it will cause macbook to halt.
+
2008-07-18 Pavel Roskin <address@hidden>
* kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
Modified: trunk/grub2/kern/i386/pc/startup.S
===================================================================
--- trunk/grub2/kern/i386/pc/startup.S 2008-07-18 16:11:35 UTC (rev 1723)
+++ trunk/grub2/kern/i386/pc/startup.S 2008-07-21 10:40:01 UTC (rev 1724)
@@ -386,9 +386,32 @@
popl %ebp
call gate_a20_check_state
cmpb %al, %dl
- jnz gate_a20_try_keyboard_controller
+ jnz gate_a20_try_system_control_port_a
ret
+gate_a20_try_system_control_port_a:
+ /*
+ * In macbook, the keyboard test would hang the machine, so we move
+ * this forward.
+ */
+ /* fourth, try the system control port A */
+ inb $0x92
+ andb $(~0x03), %al
+ testb %dl, %dl
+ jz 6f
+ orb $0x02, %al
+6: outb $0x92
+
+ /* When turning off Gate A20, do not check the state strictly,
+ because a failure is not fatal usually, and Gate A20 is always
+ on some modern machines. */
+ testb %dl, %dl
+ jz 7f
+ call gate_a20_check_state
+ cmpb %al, %dl
+ jnz gate_a20_try_keyboard_controller
+7: ret
+
gate_a20_flush_keyboard_buffer:
inb $0x64
andb $0x02, %al
@@ -427,28 +450,9 @@
call gate_a20_check_state
cmpb %al, %dl
- jnz gate_a20_try_system_control_port_a
- ret
-
-gate_a20_try_system_control_port_a:
- /* fourth, try the system control port A */
- inb $0x92
- andb $(~0x03), %al
- testb %dl, %dl
- jz 6f
- orb $0x02, %al
-6: outb $0x92
-
- /* When turning off Gate A20, do not check the state strictly,
- because a failure is not fatal usually, and Gate A20 is always
- on some modern machines. */
- testb %dl, %dl
- jz 7f
- call gate_a20_check_state
- cmpb %al, %dl
/* everything failed, so restart from the beginning */
jnz gate_a20_try_bios
-7: ret
+ ret
gate_a20_check_state:
/* iterate the checking for a while */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [1724] 2008-07-21 Bean <address@hidden>,
Bean <=