patch-2.4.23 linux-2.4.23/arch/x86_64/kernel/e820.c

Next file: linux-2.4.23/arch/x86_64/kernel/entry.S
Previous file: linux-2.4.23/arch/x86_64/kernel/bluesmoke.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.22/arch/x86_64/kernel/e820.c linux-2.4.23/arch/x86_64/kernel/e820.c
@@ -1,7 +1,7 @@
 /* 
  * Handle the memory map.
  * The functions here do the job until bootmem takes over.
- * $Id: e820.c,v 1.6 2002/10/15 09:35:16 ak Exp $
+ * $Id: e820.c,v 1.11 2003/10/11 15:16:35 ak Exp $
  */
 #include <linux/config.h>
 #include <linux/kernel.h>
@@ -12,7 +12,11 @@
 #include <asm/page.h>
 #include <asm/e820.h>
 #include <asm/proto.h>
+#include <asm/acpi.h>
+#include <asm/apic.h>
 #include <asm/bootsetup.h>
+#include <asm/mpspec.h>
+#include <asm/io_apic.h>
 
 extern unsigned long table_start, table_end;
 extern char _end[];
@@ -488,7 +492,6 @@
 			mem_size = ALT_MEM_K;
 			who = "BIOS-e801";
 		}
-
 		e820.nr_map = 0;
 		add_memory_region(0, LOWMEMSIZE(), E820_RAM);
 		add_memory_region(HIGH_MEMORY, mem_size << 10, E820_RAM);
@@ -500,7 +503,6 @@
 extern char command_line[], saved_command_line[];
 extern int fallback_aper_order;
 extern int iommu_setup(char *opt);
-extern int acpi_disabled;
 
 void __init parse_mem_cmdline (char ** cmdline_p)
 {
@@ -539,8 +541,27 @@
 			iommu_setup(from+6); 
 		} 	
 #endif
+#ifdef	CONFIG_ACPI_BOOT
  		else if (!memcmp(from, "acpi=off", 8))
   			acpi_disabled = 1;
+		else if (!memcmp(from, "pci=noacpi", 10)) {
+			acpi_noirq_set();
+		}
+#endif
+		else if (!memcmp(from,"maxcpus=0",9)) {
+			disable_ioapic_setup();
+			apic_disabled = 1;
+		}
+		
+		else if (!memcmp(from, "noapic", 6)) 
+			disable_ioapic_setup();
+		else if (!memcmp(from, "nolocalapic", 11) || !memcmp(from,"nolapic",7))
+			apic_disabled = 1;
+		else if (!memcmp(from,"apic",4)) {
+			extern int ioapic_force;
+			ioapic_force = 1;
+			skip_ioapic_setup = 0;
+		}
 		
 	next:
 		c = *(from++);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)