Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

amd64 needs updates to x86/x86/cpu.c



As a result of the recent introduction of additional #ifdef/#endif in the kernel, an amd64 kernel will not build if MULTIPROCESSOR is defined without also having MPBIOS. (The comments for MPBIOS in GENERIC config file strongly indicate that lack of MPBIOS will "fall back" to using ACPICA, so MPBIOS should not be mandatory.)

The attached patch additionally includes acpica.h in order to create the mp_verbose variable, and includes mpbiosvar.h in all MULTIPROCESSOR kernels in order to define MP_TRAMPOLINE

(The MP_TRAMPOLINE definition could, arguably, be moved somewhere else, since it is used in all MP systems, and not only those with MPBIOS.)

Comments? Any reason why this change should not be committed? (Are we by any chance going to back out the conditionals?)


-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------
Index: src/sys/arch/x86/x86/cpu.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/cpu.c,v
retrieving revision 1.101
diff -u -p -r1.101 cpu.c
--- src/sys/arch/x86/x86/cpu.c  8 Dec 2012 12:36:31 -0000       1.101
+++ src/sys/arch/x86/x86/cpu.c  10 Dec 2012 02:08:22 -0000
@@ -89,13 +89,16 @@ __KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.10
 
 #include <uvm/uvm.h>
 
+#include "acpica.h"            /* for NACPICA, for mp_verbose */
+
 #include <machine/cpufunc.h>
 #include <machine/cpuvar.h>
 #include <machine/pmap.h>
 #include <machine/vmparam.h>
-#if MPBIOS > 0
+#if MPBIOS > 0 || defined(MULTIPROCESSOR)
 #include <machine/mpbiosvar.h>
 #endif
+#include <machine/mpconfig.h>          /* for mp_verbose */
 #include <machine/pcb.h>
 #include <machine/specialreg.h>
 #include <machine/segments.h>


Home | Main Index | Thread Index | Old Index