]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-03-28 Pavel Roskin <proski@gnu.org>
authorproski <proski@localhost>
Fri, 28 Mar 2008 17:06:29 +0000 (17:06 +0000)
committerproski <proski@localhost>
Fri, 28 Mar 2008 17:06:29 +0000 (17:06 +0000)
* kern/i386/pc/startup.S
(grub_biosdisk_get_diskinfo_int13_extensions): When converting
data block address to the real mode, keep offset minimal.  This
works around a bug in AWARD BIOS on old Athlon systems, which
makes CD detection hang.

ChangeLog
kern/i386/pc/startup.S

index 8fbff3129dc21f13ce2a2d6cfd1942042567a5b1..d941219684f2037d9cfbe2f4440fefbc0ebc64ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-03-28  Pavel Roskin  <proski@gnu.org>
+
+       * kern/i386/pc/startup.S
+       (grub_biosdisk_get_diskinfo_int13_extensions): When converting
+       data block address to the real mode, keep offset minimal.  This
+       works around a bug in AWARD BIOS on old Athlon systems, which
+       makes CD detection hang.
+
 2008-03-26  Pavel Roskin  <proski@gnu.org>
 
        * normal/color.c (grub_parse_color_name_pair): Make `name' a
index 35b19fda701c5ed05bb804e2940c9afee44c096d..635630d943f49f8685d4d11dd2218624b6f3e0f4 100644 (file)
@@ -806,7 +806,7 @@ FUNCTION(grub_biosdisk_get_diskinfo_int13_extensions)
 
        /* compute the address of drive parameters */
        movw    %dx, %si
-       xorw    %dx, %dx
+       andl    $0xf, %esi
        shrl    $4, %edx
        movw    %dx, %bx        /* save the segment into %bx */
        /* drive */