* stage2/boot.c: Imply --no-mem-option for Linux kernels with
protocol version 2.03 and above (Linux 2.4.18 and newer).
This commit is contained in:
parent
4f29a8af45
commit
065f6e0a20
4 changed files with 23 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-03-28 Pavel Roskin <proski@gnu.org>
|
||||
|
||||
* stage2/boot.c: Imply --no-mem-option for Linux kernels with
|
||||
protocol version 2.03 and above (Linux 2.4.18 and newer).
|
||||
|
||||
2004-03-27 Yoshinori K. Okuji <okuji@enbug.org>
|
||||
|
||||
* stage2/char_io.c [!GRUB_UTIL] (memcpy): New function. It is
|
||||
|
|
1
NEWS
1
NEWS
|
@ -6,6 +6,7 @@ New:
|
|||
* Support ATARAID for Linux in the grub shell and grub-install.
|
||||
* Add CDROM support for El Torito with no emulation mode. You can use
|
||||
(cd) as a CDROM drive in the config file.
|
||||
* Option --no-mem-option is implied for Linux 2.4.18 and newer.
|
||||
|
||||
New in 0.94 - 2004-01-25:
|
||||
* Support building on x86-64 with gcc -m32.
|
||||
|
|
|
@ -2735,7 +2735,7 @@ a kernel type in the other cases, quite safely.
|
|||
|
||||
The option @option{--no-mem-option} is effective only for Linux. If the
|
||||
option is specified, GRUB doesn't pass the option @option{mem=} to the
|
||||
kernel.
|
||||
kernel. This option is implied for Linux kernels 2.4.18 and newer.
|
||||
@end deffn
|
||||
|
||||
|
||||
|
|
|
@ -407,10 +407,24 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
|
|||
while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
|
||||
*(dest++) = *(src++);
|
||||
|
||||
/* Add a mem option automatically only if the user doesn't
|
||||
specify it explicitly. */
|
||||
/* Old Linux kernels have problems determining the amount of
|
||||
the available memory. To work around this problem, we add
|
||||
the "mem" option to the kernel command line. This has its
|
||||
own drawbacks because newer kernels can determine the
|
||||
memory map more accurately. Boot protocol 2.03, which
|
||||
appeared in Linux 2.4.18, provides a pointer to the kernel
|
||||
version string, so we could check it. But since kernel
|
||||
2.4.18 and newer are known to detect memory reliably, boot
|
||||
protocol 2.03 already implies that the kernel is new
|
||||
enough. The "mem" option is added if neither of the
|
||||
following conditions is met:
|
||||
1) The "mem" option is already present.
|
||||
2) The "kernel" command is used with "--no-mem-option".
|
||||
3) GNU GRUB is configured not to pass the "mem" option.
|
||||
4) The kernel supports boot protocol 2.03 or newer. */
|
||||
if (! grub_strstr (arg, "mem=")
|
||||
&& ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION)
|
||||
&& lh->version < 0x0203 /* kernel version < 2.4.18 */
|
||||
&& dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET)
|
||||
{
|
||||
*dest++ = ' ';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue