Messages in this thread Patch in this message | | | Date | Sun, 9 Mar 2003 23:16:24 +0100 | From | Pavel Machek <> | Subject | Fix mem= options |
| |
Hi!
HPA told me bootloaders need to parse mem=, so we should invent other option for stuff like mem=exactmap. Please apply, Pavel
--- clean/arch/i386/kernel/setup.c 2003-03-06 23:25:14.000000000 +0100 +++ linux/arch/i386/kernel/setup.c 2003-03-08 00:18:21.000000000 +0100 @@ -527,6 +527,9 @@ * to <mem>, overriding the bios size. * "mem=XXX[KkmM]@XXX[KkmM]" defines a memory region from * <start> to <start>+<mem>, overriding the bios size. + * + * HPA tells me bootloaders need to parse mem=, so no new + * option should be mem= */ if (c == ' ' && !memcmp(from, "mem=", 4)) { if (to != command_line) @@ -535,8 +538,24 @@ from += 9+4; clear_bit(X86_FEATURE_PSE, boot_cpu_data.x86_capability); disable_pse = 1; - } else if (!memcmp(from+4, "exactmap", 8)) { - from += 8+4; + } else { + /* If the user specifies memory size, we + * limit the BIOS-provided memory map to + * that size. exactmap can be used to specify + * the exact map. mem=number can be used to + * trim the existing memory map. + */ + unsigned long long start_at, mem_size; + + mem_size = memparse(from+4, &from); + } + } + + if (c == ' ' && !memcmp(from, "memmap=", 7)) { + if (to != command_line) + to--; + if (!memcmp(from+7, "exactmap", 8)) { + from += 8+7; e820.nr_map = 0; userdef = 1; } else { @@ -548,7 +567,7 @@ */ unsigned long long start_at, mem_size; - mem_size = memparse(from+4, &from); + mem_size = memparse(from+7, &from); if (*from == '@') { start_at = memparse(from+1, &from); add_memory_region(start_at, mem_size, E820_RAM); -- When do you have a heart between your knees? [Johanka's followup: and *two* hearts?] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |