Wed Aug 5 20:15:37 2009 UTC ()
Add Intel SpeedStep and AMD PowerNow! support in Xen dom0. MSR operations
are now compiled in by default.

Note that MSR support in Xen depends on its version. rdmsr() should always
succeed, but wrmsr() to certain registers can end in a NOOP. In that case,
the error will be logged (see xm dmesg).

Setting CPU frequency (SpeedStep) requires Xen 3.3 with the option
cpufreq="dom0-kernel" passed down to hypervisor during boot.

Compiled and tested for SpeedStep under i386 for XEN3_DOM0 and XEN3PAE_DOM0
by jym@. amd64 was tested by Joel Carnat.

See also http://mail-index.netbsd.org/port-xen/2009/08/02/msg005213.html .

Commit requested by bouyer@.


(jym)
diff -r1.42 -r1.43 src/sys/arch/amd64/conf/XEN3_DOM0
diff -r1.18 -r1.19 src/sys/arch/i386/conf/XEN3_DOM0
diff -r1.28 -r1.29 src/sys/arch/x86/include/cpuvar.h
diff -r1.32 -r1.33 src/sys/arch/x86/x86/x86_machdep.c
diff -r1.20 -r1.21 src/sys/arch/xen/conf/files.compat
diff -r1.102 -r1.103 src/sys/arch/xen/conf/files.xen

cvs diff -r1.42 -r1.43 src/sys/arch/amd64/conf/XEN3_DOM0 (expand / switch to unified diff)

--- src/sys/arch/amd64/conf/XEN3_DOM0 2009/04/20 20:50:37 1.42
+++ src/sys/arch/amd64/conf/XEN3_DOM0 2009/08/05 20:15:36 1.43
@@ -1,33 +1,40 @@ @@ -1,33 +1,40 @@
1# $NetBSD: XEN3_DOM0,v 1.42 2009/04/20 20:50:37 cegger Exp $ 1# $NetBSD: XEN3_DOM0,v 1.43 2009/08/05 20:15:36 jym Exp $
2 2
3include "arch/amd64/conf/std.xen" 3include "arch/amd64/conf/std.xen"
4 4
5options INCLUDE_CONFIG_FILE # embed config file in kernel binary 5options INCLUDE_CONFIG_FILE # embed config file in kernel binary
6 6
7#options UVMHIST 7#options UVMHIST
8#options UVMHIST_PRINT 8#options UVMHIST_PRINT
9#options SYSCALL_DEBUG 9#options SYSCALL_DEBUG
10 10
11maxusers 32 # estimated number of users 11maxusers 32 # estimated number of users
12 12
13# 13#
14options DOM0OPS 14options DOM0OPS
15# boot messages with MPBIOS, acpi and ioapic can be quite large 15# boot messages with MPBIOS, acpi and ioapic can be quite large
16options MSGBUFSIZE=24576 16options MSGBUFSIZE=24576
17 17
18#options VM86 # virtual 8086 emulation 18#options VM86 # virtual 8086 emulation
19#options USER_LDT # user-settable LDT; used by WINE 19#options USER_LDT # user-settable LDT; used by WINE
20 20
 21# Enhanced SpeedStep Technology in the Pentium M
 22options ENHANCED_SPEEDSTEP
 23#options EST_FREQ_USERWRITE # any user can set frequency
 24
 25# AMD PowerNow! and Cool`n'Quiet technology
 26options POWERNOW_K8
 27
21#options MTRR # memory-type range register syscall support 28#options MTRR # memory-type range register syscall support
22 29
23#options CONSDEVNAME="\"xencons\"" 30#options CONSDEVNAME="\"xencons\""
24#options CONS_OVERRIDE 31#options CONS_OVERRIDE
25 32
26options INSECURE # disable kernel security levels - X needs this 33options INSECURE # disable kernel security levels - X needs this
27 34
28options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT 35options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT
29options NTP # NTP phase/frequency locked loop 36options NTP # NTP phase/frequency locked loop
30 37
31options KTRACE # system call tracing via ktrace(1) 38options KTRACE # system call tracing via ktrace(1)
32 39
33options SYSVMSG # System V-like message queues 40options SYSVMSG # System V-like message queues

cvs diff -r1.18 -r1.19 src/sys/arch/i386/conf/Attic/XEN3_DOM0 (expand / switch to unified diff)

--- src/sys/arch/i386/conf/Attic/XEN3_DOM0 2009/07/29 13:37:57 1.18
+++ src/sys/arch/i386/conf/Attic/XEN3_DOM0 2009/08/05 20:15:36 1.19
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: XEN3_DOM0,v 1.18 2009/07/29 13:37:57 cegger Exp $ 1# $NetBSD: XEN3_DOM0,v 1.19 2009/08/05 20:15:36 jym Exp $
2# 2#
3# XEN3_0: Xen 3.0 domain0 kernel 3# XEN3_0: Xen 3.0 domain0 kernel
4 4
5include "arch/xen/conf/std.xen" 5include "arch/xen/conf/std.xen"
6 6
7options INCLUDE_CONFIG_FILE # embed config file in kernel binary 7options INCLUDE_CONFIG_FILE # embed config file in kernel binary
8 8
9#options UVMHIST 9#options UVMHIST
10#options UVMHIST_PRINT 10#options UVMHIST_PRINT
11#options SYSCALL_DEBUG 11#options SYSCALL_DEBUG
12 12
13maxusers 32 # estimated number of users 13maxusers 32 # estimated number of users
14 14
@@ -19,26 +19,36 @@ options XEN @@ -19,26 +19,36 @@ options XEN
19# boot messages with MPBIOS, acpi and ioapic can be quite large 19# boot messages with MPBIOS, acpi and ioapic can be quite large
20options MSGBUFSIZE=24576 20options MSGBUFSIZE=24576
21 21
22options DOM0OPS 22options DOM0OPS
23# making MCLBYTES = PAGE_SIZE avoids a copy when a mbuf cluster is sent 23# making MCLBYTES = PAGE_SIZE avoids a copy when a mbuf cluster is sent
24# to a domU, at the expense of a higher memory usage by the network stack. 24# to a domU, at the expense of a higher memory usage by the network stack.
25#options MCLSHIFT=12 25#options MCLSHIFT=12
26 26
27makeoptions CPUFLAGS="-march=i686" 27makeoptions CPUFLAGS="-march=i686"
28 28
29#options VM86 # virtual 8086 emulation 29#options VM86 # virtual 8086 emulation
30#options USER_LDT # user-settable LDT; used by WINE 30#options USER_LDT # user-settable LDT; used by WINE
31 31
 32# Enhanced SpeedStep Technology in the Pentium M
 33options ENHANCED_SPEEDSTEP
 34#options EST_FREQ_USERWRITE # any user can set frequency
 35
 36# AMD PowerNow! K7
 37options POWERNOW_K7
 38
 39# AMD PowerNow! and Cool`n'Quiet technology
 40options POWERNOW_K8
 41
32#options MTRR # memory-type range register syscall support 42#options MTRR # memory-type range register syscall support
33 43
34#options CONSDEVNAME="\"xencons\"" 44#options CONSDEVNAME="\"xencons\""
35#options CONS_OVERRIDE 45#options CONS_OVERRIDE
36 46
37options INSECURE # disable kernel security levels - X needs this 47options INSECURE # disable kernel security levels - X needs this
38 48
39options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT 49options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT
40options NTP # NTP phase/frequency locked loop 50options NTP # NTP phase/frequency locked loop
41 51
42options KTRACE # system call tracing via ktrace(1) 52options KTRACE # system call tracing via ktrace(1)
43 53
44options SYSVMSG # System V-like message queues 54options SYSVMSG # System V-like message queues

cvs diff -r1.28 -r1.29 src/sys/arch/x86/include/cpuvar.h (expand / switch to unified diff)

