Broken A20 gate handling
Hi ! Recently I tried to use grub(2) with a compaq evo D510. These boxes do not seem to have a keyboard controller, so grub freeze in gatea20(). Most free bootloaders fail, but one is okay: syslinux/isolinux. I've taken a look at syslinux's code, and indeed A20 activation is done much more carefully than in grub, and more tricks are used. I think it's really important to fix grub's code (by stealing code from isolinux ?), because more and more PCs without a good old keyboard controller will hit the market. Are there any plans to improve gatea20() ? (Moreover, grub2's code for gatea20 is even worse than grub-legacy) Regards, -- Ludovic DROLEZ ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel
Re: [PATCH 1/2] Various cleanups in kern/misc.c
Sorry Vicent, I was too lazy to look over the hole function and test it, I think there is more wrong in it. --- misc.orig.c 2005-06-30 08:39:32.0 -0300 +++ misc.test.c 2005-06-30 08:44:31.0 -0300 static char * grub_itoa (char *str, int c, unsigned n) { unsigned base = (c == 'x') ? 16 : 10, d; char *p; + + p = str; if ((int) n < 0 && c == 'd') { n = (unsigned int) (-((int) n)); - *str++ = '-'; + *p++ = '-'; } - p = str; do { d = n % base; @@ -49,8 +50,8 @@ while (n /= base); *p = 0; - grub_reverse (str); - return p; + grub_reverse ((*str == '-') ? str+1 : str); + return str; } int What do you think? Rodrigo -- -BEGIN PGP PUBLIC KEY BLOCK- Version: GnuPG v1.4.1 (GNU/Linux) mQGiBEKJ288RBAD43+VlxMx8V0dLbU+f7TsbhknjBYp2sRMP0a8IkHa8z4DgJTRd XRMB0D05Hp5iE/1cA8t3e+g2J4kQhcj1JgUA6KSpYcj/cX6EKb6xhb/GAEQupaXz 7RYglwf4Sz9WJA3roSLtQuWcCOYR9lys+kifeTE2jnDLzDcuzwa2pEYJbwCg04jF uyOmiBd09P1Bgq4VOQhYM78D/j0Iyj0QIstssnRPWcg4QL9l5c7Y8rLRH63qfGOi fakmmY6C1JnW/wm4+2iUOc0/DbM+kKS5yXsiRFW7CDeqXLUEF1NIRvNaHkmfRmQf shDI8NJCr0ULMbUde3b1U0LKgMRr7uVnVRFb2bPkEFh1mDEaxpy376+2Rpn8uHOu GvqYBACJzY7EPP0fFQMMxeSyxHA7A/lxmC9/s1YtRgBHTCniYOQIZ+kwbFrU9XQv ExvMeO2DvYAtDNyCgV/PaUm0yLxCAmxSVxQaAMRkOuMSKatyBggLpJVZKQ4WuayL 3xA+ws2+F2ozC/LHK9DodkGen35lP286QyPXOV2WciE4YciU3bQsUm9kcmlnbyBT IFdhbmRlcmxleSA8cndhbmRlcmxleUBuYXRhbG5ldC5icj6IZAQTEQIAJAUCQonb zwIbAwUJAeEzgAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRBuM/JKbknmQugDAKC6 ZfWsa8qone19+oppGBkrX028QACfUfLi9rSs/qxmE77b0P+xa2IrWN25Ag0EQonb 2xAIANBkeWLFcVSxSCsCQEH8HJ80VhQO18Sy80MpXebf9sj1gwUATZJ/OcxYYw46 ZrFwNk9raTRULprAcqR5ORKk3TNZ6ZnEl337PZZS5FnELwsHXTm+KVKF3bE2nnB5 /25SzPwkidsyk8Pe3HYM9/r4dwHNOXE3i0nYsweC/aUE8yg/3Ipweu9K1cj+XbSM IpDydOmBpvVhIvv+VOIoevXxgm2hrD7LQ7jnfBaj/bV9GY/tJyl50nWgMM7csaAg +4H1lG5/FvzNOgudmhzAdMk5lyTMLyRj6wiYkvckvBCXFaC04FgseylRj72NZilQ xIstJWNomiATkC6uHYtOKExZ1xcAAwUIALTSG+l21w/W3L9iuEi8QK91n7LyHoO/ OJpYbj73sJWsui7qG63os8aR+KgbdbKNFGDwkyYfbfildYDd+TOkFWkbT64vq4Wv t51Pl2dB0+0cnO/xqRnbxt4II7SBwg5t1u/MHahaULoTcTYslN+bW9FuB9I22ZiJ pzFddDWjWApggNQIEapCd+XiuYnED6rV+n0GcmZxpb9Iz0mak7SPCZvN3QzPCI/6 k2YZlt92I/k4E2GU9NVM/1mXkTgqVgwOwlunPW6JYgcv/3n2Ly1eMNJQioWGRSnZ wQyVx7FvBUqMGLrWHTw3+FQRDd6B6pQ2Y4uL0W4LskQrXm97hhW5NuKITwQYEQIA DwUCQonb2wIbDAUJAeEzgAAKCRBuM/JKbknmQuXzAKDTa3d+h15/KHHupI6AMkNr YKRP3ACggEq09XZBLGulCU2e6+/I0j4iN3U= =JhUw -END PGP PUBLIC KEY BLOCK- ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel
Re: [PATCH 1/2] Various cleanups in kern/misc.c
Hi Vicent, Just one small comment here... I know its silly, but: 29/06 as 16:30: Vincent escreveu: VP> static char * VP> -grub_itoa (char *str, int c, unsigned n) VP> +grub_itoa (char *str, int c, unsigned int n) VP> { VP> - unsigned base = (c == 'x') ? 16 : 10; VP> + unsigned int base = (c == 'x') ? 16 : 10, d; VP>char *p; VP> VP>if ((int) n < 0 && c == 'd') VP> { VP> - n = (unsigned) (-((int) n)); VP> + n = (unsigned int) (-((int) n)); VP>*str++ = '-'; VP> } VP> VP>p = str; VP>do VP> { VP> - unsigned d = n % base; VP> + d = n % base; VP>*p++ = (d > 9) ? d + 'a' - 10 : d + '0'; VP> } I think p is not necessary. Specially because we already used str to walk through the string in the first if. What do you think? VP>while (n /= base); VP> @@ -500,9 +515,9 @@ grub_itoa (char *str, int c, unsigned n) VP> } -- -BEGIN PGP PUBLIC KEY BLOCK- Version: GnuPG v1.4.1 (GNU/Linux) mQGiBEKJ288RBAD43+VlxMx8V0dLbU+f7TsbhknjBYp2sRMP0a8IkHa8z4DgJTRd XRMB0D05Hp5iE/1cA8t3e+g2J4kQhcj1JgUA6KSpYcj/cX6EKb6xhb/GAEQupaXz 7RYglwf4Sz9WJA3roSLtQuWcCOYR9lys+kifeTE2jnDLzDcuzwa2pEYJbwCg04jF uyOmiBd09P1Bgq4VOQhYM78D/j0Iyj0QIstssnRPWcg4QL9l5c7Y8rLRH63qfGOi fakmmY6C1JnW/wm4+2iUOc0/DbM+kKS5yXsiRFW7CDeqXLUEF1NIRvNaHkmfRmQf shDI8NJCr0ULMbUde3b1U0LKgMRr7uVnVRFb2bPkEFh1mDEaxpy376+2Rpn8uHOu GvqYBACJzY7EPP0fFQMMxeSyxHA7A/lxmC9/s1YtRgBHTCniYOQIZ+kwbFrU9XQv ExvMeO2DvYAtDNyCgV/PaUm0yLxCAmxSVxQaAMRkOuMSKatyBggLpJVZKQ4WuayL 3xA+ws2+F2ozC/LHK9DodkGen35lP286QyPXOV2WciE4YciU3bQsUm9kcmlnbyBT IFdhbmRlcmxleSA8cndhbmRlcmxleUBuYXRhbG5ldC5icj6IZAQTEQIAJAUCQonb zwIbAwUJAeEzgAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRBuM/JKbknmQugDAKC6 ZfWsa8qone19+oppGBkrX028QACfUfLi9rSs/qxmE77b0P+xa2IrWN25Ag0EQonb 2xAIANBkeWLFcVSxSCsCQEH8HJ80VhQO18Sy80MpXebf9sj1gwUATZJ/OcxYYw46 ZrFwNk9raTRULprAcqR5ORKk3TNZ6ZnEl337PZZS5FnELwsHXTm+KVKF3bE2nnB5 /25SzPwkidsyk8Pe3HYM9/r4dwHNOXE3i0nYsweC/aUE8yg/3Ipweu9K1cj+XbSM IpDydOmBpvVhIvv+VOIoevXxgm2hrD7LQ7jnfBaj/bV9GY/tJyl50nWgMM7csaAg +4H1lG5/FvzNOgudmhzAdMk5lyTMLyRj6wiYkvckvBCXFaC04FgseylRj72NZilQ xIstJWNomiATkC6uHYtOKExZ1xcAAwUIALTSG+l21w/W3L9iuEi8QK91n7LyHoO/ OJpYbj73sJWsui7qG63os8aR+KgbdbKNFGDwkyYfbfildYDd+TOkFWkbT64vq4Wv t51Pl2dB0+0cnO/xqRnbxt4II7SBwg5t1u/MHahaULoTcTYslN+bW9FuB9I22ZiJ pzFddDWjWApggNQIEapCd+XiuYnED6rV+n0GcmZxpb9Iz0mak7SPCZvN3QzPCI/6 k2YZlt92I/k4E2GU9NVM/1mXkTgqVgwOwlunPW6JYgcv/3n2Ly1eMNJQioWGRSnZ wQyVx7FvBUqMGLrWHTw3+FQRDd6B6pQ2Y4uL0W4LskQrXm97hhW5NuKITwQYEQIA DwUCQonb2wIbDAUJAeEzgAAKCRBuM/JKbknmQuXzAKDTa3d+h15/KHHupI6AMkNr YKRP3ACggEq09XZBLGulCU2e6+/I0j4iN3U= =JhUw -END PGP PUBLIC KEY BLOCK- ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel
Re: [Bulk] Re: [PATCH] grub2: commands/cmp.c: grub_cmd_cmp()
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Marco Gerards wrote: > I think BUFFER_SIZE would be a better name. Another size can be > used. Perhaps it is better to use a bigger buffer size? As we read from a block device, I think the best size would be a multiple of the block size... But yes, it could be named buffer size. And it could even be dynamicaly allocated, to prevent using too much space on stack. > Huh? Some remains from a change-and-undo... I'll send a new patch with a correct changelog :). Vincent Pelletier -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFCw8j8FEQoKRQyjtURApAVAKCUiOSXjhRmv5Sy/Hkct/9rqZjapwCeNZws iYms73xiAlh3TMEgfIoctA4= =+ko/ -END PGP SIGNATURE- ___ Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger Téléchargez cette version sur http://fr.messenger.yahoo.com ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel
Re: [PATCH] grub2: commands/cmp.c: grub_cmd_cmp()
Vincent Pelletier <[EMAIL PROTECTED]> writes: Hi Vincent, Thanks for your patch. It looks ok to me. A few small comments... > 2005-06-29 Vincent Pelletier <[EMAIL PROTECTED]> > > * commands/cmp.c > (grub_cmd_cmp): Close the right file at the right time. Compare > only data just read. Don't report files of different size as > identical. (BLOCK_SIZE): New macro. The (BLOCK_SIZE) stuff should be put on a new line. I think BUFFER_SIZE would be a better name. Another size can be used. Perhaps it is better to use a bigger buffer size? > >if (grub_file_size (file1) != grub_file_size (file2)) > -grub_printf ("Differ in size: %d [%s], %d [%s]\n", > - grub_file_size (file1), args[0], > - grub_file_size (file2), args[1]); > +{ > + grub_printf ("Differ in size: %d [%s], %d [%s]\n", > +grub_file_size (file1), args[0], > +grub_file_size (file2), args[1]); > +} Huh? Thanks, Marco ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel