diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index dd5dcfe400d489c93c6ce4d6d73430c17320d3bb..eb5c056ad26c72d39f58e1e1d38fa4572fc8a1b1 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -516,6 +516,14 @@ running once the system is up. [KNL,BOOT] Force usage of a specific region of memory Region of memory to be used, from ss to ss+nn. + mem=nn[KMG]#ss[KMG] + [KNL,BOOT,ACPI] Mark specific memory as ACPI data. + Region of memory to be used, from ss to ss+nn. + + mem=nn[KMG]$ss[KMG] + [KNL,BOOT,ACPI] Mark specific memory as reserved. + Region of memory to be used, from ss to ss+nn. + mem=nopentium [BUGS=IA-32] Disable usage of 4MB pages for kernel memory. diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 203b37b816792698dbf8f85a3aa0b12e91491168..ba62d7575bd2f29d266f6188dc4d7f05c3778184 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c @@ -545,6 +545,12 @@ static void __init parse_cmdline_early (char ** cmdline_p) if (*from == '@') { start_at = memparse(from+1, &from); add_memory_region(start_at, mem_size, E820_RAM); + } else if (*from == '#') { + start_at = memparse(from+1, &from); + add_memory_region(start_at, mem_size, E820_ACPI); + } else if (*from == '$') { + start_at = memparse(from+1, &from); + add_memory_region(start_at, mem_size, E820_RESERVED); } else { limit_regions(mem_size); userdef=1;