--- src/sys/arch/x86/include/cpuvar.h 2009/03/11 03:34:43 1.28
+++ src/sys/arch/x86/include/cpuvar.h 2009/08/05 20:15:36 1.29
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: cpuvar.h,v 1.28 2009/03/11 03:34:43 yamt Exp $ */ 1/* $NetBSD: cpuvar.h,v 1.29 2009/08/05 20:15:36 jym Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2000, 2007 The NetBSD Foundation, Inc. 4 * Copyright (c) 2000, 2007 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by RedBack Networks Inc. 8 * by RedBack Networks Inc.
9 * 9 *
10 * Author: Bill Sommerfeld 10 * Author: Bill Sommerfeld
11 * 11 *
12 * Redistribution and use in source and binary forms, with or without 12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions 13 * modification, are permitted provided that the following conditions
14 * are met: 14 * are met:
@@ -78,28 +78,28 @@ extern const struct cpu_functions mp_cpu @@ -78,28 +78,28 @@ extern const struct cpu_functions mp_cpu
78#define CPU_ROLE_BP 1 78#define CPU_ROLE_BP 1
79#define CPU_ROLE_AP 2 79#define CPU_ROLE_AP 2
80 80
81struct cpu_attach_args { 81struct cpu_attach_args {
82 int cpu_number; 82 int cpu_number;
83 int cpu_role; 83 int cpu_role;
84 const struct cpu_functions *cpu_func; 84 const struct cpu_functions *cpu_func;
85}; 85};
86 86
87#ifdef _KERNEL 87#ifdef _KERNEL
88 88
89#if defined(_KERNEL_OPT) 89#if defined(_KERNEL_OPT)
90#include "opt_multiprocessor.h" 90#include "opt_multiprocessor.h"
91#ifndef XEN 
92#include "opt_enhanced_speedstep.h" 91#include "opt_enhanced_speedstep.h"
 92#ifndef XEN
93#include "opt_intel_coretemp.h" 93#include "opt_intel_coretemp.h"
94#include "opt_intel_odcm.h" 94#include "opt_intel_odcm.h"
95#endif 95#endif
96#endif /* defined(_KERNEL_OPT) */ 96#endif /* defined(_KERNEL_OPT) */
97 97
98#ifdef MULTIPROCESSOR 98#ifdef MULTIPROCESSOR
99extern uint32_t cpus_running; 99extern uint32_t cpus_running;
100#endif 100#endif
101 101
102int x86_ipi(int, int, int); 102int x86_ipi(int, int, int);
103void x86_self_ipi(int); 103void x86_self_ipi(int);
104int x86_ipi_init(int); 104int x86_ipi_init(int);
105int x86_ipi_startup(int, int); 105int x86_ipi_startup(int, int);

cvs diff -r1.32 -r1.33 src/sys/arch/x86/x86/x86_machdep.c (expand / switch to unified diff)

