]> Zhao Yanbai Git Server - minix.git/commitdiff
SMP - no_apic=0 and acpi=1 set when CONFIG_SMP=y
authorTomas Hruby <tom@minix3.org>
Wed, 25 Jan 2012 19:02:13 +0000 (19:02 +0000)
committerTomas Hruby <tom@minix3.org>
Wed, 25 Jan 2012 19:02:13 +0000 (19:02 +0000)
- this is a temporary change which makes images compiled for SMP
  boot in SMP mode by default.

- this change is needed until we can configure the multiboot
  images from the boot loader again.

kernel/arch/i386/arch_system.c

index 3001df55124516601bbf0272bfbbbeedf4c6deb6..b4f33ab2121c3f66b4d9cf56e693dc2692216f6a 100644 (file)
@@ -650,9 +650,31 @@ u32_t params_size, params_offset, mon_ds;
 
 PUBLIC int arch_get_params(char *params, int maxsize)
 {
-       phys_copy(seg2phys(mon_ds) + params_offset, vir2phys(params),
-               MIN(maxsize, params_size));
+       int size = 0;
+
+#ifdef CONFIG_SMP
+       /*
+        * FIXME
+        * This is a TEMPORARY change until we can pass boot
+        * command line to multiboot kernels from the boot
+        * monitor
+        *
+        * '\0' separated list of command line options
+        */
+       char cmdline[] = "no_apic=0\0acpi=1";
+
+       if (maxsize < sizeof(cmdline) - 1)
+               panic("cmdline (%d) exceeds maxsize (%d)",
+                               sizeof(cmdline), maxsize);
+       memcpy(params, cmdline, sizeof(cmdline));
+       size = sizeof(cmdline);
+       params[size+1] = '\0';
+#endif
+
+       phys_copy(seg2phys(mon_ds) + params_offset, vir2phys(params + size),
+               MIN(maxsize - size, params_size));
        params[maxsize-1] = '\0';
+
        return OK;
 }