From: proski Date: Fri, 28 Mar 2008 17:06:29 +0000 (+0000) Subject: 2008-03-28 Pavel Roskin X-Git-Tag: 1.98~1586 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77bcd272073b2f4dad88b58a2b869804b7655866;p=thirdparty%2Fgrub.git 2008-03-28 Pavel Roskin * 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. --- diff --git a/ChangeLog b/ChangeLog index 8fbff3129..d94121968 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-03-28 Pavel Roskin + + * 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 * normal/color.c (grub_parse_color_name_pair): Make `name' a diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S index 35b19fda7..635630d94 100644 --- a/kern/i386/pc/startup.S +++ b/kern/i386/pc/startup.S @@ -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 */