--- src/sys/arch/x86/x86/x86_machdep.c 2009/06/20 13:10:14 1.32
+++ src/sys/arch/x86/x86/x86_machdep.c 2009/08/05 20:15:36 1.33
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: x86_machdep.c,v 1.32 2009/06/20 13:10:14 cegger Exp $ */ 1/* $NetBSD: x86_machdep.c,v 1.33 2009/08/05 20:15:36 jym Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi, 4 * Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi,
5 * Copyright (c) 2005, 2008, 2009 The NetBSD Foundation, Inc. 5 * Copyright (c) 2005, 2008, 2009 The NetBSD Foundation, Inc.
6 * All rights reserved. 6 * All rights reserved.
7 * 7 *
8 * This code is derived from software contributed to The NetBSD Foundation 8 * This code is derived from software contributed to The NetBSD Foundation
9 * by Julio M. Merino Vidal. 9 * by Julio M. Merino Vidal.
10 * 10 *
11 * Redistribution and use in source and binary forms, with or without 11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions 12 * modification, are permitted provided that the following conditions
13 * are met: 13 * are met:
14 * 1. Redistributions of source code must retain the above copyright 14 * 1. Redistributions of source code must retain the above copyright
@@ -21,27 +21,27 @@ @@ -21,27 +21,27 @@
21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE. 30 * POSSIBILITY OF SUCH DAMAGE.
31 */ 31 */
32 32
33#include <sys/cdefs.h> 33#include <sys/cdefs.h>
34__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.32 2009/06/20 13:10:14 cegger Exp $"); 34__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.33 2009/08/05 20:15:36 jym Exp $");
35 35
36#include "opt_modular.h" 36#include "opt_modular.h"
37 37
38#include <sys/types.h> 38#include <sys/types.h>
39#include <sys/param.h> 39#include <sys/param.h>
40#include <sys/systm.h> 40#include <sys/systm.h>
41#include <sys/kcore.h> 41#include <sys/kcore.h>
42#include <sys/errno.h> 42#include <sys/errno.h>
43#include <sys/kauth.h> 43#include <sys/kauth.h>
44#include <sys/mutex.h> 44#include <sys/mutex.h>
45#include <sys/cpu.h> 45#include <sys/cpu.h>
46#include <sys/intr.h> 46#include <sys/intr.h>
47#include <sys/atomic.h> 47#include <sys/atomic.h>
@@ -120,29 +120,27 @@ check_pa_acc(paddr_t pa, vm_prot_t prot) @@ -120,29 +120,27 @@ check_pa_acc(paddr_t pa, vm_prot_t prot)
120 } 120 }
121 } 121 }
122 122
123 return kauth_authorize_machdep(kauth_cred_get(), 123 return kauth_authorize_machdep(kauth_cred_get(),
124 KAUTH_MACHDEP_UNMANAGEDMEM, NULL, NULL, NULL, NULL); 124 KAUTH_MACHDEP_UNMANAGEDMEM, NULL, NULL, NULL, NULL);
125} 125}
126 126
127/* 127/*
128 * This function is to initialize the mutex used by x86/msr_ipifuncs.c. 128 * This function is to initialize the mutex used by x86/msr_ipifuncs.c.
129 */ 129 */
130void 130void
131x86_init(void) 131x86_init(void)
132{ 132{
133#ifndef XEN 
134 msr_cpu_broadcast_initmtx(); 133 msr_cpu_broadcast_initmtx();
135#endif 
136} 134}
137 135
138#ifdef MODULAR 136#ifdef MODULAR
139/* 137/*
140 * Push any modules loaded by the boot loader. 138 * Push any modules loaded by the boot loader.
141 */ 139 */
142void 140void
143module_init_md(void) 141module_init_md(void)
144{ 142{
145 struct btinfo_modulelist *biml; 143 struct btinfo_modulelist *biml;
146 struct bi_modulelist_entry *bi, *bimax; 144 struct bi_modulelist_entry *bi, *bimax;
147 145
148 biml = lookup_bootinfo(BTINFO_MODULELIST); 146 biml = lookup_bootinfo(BTINFO_MODULELIST);

cvs diff -r1.20 -r1.21 src/sys/arch/xen/conf/files.compat (expand / switch to unified diff)

--- src/sys/arch/xen/conf/files.compat 2009/07/29 12:02:06 1.20
+++ src/sys/arch/xen/conf/files.compat 2009/08/05 20:15:37 1.21
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: files.compat,v 1.20 2009/07/29 12:02:06 cegger Exp $ 1# $NetBSD: files.compat,v 1.21 2009/08/05 20:15:37 jym Exp $
2# NetBSD: files.x86,v 1.10 2003/10/08 17:30:00 bouyer Exp  2# NetBSD: files.x86,v 1.10 2003/10/08 17:30:00 bouyer Exp
3 3
4# options for MP configuration through the MP spec 4# options for MP configuration through the MP spec
5#defflag opt_mpbios.h MPBIOS MPVERBOSE MPDEBUG MPBIOS_SCANPCI 5#defflag opt_mpbios.h MPBIOS MPVERBOSE MPDEBUG MPBIOS_SCANPCI
6#defflag opt_mpacpi.h MPACPI MPACPI_SCANPCI 6#defflag opt_mpacpi.h MPACPI MPACPI_SCANPCI
7 7
8# MTRR support 8# MTRR support
9defflag MTRR 9defflag MTRR
10 10
11defflag opt_xen.h XEN PAE 11defflag opt_xen.h XEN PAE
12 12
13 13
14# XXX define fake options to make config create the .h files 14# XXX define fake options to make config create the .h files
@@ -47,27 +47,18 @@ defflag opt_largepages.h XXXLARGEPAGES @@ -47,27 +47,18 @@ defflag opt_largepages.h XXXLARGEPAGES
47 47
48# kernel stack debug 48# kernel stack debug
49defflag opt_kstack_dr0.h XXXKSTACK_CHECK_DR0 49defflag opt_kstack_dr0.h XXXKSTACK_CHECK_DR0
50 50
51# Microsoft Xbox support 51# Microsoft Xbox support
52defflag opt_xbox.h XXXXBOX 52defflag opt_xbox.h XXXXBOX
53 53
54#Pentium 4+ Thermal Monitor ODCM (aka On Demand Clock Modulation) 54#Pentium 4+ Thermal Monitor ODCM (aka On Demand Clock Modulation)
55defflag opt_intel_odcm.h XXXINTEL_ONDEMAND_CLOCKMOD 55defflag opt_intel_odcm.h XXXINTEL_ONDEMAND_CLOCKMOD
56 56
57# Intel On Die Temperature sensor 57# Intel On Die Temperature sensor
58defflag opt_intel_coretemp.h XXXINTEL_CORETEMP 58defflag opt_intel_coretemp.h XXXINTEL_CORETEMP
59 59
60# AMD Powernow/Cool`n'Quiet Technology 
61defflag opt_powernow_k8.h XXPOWERNOW_K8 
62 
63# Intel Enhanced Speedstep 
64defflag opt_enhanced_speedstep.h XXXENHANCED_SPEEDSTEP 
65defflag opt_est.h XXXEST_FREQ_USERWRITE 
66 
67defflag opt_powernow_k7.h XXXPOWERNOW_K7 
68 
69# Multiboot support 60# Multiboot support
70defflag opt_multiboot.h XXXMULTIBOOT 61defflag opt_multiboot.h XXXMULTIBOOT
71 62
72# The PHYSMEM_MAX_{SIZE,ADDR} optionms 63# The PHYSMEM_MAX_{SIZE,ADDR} optionms
73defparam opt_physmem.h XXXPHYSMEM_MAX_ADDR XXXPHYSMEM_MAX_SIZE 64defparam opt_physmem.h XXXPHYSMEM_MAX_ADDR XXXPHYSMEM_MAX_SIZE

cvs diff -r1.102 -r1.103 src/sys/arch/xen/conf/files.xen (expand / switch to unified diff)

--- src/sys/arch/xen/conf/files.xen 2009/07/29 12:02:06 1.102
+++ src/sys/arch/xen/conf/files.xen 2009/08/05 20:15:37 1.103
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: files.xen,v 1.102 2009/07/29 12:02:06 cegger Exp $ 1# $NetBSD: files.xen,v 1.103 2009/08/05 20:15:37 jym Exp $
2# NetBSD: files.x86,v 1.10 2003/10/08 17:30:00 bouyer Exp  2# NetBSD: files.x86,v 1.10 2003/10/08 17:30:00 bouyer Exp
3# NetBSD: files.i386,v 1.254 2004/03/25 23:32:10 jmc Exp  3# NetBSD: files.i386,v 1.254 2004/03/25 23:32:10 jmc Exp
4 4
5maxpartitions 8 5maxpartitions 8
6 6
7maxusers 2 16 128 7maxusers 2 16 128
8 8
9defparam opt_kernbase.h KERNBASE 9defparam opt_kernbase.h KERNBASE
10 10
11# options for MP configuration through the MP spec 11# options for MP configuration through the MP spec
12defflag opt_mpbios.h MPBIOS MPVERBOSE MPDEBUG MPBIOS_SCANPCI 12defflag opt_mpbios.h MPBIOS MPVERBOSE MPDEBUG MPBIOS_SCANPCI
13 13
14# delay before cpu_reset() for reboot. 14# delay before cpu_reset() for reboot.
@@ -16,26 +16,38 @@ defparam CPURESET_DELAY @@ -16,26 +16,38 @@ defparam CPURESET_DELAY
16 16
17# Beep on halt 17# Beep on halt
18defflag opt_beep.h BEEP_ONHALT 18defflag opt_beep.h BEEP_ONHALT
19defparam opt_beep.h BEEP_ONHALT_COUNT=3 19defparam opt_beep.h BEEP_ONHALT_COUNT=3
20defparam opt_beep.h BEEP_ONHALT_PITCH=1500 20defparam opt_beep.h BEEP_ONHALT_PITCH=1500
21defparam opt_beep.h BEEP_ONHALT_PERIOD=250 21defparam opt_beep.h BEEP_ONHALT_PERIOD=250
22 22
23# PCI fixup options 23# PCI fixup options
24defflag opt_pcifixup.h PCI_ADDR_FIXUP PCI_BUS_FIXUP 24defflag opt_pcifixup.h PCI_ADDR_FIXUP PCI_BUS_FIXUP
25 PCI_INTR_FIXUP PCI_INTR_FIXUP_FORCE 25 PCI_INTR_FIXUP PCI_INTR_FIXUP_FORCE
26 26
27defparam PCI_CONF_MODE 27defparam PCI_CONF_MODE
28 28
 29# Intel Enhanced Speedstep
 30defflag ENHANCED_SPEEDSTEP
 31defflag opt_est.h EST_FREQ_USERWRITE
 32file arch/x86/x86/est.c enhanced_speedstep
 33file arch/x86/x86/intel_busclock.c enhanced_speedstep
 34
 35# AMD Powernow/Cool`n'Quiet Technology
 36defflag opt_powernow_k8.h POWERNOW_K8
 37# Powernow common functions
 38file arch/x86/x86/powernow_k8.c powernow_k8
 39file arch/x86/x86/powernow_common.c powernow_k8 | powernow_k7
 40
29file arch/xen/x86/autoconf.c 41file arch/xen/x86/autoconf.c
30ifdef i386 42ifdef i386
31file arch/i386/i386/aout_machdep.c exec_aout 43file arch/i386/i386/aout_machdep.c exec_aout
32file arch/i386/i386/busfunc.S 44file arch/i386/i386/busfunc.S
33file arch/i386/i386/cpufunc.S 45file arch/i386/i386/cpufunc.S
34file arch/i386/i386/cpu_in_cksum.S (inet | inet6) & cpu_in_cksum 46file arch/i386/i386/cpu_in_cksum.S (inet | inet6) & cpu_in_cksum
35file arch/i386/i386/db_dbgreg.S ddb | kstack_check_dr0 47file arch/i386/i386/db_dbgreg.S ddb | kstack_check_dr0
36file arch/i386/i386/db_disasm.c ddb 48file arch/i386/i386/db_disasm.c ddb
37file arch/i386/i386/db_interface.c ddb 49file arch/i386/i386/db_interface.c ddb
38file arch/i386/i386/db_memrw.c ddb | kgdb 50file arch/i386/i386/db_memrw.c ddb | kgdb
39file arch/i386/i386/db_trace.c ddb 51file arch/i386/i386/db_trace.c ddb
40file arch/i386/i386/dumpsys.c 52file arch/i386/i386/dumpsys.c
41file arch/i386/i386/gdt.c 53file arch/i386/i386/gdt.c
@@ -50,26 +62,31 @@ file arch/i386/i386/process_machdep.c @@ -50,26 +62,31 @@ file arch/i386/i386/process_machdep.c
50file arch/i386/i386/procfs_machdep.c procfs 62file arch/i386/i386/procfs_machdep.c procfs
51file arch/i386/i386/trap.c 63file arch/i386/i386/trap.c
52file arch/i386/i386/lock_stubs.S 64file arch/i386/i386/lock_stubs.S
53 65
54file arch/i386/i386/mptramp.S multiprocessor 66file arch/i386/i386/mptramp.S multiprocessor
55 67
56file arch/i386/i386/pmc.c perfctrs 68file arch/i386/i386/pmc.c perfctrs
57 69
58file crypto/des/arch/i386/des_enc.S des 70file crypto/des/arch/i386/des_enc.S des
59file crypto/des/arch/i386/des_cbc.S des 71file crypto/des/arch/i386/des_cbc.S des
60 72
61file crypto/blowfish/arch/i386/bf_enc.S blowfish 73file crypto/blowfish/arch/i386/bf_enc.S blowfish
62file crypto/blowfish/arch/i386/bf_cbc.S blowfish 74file crypto/blowfish/arch/i386/bf_cbc.S blowfish
 75
 76# AMD PowerNow K7
 77defflag POWERNOW_K7
 78file arch/i386/i386/powernow_k7.c powernow_k7
 79
63elifdef amd64 80elifdef amd64
64file arch/amd64/amd64/busfunc.S 81file arch/amd64/amd64/busfunc.S
65file arch/amd64/amd64/cpufunc.S 82file arch/amd64/amd64/cpufunc.S
66file arch/amd64/amd64/cpu_in_cksum.S (inet | inet6) & cpu_in_cksum 83file arch/amd64/amd64/cpu_in_cksum.S (inet | inet6) & cpu_in_cksum
67file arch/amd64/amd64/db_disasm.c ddb 84file arch/amd64/amd64/db_disasm.c ddb
68file arch/amd64/amd64/db_interface.c ddb 85file arch/amd64/amd64/db_interface.c ddb
69file arch/amd64/amd64/db_memrw.c ddb | kgdb 86file arch/amd64/amd64/db_memrw.c ddb | kgdb
70file arch/amd64/amd64/db_trace.c ddb 87file arch/amd64/amd64/db_trace.c ddb
71file arch/amd64/amd64/kgdb_machdep.c kgdb 88file arch/amd64/amd64/kgdb_machdep.c kgdb
72file arch/amd64/amd64/kobj_machdep.c modular 89file arch/amd64/amd64/kobj_machdep.c modular
73file arch/amd64/amd64/gdt.c 90file arch/amd64/amd64/gdt.c
74file arch/amd64/amd64/machdep.c 91file arch/amd64/amd64/machdep.c
75file arch/amd64/amd64/mem.c 92file arch/amd64/amd64/mem.c
@@ -266,26 +283,28 @@ device ipmi : sysmon_envsys, sysmon_wdog @@ -266,26 +283,28 @@ device ipmi : sysmon_envsys, sysmon_wdog
266attach ipmi at ipmibus 283attach ipmi at ipmibus
267file arch/x86/x86/ipmi.c ipmi needs-flag 284file arch/x86/x86/ipmi.c ipmi needs-flag
268 285
269# CPUS 286# CPUS
270 287
271device cpu 288device cpu
272attach cpu at cpubus 289attach cpu at cpubus
273 290
274device vcpu 291device vcpu
275attach vcpu at xendevbus 292attach vcpu at xendevbus
276 293
277file arch/xen/x86/cpu.c cpu | vcpu 294file arch/xen/x86/cpu.c cpu | vcpu
278 295
 296file arch/x86/x86/msr_ipifuncs.c
 297
279# 298#
280# Compatibility modules 299# Compatibility modules
281# 300#
282 301
283ifdef i386 302ifdef i386
284# VM86 mode 303# VM86 mode
285file arch/i386/i386/vm86.c vm86 304file arch/i386/i386/vm86.c vm86
286 305
287# VM86 in kernel 306# VM86 in kernel
288file arch/i386/i386/kvm86.c kvm86 307file arch/i386/i386/kvm86.c kvm86
289file arch/i386/i386/kvm86call.S kvm86 308file arch/i386/i386/kvm86call.S kvm86
290 309
291# Binary compatibility with previous NetBSD releases (COMPAT_XX) 310# Binary compatibility with previous NetBSD releases (COMPAT_XX)