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 (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,798 +1,805 @@ @@ -1,798 +1,805 @@
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
34options SYSVSEM # System V-like semaphores 41options SYSVSEM # System V-like semaphores
35options SYSVSHM # System V-like memory sharing 42options SYSVSHM # System V-like memory sharing
36options P1003_1B_SEMAPHORE # p1003.1b semaphore support 43options P1003_1B_SEMAPHORE # p1003.1b semaphore support
37 44
38 45
39options USERCONF # userconf(4) support 46options USERCONF # userconf(4) support
40options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel 47options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel
41 48
42# Diagnostic/debugging support options 49# Diagnostic/debugging support options
43options DIAGNOSTIC # expensive kernel consistency checks 50options DIAGNOSTIC # expensive kernel consistency checks
44options DEBUG # expensive debugging checks/support  51options DEBUG # expensive debugging checks/support
45options KMEMSTATS # kernel memory statistics (vmstat -m) 52options KMEMSTATS # kernel memory statistics (vmstat -m)
46options DDB # in-kernel debugger 53options DDB # in-kernel debugger
47options DDB_ONPANIC=1 # see also sysctl(8): `ddb.onpanic' 54options DDB_ONPANIC=1 # see also sysctl(8): `ddb.onpanic'
48options DDB_HISTORY_SIZE=512 # enable history editing in DDB 55options DDB_HISTORY_SIZE=512 # enable history editing in DDB
49#options KGDB # remote debugger 56#options KGDB # remote debugger
50#options KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x2f8,KGDB_DEVRATE=57600 57#options KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x2f8,KGDB_DEVRATE=57600
51makeoptions DEBUG="-g" # compile full symbol table 58makeoptions DEBUG="-g" # compile full symbol table
52makeoptions COPTS="-O2 -fno-omit-frame-pointer" 59makeoptions COPTS="-O2 -fno-omit-frame-pointer"
53options DDB_COMMANDONENTER="trace;show registers" 60options DDB_COMMANDONENTER="trace;show registers"
54 61
55# Compatibility options 62# Compatibility options
56options COMPAT_15 # compatibility with NetBSD 1.5, 63options COMPAT_15 # compatibility with NetBSD 1.5,
57options COMPAT_16 # NetBSD 1.6, 64options COMPAT_16 # NetBSD 1.6,
58options COMPAT_20 # NetBSD 2.0, 65options COMPAT_20 # NetBSD 2.0,
59options COMPAT_30 # NetBSD 3.0, 66options COMPAT_30 # NetBSD 3.0,
60options COMPAT_40 # NetBSD 4.0 compatibility. 67options COMPAT_40 # NetBSD 4.0 compatibility.
61options COMPAT_43 # and 4.3BSD 68options COMPAT_43 # and 4.3BSD
62#options COMPAT_386BSD_MBRPART # recognize old partition ID 69#options COMPAT_386BSD_MBRPART # recognize old partition ID
63options COMPAT_50 # NetBSD 5.0 70options COMPAT_50 # NetBSD 5.0
64 71
65options COMPAT_OSSAUDIO 72options COMPAT_OSSAUDIO
66options COMPAT_NETBSD32 73options COMPAT_NETBSD32
67options COMPAT_LINUX 74options COMPAT_LINUX
68options COMPAT_LINUX32 # req. COMPAT_LINUX and COMPAT_NETBSD32 75options COMPAT_LINUX32 # req. COMPAT_LINUX and COMPAT_NETBSD32
69options EXEC_ELF32 76options EXEC_ELF32
70options COMPAT_BSDPTY # /dev/[pt]ty?? ptys. 77options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
71 78
72# File systems 79# File systems
73file-system FFS # UFS 80file-system FFS # UFS
74file-system EXT2FS # second extended file system (linux) 81file-system EXT2FS # second extended file system (linux)
75file-system LFS # log-structured file system 82file-system LFS # log-structured file system
76file-system MFS # memory file system 83file-system MFS # memory file system
77file-system NFS # Network File System client 84file-system NFS # Network File System client
78file-system NTFS # Windows/NT file system (experimental) 85file-system NTFS # Windows/NT file system (experimental)
79file-system CD9660 # ISO 9660 + Rock Ridge file system 86file-system CD9660 # ISO 9660 + Rock Ridge file system
80file-system MSDOSFS # MS-DOS file system 87file-system MSDOSFS # MS-DOS file system
81file-system FDESC # /dev/fd 88file-system FDESC # /dev/fd
82file-system KERNFS # /kern 89file-system KERNFS # /kern
83file-system NULLFS # loopback file system 90file-system NULLFS # loopback file system
84file-system OVERLAY # overlay file system 91file-system OVERLAY # overlay file system
85file-system PORTAL # portal filesystem (still experimental) 92file-system PORTAL # portal filesystem (still experimental)
86file-system PROCFS # /proc 93file-system PROCFS # /proc
87file-system UMAPFS # NULLFS + uid and gid remapping 94file-system UMAPFS # NULLFS + uid and gid remapping
88file-system UNION # union file system 95file-system UNION # union file system
89file-system CODA # Coda File System; also needs vcoda (below) 96file-system CODA # Coda File System; also needs vcoda (below)
90file-system SMBFS # experimental - CIFS; also needs nsmb (below) 97file-system SMBFS # experimental - CIFS; also needs nsmb (below)
91file-system PTYFS # /dev/pts/N support 98file-system PTYFS # /dev/pts/N support
92file-system TMPFS # Efficient memory file-system 99file-system TMPFS # Efficient memory file-system
93 100
94# File system options 101# File system options
95options QUOTA # UFS quotas 102options QUOTA # UFS quotas
96#options FFS_EI # FFS Endian Independent support 103#options FFS_EI # FFS Endian Independent support
97options WAPBL # File system journaling support - Experimental 104options WAPBL # File system journaling support - Experimental
98#options UFS_DIRHASH # UFS Large Directory Hashing - Experimental 105#options UFS_DIRHASH # UFS Large Directory Hashing - Experimental
99options NFSSERVER # Network File System server 106options NFSSERVER # Network File System server
100#options FFS_NO_SNAPSHOT # No FFS snapshot support 107#options FFS_NO_SNAPSHOT # No FFS snapshot support
101#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and 108#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
102 # immutable) behave as system flags. 109 # immutable) behave as system flags.
103 110
104# Networking options 111# Networking options
105#options GATEWAY # packet forwarding 112#options GATEWAY # packet forwarding
106options INET # IP + ICMP + TCP + UDP 113options INET # IP + ICMP + TCP + UDP
107options INET6 # IPV6 114options INET6 # IPV6
108#options IPSEC # IP security 115#options IPSEC # IP security
109#options IPSEC_ESP # IP security (encryption part; define w/IPSEC) 116#options IPSEC_ESP # IP security (encryption part; define w/IPSEC)
110#options IPSEC_NAT_T # IPsec NAT traversal (NAT-T) 117#options IPSEC_NAT_T # IPsec NAT traversal (NAT-T)
111#options IPSEC_DEBUG # debug for IP security 118#options IPSEC_DEBUG # debug for IP security
112#options MROUTING # IP multicast routing 119#options MROUTING # IP multicast routing
113#options PIM # Protocol Independent Multicast 120#options PIM # Protocol Independent Multicast
114#options ISO,TPIP # OSI 121#options ISO,TPIP # OSI
115#options EON # OSI tunneling over IP 122#options EON # OSI tunneling over IP
116options NETATALK # AppleTalk networking protocols 123options NETATALK # AppleTalk networking protocols
117options PPP_BSDCOMP # BSD-Compress compression support for PPP 124options PPP_BSDCOMP # BSD-Compress compression support for PPP
118options PPP_DEFLATE # Deflate compression support for PPP 125options PPP_DEFLATE # Deflate compression support for PPP
119options PPP_FILTER # Active filter support for PPP (requires bpf) 126options PPP_FILTER # Active filter support for PPP (requires bpf)
120options PFIL_HOOKS # pfil(9) packet filter hooks 127options PFIL_HOOKS # pfil(9) packet filter hooks
121options IPFILTER_LOG # ipmon(8) log support 128options IPFILTER_LOG # ipmon(8) log support
122options IPFILTER_LOOKUP # ippool(8) support 129options IPFILTER_LOOKUP # ippool(8) support
123#options IPFILTER_DEFAULT_BLOCK # block all packets by default 130#options IPFILTER_DEFAULT_BLOCK # block all packets by default
124#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG 131#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
125 132
126#options ALTQ # Manipulate network interfaces' output queues 133#options ALTQ # Manipulate network interfaces' output queues
127#options ALTQ_BLUE # Stochastic Fair Blue 134#options ALTQ_BLUE # Stochastic Fair Blue
128#options ALTQ_CBQ # Class-Based Queueing 135#options ALTQ_CBQ # Class-Based Queueing
129#options ALTQ_CDNR # Diffserv Traffic Conditioner 136#options ALTQ_CDNR # Diffserv Traffic Conditioner
130#options ALTQ_FIFOQ # First-In First-Out Queue 137#options ALTQ_FIFOQ # First-In First-Out Queue
131#options ALTQ_FLOWVALVE # RED/flow-valve (red-penalty-box) 138#options ALTQ_FLOWVALVE # RED/flow-valve (red-penalty-box)
132#options ALTQ_HFSC # Hierarchical Fair Service Curve 139#options ALTQ_HFSC # Hierarchical Fair Service Curve
133#options ALTQ_LOCALQ # Local queueing discipline 140#options ALTQ_LOCALQ # Local queueing discipline
134#options ALTQ_PRIQ # Priority Queueing 141#options ALTQ_PRIQ # Priority Queueing
135#options ALTQ_RED # Random Early Detection 142#options ALTQ_RED # Random Early Detection
136#options ALTQ_RIO # RED with IN/OUT 143#options ALTQ_RIO # RED with IN/OUT
137#options ALTQ_WFQ # Weighted Fair Queueing 144#options ALTQ_WFQ # Weighted Fair Queueing
138 145
139options NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM 146options NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM
140#options NFS_BOOT_BOOTSTATIC 147#options NFS_BOOT_BOOTSTATIC
141#options NFS_BOOTSTATIC_MYIP="\"169.254.1.2\"" 148#options NFS_BOOTSTATIC_MYIP="\"169.254.1.2\""
142#options NFS_BOOTSTATIC_GWIP="\"169.254.1.1\"" 149#options NFS_BOOTSTATIC_GWIP="\"169.254.1.1\""
143#options NFS_BOOTSTATIC_MASK="\"255.255.255.0\"" 150#options NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
144#options NFS_BOOTSTATIC_SERVADDR="\"169.254.1.1\"" 151#options NFS_BOOTSTATIC_SERVADDR="\"169.254.1.1\""
145#options NFS_BOOTSTATIC_SERVER="\"server:/path/to/root\"" 152#options NFS_BOOTSTATIC_SERVER="\"server:/path/to/root\""
146 153
147# 154#
148# wscons options 155# wscons options
149# 156#
150# builtin terminal emulations 157# builtin terminal emulations
151#options WSEMUL_SUN # sun terminal emulation 158#options WSEMUL_SUN # sun terminal emulation
152options WSEMUL_VT100 # VT100 / VT220 emulation 159options WSEMUL_VT100 # VT100 / VT220 emulation
153# different kernel output - see dev/wscons/wsdisplayvar.h 160# different kernel output - see dev/wscons/wsdisplayvar.h
154options WS_KERNEL_FG=WSCOL_GREEN 161options WS_KERNEL_FG=WSCOL_GREEN
155#options WS_KERNEL_BG=WSCOL_BLACK 162#options WS_KERNEL_BG=WSCOL_BLACK
156# compatibility to other console drivers 163# compatibility to other console drivers
157options WSDISPLAY_COMPAT_PCVT # emulate some ioctls 164options WSDISPLAY_COMPAT_PCVT # emulate some ioctls
158options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls 165options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls
159options WSDISPLAY_COMPAT_USL # VT handling 166options WSDISPLAY_COMPAT_USL # VT handling
160options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes 167options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes
161# see dev/pckbport/wskbdmap_mfii.c for implemented layouts 168# see dev/pckbport/wskbdmap_mfii.c for implemented layouts
162#options PCKBD_LAYOUT="(KB_DE | KB_NODEAD)" 169#options PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"
163# allocate a number of virtual screens at autoconfiguration time 170# allocate a number of virtual screens at autoconfiguration time
164#options WSDISPLAY_DEFAULTSCREENS=4 171#options WSDISPLAY_DEFAULTSCREENS=4
165# use a large software cursor that doesn't blink 172# use a large software cursor that doesn't blink
166options PCDISPLAY_SOFTCURSOR 173options PCDISPLAY_SOFTCURSOR
167# modify the screen type of the console; defaults to "80x25" 174# modify the screen type of the console; defaults to "80x25"
168#options VGA_CONSOLE_SCREENTYPE="\"80x24\"" 175#options VGA_CONSOLE_SCREENTYPE="\"80x24\""
169# work around a hardware bug that loaded fonts don't work; found on ATI cards 176# work around a hardware bug that loaded fonts don't work; found on ATI cards
170#options VGA_CONSOLE_ATI_BROKEN_FONTSEL 177#options VGA_CONSOLE_ATI_BROKEN_FONTSEL
171# console scrolling support. 178# console scrolling support.
172options WSDISPLAY_SCROLLSUPPORT 179options WSDISPLAY_SCROLLSUPPORT
173# enable VGA raster mode capable of displaying multilingual text on console 180# enable VGA raster mode capable of displaying multilingual text on console
174#options VGA_RASTERCONSOLE 181#options VGA_RASTERCONSOLE
175config netbsd root on ? type ? 182config netbsd root on ? type ?
176#config netbsd root on wd0a type ffs 183#config netbsd root on wd0a type ffs
177#config netbsd root on xennet0 type nfs 184#config netbsd root on xennet0 type nfs
178 185
179mainbus0 at root 186mainbus0 at root
180 187
181cpu* at mainbus? 188cpu* at mainbus?
182 189
183# IPMI support 190# IPMI support
184ipmi0 at mainbus? 191ipmi0 at mainbus?
185 192
186hypervisor* at mainbus? # Xen hypervisor 193hypervisor* at mainbus? # Xen hypervisor
187 194
188vcpu* at hypervisor? # Xen virtual CPUs 195vcpu* at hypervisor? # Xen virtual CPUs
189 196
190xenbus* at hypervisor? # Xen virtual bus 197xenbus* at hypervisor? # Xen virtual bus
191 198
192xencons* at hypervisor? # Xen virtual console 199xencons* at hypervisor? # Xen virtual console
193 200
194acpi0 at hypervisor? 201acpi0 at hypervisor?
195#options ACPI_ACTIVATE_DEV # If set, activate inactive devices 202#options ACPI_ACTIVATE_DEV # If set, activate inactive devices
196options ACPI_SCANPCI # find PCI roots using ACPI 203options ACPI_SCANPCI # find PCI roots using ACPI
197#options ACPICA_PEDANTIC # force strict conformance to the Spec. 204#options ACPICA_PEDANTIC # force strict conformance to the Spec.
198options ACPIVERBOSE # verbose ACPI configuration messages 205options ACPIVERBOSE # verbose ACPI configuration messages
199#options MIIVERBOSE # verbose PHY autoconfig messages 206#options MIIVERBOSE # verbose PHY autoconfig messages
200options MPBIOS # configure CPUs and APICs using MPBIOS 207options MPBIOS # configure CPUs and APICs using MPBIOS
201options MPDEBUG # MPBIOS configures PCI roots 208options MPDEBUG # MPBIOS configures PCI roots
202options MPVERBOSE # verbose MPBIOS autoconfig messages 209options MPVERBOSE # verbose MPBIOS autoconfig messages
203options MPBIOS_SCANPCI # MPBIOS configures PCI roots 210options MPBIOS_SCANPCI # MPBIOS configures PCI roots
204#options PCI_ADDR_FIXUP # fixup PCI I/O addresses 211#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
205#options PCI_BUS_FIXUP # fixup PCI bus numbering 212#options PCI_BUS_FIXUP # fixup PCI bus numbering
206#options PCI_INTR_FIXUP # fixup PCI interrupt routing 213#options PCI_INTR_FIXUP # fixup PCI interrupt routing
207#options PCIVERBOSE # verbose PCI device autoconfig messages 214#options PCIVERBOSE # verbose PCI device autoconfig messages
208#options USBVERBOSE # verbose USB device autoconfig messages 215#options USBVERBOSE # verbose USB device autoconfig messages
209 216
210ioapic* at mainbus? apid ? 217ioapic* at mainbus? apid ?
211 218
212# ACPI devices 219# ACPI devices
213acpiacad* at acpi? # ACPI AC Adapter 220acpiacad* at acpi? # ACPI AC Adapter
214acpibat* at acpi? # ACPI Battery 221acpibat* at acpi? # ACPI Battery
215acpibut* at acpi? # ACPI Button 222acpibut* at acpi? # ACPI Button
216acpidalb* at acpi? # ACPI Direct Application Launch Button 223acpidalb* at acpi? # ACPI Direct Application Launch Button
217acpiec* at acpi? # ACPI Embedded Controller 224acpiec* at acpi? # ACPI Embedded Controller
218acpilid* at acpi? # ACPI Lid Switch 225acpilid* at acpi? # ACPI Lid Switch
219acpitz* at acpi? # ACPI Thermal Zone 226acpitz* at acpi? # ACPI Thermal Zone
220aiboost* at acpi? # ASUS AI Booster Hardware monitor 227aiboost* at acpi? # ASUS AI Booster Hardware monitor
221hpqlb* at acpi? # HP Quick Launch Buttons 228hpqlb* at acpi? # HP Quick Launch Buttons
222pckbc* at acpi? # PC keyboard controller 229pckbc* at acpi? # PC keyboard controller
223pcppi* at acpi? # AT-style speaker sound 230pcppi* at acpi? # AT-style speaker sound
224 231
225# PCI bus support 232# PCI bus support
226pci* at hypervisor? bus ? 233pci* at hypervisor? bus ?
227pci* at pchb? bus ? 234pci* at pchb? bus ?
228ppb* at pci? dev ? function ? # PCI-PCI bridges 235ppb* at pci? dev ? function ? # PCI-PCI bridges
229pci* at ppb? bus ? 236pci* at ppb? bus ?
230 237
231# pci backend devices, used for PCI pass-through. To export a PCI device 238# pci backend devices, used for PCI pass-through. To export a PCI device
232# to a domU, the device has to be attached to the pciback driver in the dom0. 239# to a domU, the device has to be attached to the pciback driver in the dom0.
233# you can force a device to attach to the pciback driver in dom0 passing 240# you can force a device to attach to the pciback driver in dom0 passing
234# pciback.hide=(bus:dev.fun)(bus:dev.func) to the dom0 kernel boot parameters. 241# pciback.hide=(bus:dev.fun)(bus:dev.func) to the dom0 kernel boot parameters.
235# bus and dev are 2-digits hex number, func is a single-digit number: 242# bus and dev are 2-digits hex number, func is a single-digit number:
236# pciback.hide=(00:1a.0)(00:1a.1)(00:1a.7) 243# pciback.hide=(00:1a.0)(00:1a.1)(00:1a.7)
237pciback* at pci? #pci backend device 244pciback* at pci? #pci backend device
238 245
239# PCI bridges 246# PCI bridges
240ichlpcib* at pci? dev ? function ? # Intel ICH PCI-ISA w/ timecounter, 247ichlpcib* at pci? dev ? function ? # Intel ICH PCI-ISA w/ timecounter,
241 # watchdog and SpeedStep support 248 # watchdog and SpeedStep support
242pcib* at pci? dev ? function ? # PCI-ISA bridges 249pcib* at pci? dev ? function ? # PCI-ISA bridges
243pchb* at pci? dev ? function ? # PCI-Host bridges 250pchb* at pci? dev ? function ? # PCI-Host bridges
244ppb* at pci? dev ? function ? # PCI-PCI bridges 251ppb* at pci? dev ? function ? # PCI-PCI bridges
245# XXX 'puc's aren't really bridges, but there's no better place for them here 252# XXX 'puc's aren't really bridges, but there's no better place for them here
246puc* at pci? dev ? function ? # PCI "universal" comm. cards 253puc* at pci? dev ? function ? # PCI "universal" comm. cards
247 254
248agp* at pchb? 255agp* at pchb?
249 256
250# ISA bus support 257# ISA bus support
251isa0 at ichlpcib? 258isa0 at ichlpcib?
252isa0 at pcib? 259isa0 at pcib?
253isa0 at hypervisor? 260isa0 at hypervisor?
254 261
255# Serial Devices 262# Serial Devices
256 263
257# PCI serial interfaces 264# PCI serial interfaces
258com* at puc? port ? # 16x50s on "universal" comm boards 265com* at puc? port ? # 16x50s on "universal" comm boards
259cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards 266cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards
260cz* at pci? dev ? function ? # Cyclades-Z multi-port serial boards 267cz* at pci? dev ? function ? # Cyclades-Z multi-port serial boards
261 268
262# ISA serial interfaces 269# ISA serial interfaces
263#options COM_HAYESP # adds Hayes ESP serial board support 270#options COM_HAYESP # adds Hayes ESP serial board support
264# If a com port is used as Xen console it can't be used by the domain0 kernel 271# If a com port is used as Xen console it can't be used by the domain0 kernel
265# and there's no easy way to detect this yet. Leave com0 out as it's the 272# and there's no easy way to detect this yet. Leave com0 out as it's the
266# port usually used for serial console 273# port usually used for serial console
267#com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports 274#com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports
268com1 at isa? port 0x2f8 irq 3 275com1 at isa? port 0x2f8 irq 3
269#com2 at isa? port 0x3e8 irq 5 276#com2 at isa? port 0x3e8 irq 5
270#com3 at isa? port 0x2e8 irq 9 277#com3 at isa? port 0x2e8 irq 9
271 278
272# Parallel Printer Interfaces 279# Parallel Printer Interfaces
273 280
274# PCI parallel printer interfaces 281# PCI parallel printer interfaces
275lpt* at puc? port ? # || ports on "universal" comm boards 282lpt* at puc? port ? # || ports on "universal" comm boards
276 283
277# ISA parallel printer interfaces 284# ISA parallel printer interfaces
278lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports 285lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
279 286
280# Hardware monitors 287# Hardware monitors
281 288
282amdtemp* at pci? dev ? function ? # AMD CPU Temperature sensors 289amdtemp* at pci? dev ? function ? # AMD CPU Temperature sensors
283 290
284# AMD 768 and 8111 power/ACPI controllers 291# AMD 768 and 8111 power/ACPI controllers
285amdpm* at pci? dev ? function ? # RNG and SMBus 1.0 interface 292amdpm* at pci? dev ? function ? # RNG and SMBus 1.0 interface
286#iic* at amdpm? # sensors below are on this bus 293#iic* at amdpm? # sensors below are on this bus
287 294
288# Thermal monitor and fan controller 295# Thermal monitor and fan controller
289#dbcool* at iic? addr 0x2C # Unknown other motherboard(s) 296#dbcool* at iic? addr 0x2C # Unknown other motherboard(s)
290#dbcool* at iic? addr 0x2D # Tyan S2881 297#dbcool* at iic? addr 0x2D # Tyan S2881
291#dbcool* at iic? addr 0x2E # Tyan S2882-D 298#dbcool* at iic? addr 0x2E # Tyan S2882-D
292 299
293# LM7[89] and compatible hardware monitors 300# LM7[89] and compatible hardware monitors
294#lm0 at isa? port 0x290 # other common: 0x280, 0x310, 0xc00 301#lm0 at isa? port 0x290 # other common: 0x280, 0x310, 0xc00
295 302
296# VIA VT82C686A/VT8231 Hardware Monitor and Power Management TImer 303# VIA VT82C686A/VT8231 Hardware Monitor and Power Management TImer
297#viaenv* at pci? dev ? function ? 304#viaenv* at pci? dev ? function ?
298 305
299 306
300# PCI network interfaces 307# PCI network interfaces
301age* at pci? dev ? function ? # Attansic/Atheros L1 Gigabit Ethernet 308age* at pci? dev ? function ? # Attansic/Atheros L1 Gigabit Ethernet
302an* at pci? dev ? function ? # Aironet PC4500/PC4800 (802.11) 309an* at pci? dev ? function ? # Aironet PC4500/PC4800 (802.11)
303ale* at pci? dev ? function ? # Attansic/Atheros L1E Ethernet 310ale* at pci? dev ? function ? # Attansic/Atheros L1E Ethernet
304ath* at pci? dev ? function ? # Atheros 5210/5211/5212 802.11 311ath* at pci? dev ? function ? # Atheros 5210/5211/5212 802.11
305atw* at pci? dev ? function ? # ADMtek ADM8211 (802.11) 312atw* at pci? dev ? function ? # ADMtek ADM8211 (802.11)
306bce* at pci? dev ? function ? # Broadcom 4401 10/100 Ethernet 313bce* at pci? dev ? function ? # Broadcom 4401 10/100 Ethernet
307bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet 314bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet
308bnx* at pci? dev ? function ? # Broadcom NetXtremeII gigabit Ethernet 315bnx* at pci? dev ? function ? # Broadcom NetXtremeII gigabit Ethernet
309dge* at pci? dev ? function ? # Intel 82597 10GbE LR 316dge* at pci? dev ? function ? # Intel 82597 10GbE LR
310en* at pci? dev ? function ? # ENI/Adaptec ATM 317en* at pci? dev ? function ? # ENI/Adaptec ATM
311ep* at pci? dev ? function ? # 3Com 3c59x 318ep* at pci? dev ? function ? # 3Com 3c59x
312epic* at pci? dev ? function ? # SMC EPIC/100 Ethernet 319epic* at pci? dev ? function ? # SMC EPIC/100 Ethernet
313esh* at pci? dev ? function ? # Essential HIPPI card 320esh* at pci? dev ? function ? # Essential HIPPI card
314ex* at pci? dev ? function ? # 3Com 90x[BC] 321ex* at pci? dev ? function ? # 3Com 90x[BC]
315fpa* at pci? dev ? function ? # DEC DEFPA FDDI 322fpa* at pci? dev ? function ? # DEC DEFPA FDDI
316fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B 323fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B
317gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet 324gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
318hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ 325hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ
319ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100 326ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100
320iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG 327iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG
321iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN 328iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN
322jme* at pci? dev ? function ? # JMicron JMC2[56]0 ethernet 329jme* at pci? dev ? function ? # JMicron JMC2[56]0 ethernet
323le* at pci? dev ? function ? # PCnet-PCI Ethernet 330le* at pci? dev ? function ? # PCnet-PCI Ethernet
324lii* at pci? dev ? function ? # Atheros L2 Fast-Ethernet 331lii* at pci? dev ? function ? # Atheros L2 Fast-Ethernet
325lmc* at pci? dev ? function ? # Lan Media Corp SSI/HSSI/DS3 332lmc* at pci? dev ? function ? # Lan Media Corp SSI/HSSI/DS3
326mskc* at pci? dev ? function ? # Marvell Yukon 2 Gigabit Ethernet 333mskc* at pci? dev ? function ? # Marvell Yukon 2 Gigabit Ethernet
327msk* at mskc? # Marvell Yukon 2 Gigabit Ethernet 334msk* at mskc? # Marvell Yukon 2 Gigabit Ethernet
328mtd* at pci? dev ? function ? # Myson MTD803 3-in-1 Ethernet 335mtd* at pci? dev ? function ? # Myson MTD803 3-in-1 Ethernet
329ne* at pci? dev ? function ? # NE2000-compatible Ethernet 336ne* at pci? dev ? function ? # NE2000-compatible Ethernet
330nfe* at pci? dev ? function ? # NVIDIA nForce Ethernet 337nfe* at pci? dev ? function ? # NVIDIA nForce Ethernet
331ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial 338ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial
332pcn* at pci? dev ? function ? # AMD PCnet-PCI Ethernet 339pcn* at pci? dev ? function ? # AMD PCnet-PCI Ethernet
333ral* at pci? dev ? function ? # Ralink Technology RT25x0 802.11a/b/g 340ral* at pci? dev ? function ? # Ralink Technology RT25x0 802.11a/b/g
334re* at pci? dev ? function ? # Realtek 8139C+/8169/8169S/8110S 341re* at pci? dev ? function ? # Realtek 8139C+/8169/8169S/8110S
335rtk* at pci? dev ? function ? # Realtek 8129/8139 342rtk* at pci? dev ? function ? # Realtek 8129/8139
336sf* at pci? dev ? function ? # Adaptec AIC-6915 Ethernet 343sf* at pci? dev ? function ? # Adaptec AIC-6915 Ethernet
337sip* at pci? dev ? function ? # SiS 900/DP83815 Ethernet 344sip* at pci? dev ? function ? # SiS 900/DP83815 Ethernet
338skc* at pci? dev ? function ? # SysKonnect SK9821 Gigabit Ethernet 345skc* at pci? dev ? function ? # SysKonnect SK9821 Gigabit Ethernet
339sk* at skc? # SysKonnect SK9821 Gigabit Ethernet 346sk* at skc? # SysKonnect SK9821 Gigabit Ethernet
340ste* at pci? dev ? function ? # Sundance ST-201 Ethernet 347ste* at pci? dev ? function ? # Sundance ST-201 Ethernet
341stge* at pci? dev ? function ? # Sundance/Tamarack TC9021 Gigabit 348stge* at pci? dev ? function ? # Sundance/Tamarack TC9021 Gigabit
342ti* at pci? dev ? function ? # Alteon ACEnic gigabit Ethernet 349ti* at pci? dev ? function ? # Alteon ACEnic gigabit Ethernet
343tl* at pci? dev ? function ? # ThunderLAN-based Ethernet 350tl* at pci? dev ? function ? # ThunderLAN-based Ethernet
344tlp* at pci? dev ? function ? # DECchip 21x4x and clones 351tlp* at pci? dev ? function ? # DECchip 21x4x and clones
345txp* at pci? dev ? function ? # 3com 3cr990 352txp* at pci? dev ? function ? # 3com 3cr990
346vge* at pci? dev ? function ? # VIATech VT612X Gigabit Ethernet 353vge* at pci? dev ? function ? # VIATech VT612X Gigabit Ethernet
347vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet 354vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet
348wi* at pci? dev ? function ? # Intersil Prism Mini-PCI (802.11b) 355wi* at pci? dev ? function ? # Intersil Prism Mini-PCI (802.11b)
349wm* at pci? dev ? function ? # Intel 8254x gigabit 356wm* at pci? dev ? function ? # Intel 8254x gigabit
350xge* at pci? dev ? function ? # Neterion (S2io) Xframe-I 10GbE 357xge* at pci? dev ? function ? # Neterion (S2io) Xframe-I 10GbE
351 358
352# MII/PHY support 359# MII/PHY support
353acphy* at mii? phy ? # Altima AC101 and AMD Am79c874 PHYs 360acphy* at mii? phy ? # Altima AC101 and AMD Am79c874 PHYs
354amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs 361amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs
355atphy* at mii? phy ? # Attansic/Atheros PHYs 362atphy* at mii? phy ? # Attansic/Atheros PHYs
356bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs 363bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs
357brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs 364brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs
358ciphy* at mii? phy ? # Cicada CS8201 Gig-E PHYs 365ciphy* at mii? phy ? # Cicada CS8201 Gig-E PHYs
359dmphy* at mii? phy ? # Davicom DM9101 PHYs 366dmphy* at mii? phy ? # Davicom DM9101 PHYs
360exphy* at mii? phy ? # 3Com internal PHYs 367exphy* at mii? phy ? # 3Com internal PHYs
361gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs 368gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs
362glxtphy* at mii? phy ? # Level One LXT-1000 PHYs 369glxtphy* at mii? phy ? # Level One LXT-1000 PHYs
363gphyter* at mii? phy ? # NS83861 Gig-E PHY 370gphyter* at mii? phy ? # NS83861 Gig-E PHY
364icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x 371icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x
365igphy* at mii? phy ? # Intel IGP01E1000 372igphy* at mii? phy ? # Intel IGP01E1000
366ikphy* at mii? phy ? # Intel 82563 PHYs 373ikphy* at mii? phy ? # Intel 82563 PHYs
367inphy* at mii? phy ? # Intel 82555 PHYs 374inphy* at mii? phy ? # Intel 82555 PHYs
368iophy* at mii? phy ? # Intel 82553 PHYs 375iophy* at mii? phy ? # Intel 82553 PHYs
369lxtphy* at mii? phy ? # Level One LXT-970 PHYs 376lxtphy* at mii? phy ? # Level One LXT-970 PHYs
370makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs 377makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs
371nsphy* at mii? phy ? # NS83840 PHYs 378nsphy* at mii? phy ? # NS83840 PHYs
372nsphyter* at mii? phy ? # NS83843 PHYs 379nsphyter* at mii? phy ? # NS83843 PHYs
373pnaphy* at mii? phy ? # generic HomePNA PHYs 380pnaphy* at mii? phy ? # generic HomePNA PHYs
374qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs 381qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs
375rgephy* at mii? phy ? # Realtek 8169S/8110S internal PHYs 382rgephy* at mii? phy ? # Realtek 8169S/8110S internal PHYs
376rlphy* at mii? phy ? # Realtek 8139/8201L PHYs 383rlphy* at mii? phy ? # Realtek 8139/8201L PHYs
377sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs 384sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs
378tlphy* at mii? phy ? # ThunderLAN PHYs 385tlphy* at mii? phy ? # ThunderLAN PHYs
379tqphy* at mii? phy ? # TDK Semiconductor PHYs 386tqphy* at mii? phy ? # TDK Semiconductor PHYs
380ukphy* at mii? phy ? # generic unknown PHYs 387ukphy* at mii? phy ? # generic unknown PHYs
381urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs 388urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs
382 389
383# I2O devices 390# I2O devices
384iop* at pci? dev ? function ? # I/O processor 391iop* at pci? dev ? function ? # I/O processor
385iopsp* at iop? tid ? # SCSI/FC-AL ports 392iopsp* at iop? tid ? # SCSI/FC-AL ports
386ld* at iop? tid ? # block devices 393ld* at iop? tid ? # block devices
387# XXX dpti.c wants a processor type that is not assigned for x86-64 394# XXX dpti.c wants a processor type that is not assigned for x86-64
388#dpti* at iop? tid 0 # DPT/Adaptec control interface 395#dpti* at iop? tid 0 # DPT/Adaptec control interface
389 396
390# IDE and related devices 397# IDE and related devices
391# PCI IDE controllers - see pciide(4) for supported hardware. 398# PCI IDE controllers - see pciide(4) for supported hardware.
392# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know 399# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
393# how to set up DMA modes for this chip. This may work, or may cause 400# how to set up DMA modes for this chip. This may work, or may cause
394# a machine hang with some controllers. 401# a machine hang with some controllers.
395pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver 402pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver
396acardide* at pci? dev ? function ? # Acard IDE controllers 403acardide* at pci? dev ? function ? # Acard IDE controllers
397aceride* at pci? dev ? function ? # Acer Lab IDE controllers 404aceride* at pci? dev ? function ? # Acer Lab IDE controllers
398ahcisata* at pci? dev ? function ? # AHCI SATA controllers 405ahcisata* at pci? dev ? function ? # AHCI SATA controllers
399artsata* at pci? dev ? function ? # Intel i31244 SATA controller 406artsata* at pci? dev ? function ? # Intel i31244 SATA controller
400cmdide* at pci? dev ? function ? # CMD tech IDE controllers 407cmdide* at pci? dev ? function ? # CMD tech IDE controllers
401cypide* at pci? dev ? function ? # Cypress IDE controllers 408cypide* at pci? dev ? function ? # Cypress IDE controllers
402geodeide* at pci? dev ? function ? # AMD Geode IDE controllers 409geodeide* at pci? dev ? function ? # AMD Geode IDE controllers
403hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers 410hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers
404iteide* at pci? dev ? function ? # IT Express IDE controllers 411iteide* at pci? dev ? function ? # IT Express IDE controllers
405ixpide* at pci? dev ? function ? # ATI IXP IDE controllers 412ixpide* at pci? dev ? function ? # ATI IXP IDE controllers
406jmide* at pci? dev ? function ? # JMicron PCI-e PATA/SATA controllers 413jmide* at pci? dev ? function ? # JMicron PCI-e PATA/SATA controllers
407ahcisata* at jmide? 414ahcisata* at jmide?
408optiide* at pci? dev ? function ? # Opti IDE controllers 415optiide* at pci? dev ? function ? # Opti IDE controllers
409piixide* at pci? dev ? function ? # Intel IDE controllers 416piixide* at pci? dev ? function ? # Intel IDE controllers
410pdcide* at pci? dev ? function ? # Promise IDE controllers 417pdcide* at pci? dev ? function ? # Promise IDE controllers
411pdcsata* at pci? dev ? function ? # Promise SATA150 controllers 418pdcsata* at pci? dev ? function ? # Promise SATA150 controllers
412rccide* at pci? dev ? function ? # ServerWorks IDE controllers 419rccide* at pci? dev ? function ? # ServerWorks IDE controllers
413satalink* at pci? dev ? function ? # SiI SATALink controllers 420satalink* at pci? dev ? function ? # SiI SATALink controllers
414siside* at pci? dev ? function ? # SiS IDE controllers 421siside* at pci? dev ? function ? # SiS IDE controllers
415slide* at pci? dev ? function ? # Symphony Labs IDE controllers 422slide* at pci? dev ? function ? # Symphony Labs IDE controllers
416svwsata* at pci? dev ? function ? # ServerWorks SATA controllers 423svwsata* at pci? dev ? function ? # ServerWorks SATA controllers
417stpcide* at pci? dev ? function ? # STMicro STPC IDE controllers 424stpcide* at pci? dev ? function ? # STMicro STPC IDE controllers
418viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers 425viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers
419 426
420# ATA (IDE) bus support 427# ATA (IDE) bus support
421atabus* at ata? 428atabus* at ata?
422 429
423# IDE drives 430# IDE drives
424# Flags are used only with controllers that support DMA operations 431# Flags are used only with controllers that support DMA operations
425# and mode settings (e.g. some pciide controllers) 432# and mode settings (e.g. some pciide controllers)
426# The lowest order four bits (rightmost digit) of the flags define the PIO 433# The lowest order four bits (rightmost digit) of the flags define the PIO
427# mode to use, the next set of four bits the DMA mode and the third set the 434# mode to use, the next set of four bits the DMA mode and the third set the
428# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode 435# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
429# to use, and the last bit must be 1 for this setting to be used. 436# to use, and the last bit must be 1 for this setting to be used.
430# For DMA and UDMA, 0xf (1111) means 'disable'. 437# For DMA and UDMA, 0xf (1111) means 'disable'.
431# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'. 438# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
432# (0xc=1100, 0xa=1010, 0xf=1111) 439# (0xc=1100, 0xa=1010, 0xf=1111)
433# 0x0000 means "use whatever the drive claims to support". 440# 0x0000 means "use whatever the drive claims to support".
434wd* at atabus? drive ? flags 0x0000 441wd* at atabus? drive ? flags 0x0000
435 442
436# ATA RAID configuration support, as found on some Promise controllers. 443# ATA RAID configuration support, as found on some Promise controllers.
437pseudo-device ataraid 444pseudo-device ataraid
438ld* at ataraid? vendtype ? unit ? 445ld* at ataraid? vendtype ? unit ?
439 446
440# ATAPI bus support 447# ATAPI bus support
441atapibus* at atapi? 448atapibus* at atapi?
442 449
443# ATAPI devices 450# ATAPI devices
444# flags have the same meaning as for IDE drives. 451# flags have the same meaning as for IDE drives.
445cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives 452cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives
446sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives 453sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives
447st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives 454st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives
448uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown 455uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown
449 456
450# SCSI Controllers and Devices 457# SCSI Controllers and Devices
451 458
452# PCI SCSI controllers 459# PCI SCSI controllers
453adv* at pci? dev ? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI 460adv* at pci? dev ? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI
454adw* at pci? dev ? function ? # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI 461adw* at pci? dev ? function ? # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
455ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI 462ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI
456ahd* at pci? dev ? function ? # Adaptec 29320, 39320 (aic790x) SCSI 463ahd* at pci? dev ? function ? # Adaptec 29320, 39320 (aic790x) SCSI
457bha* at pci? dev ? function ? # BusLogic 9xx SCSI 464bha* at pci? dev ? function ? # BusLogic 9xx SCSI
458dpt* at pci? dev ? function ? # DPT SmartCache/SmartRAID 465dpt* at pci? dev ? function ? # DPT SmartCache/SmartRAID
459iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI 466iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI
460isp* at pci? dev ? function ? # Qlogic ISP [12]0x0 SCSI/FibreChannel 467isp* at pci? dev ? function ? # Qlogic ISP [12]0x0 SCSI/FibreChannel
461mfi* at pci? dev ? function ? # LSI MegaRAID SAS 468mfi* at pci? dev ? function ? # LSI MegaRAID SAS
462mly* at pci? dev ? function ? # Mylex AcceleRAID and eXtremeRAID 469mly* at pci? dev ? function ? # Mylex AcceleRAID and eXtremeRAID
463mpt* at pci? dev ? function ? # LSI Fusion SCSI/FC 470mpt* at pci? dev ? function ? # LSI Fusion SCSI/FC
464njs* at pci? dev ? function ? # Workbit NinjaSCSI-32 471njs* at pci? dev ? function ? # Workbit NinjaSCSI-32
465pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI 472pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI
466siop* at pci? dev ? function ? # Symbios 53c8xx SCSI 473siop* at pci? dev ? function ? # Symbios 53c8xx SCSI
467esiop* at pci? dev ? function ? # Symbios 53c875 SCSI and newer 474esiop* at pci? dev ? function ? # Symbios 53c875 SCSI and newer
468#options SIOP_SYMLED # drive the act. LED in software 475#options SIOP_SYMLED # drive the act. LED in software
469trm* at pci? dev ? function ? # Tekram DC-395U/UW/F, DC-315/U SCSI 476trm* at pci? dev ? function ? # Tekram DC-395U/UW/F, DC-315/U SCSI
470# SCSI bus support 477# SCSI bus support
471scsibus* at scsi? 478scsibus* at scsi?
472 479
473# SCSI devices 480# SCSI devices
474sd* at scsibus? target ? lun ? # SCSI disk drives 481sd* at scsibus? target ? lun ? # SCSI disk drives
475st* at scsibus? target ? lun ? # SCSI tape drives 482st* at scsibus? target ? lun ? # SCSI tape drives
476cd* at scsibus? target ? lun ? # SCSI CD-ROM drives 483cd* at scsibus? target ? lun ? # SCSI CD-ROM drives
477ch* at scsibus? target ? lun ? # SCSI autochangers 484ch* at scsibus? target ? lun ? # SCSI autochangers
478ses* at scsibus? target ? lun ? # SCSI Enclosure Services devices 485ses* at scsibus? target ? lun ? # SCSI Enclosure Services devices
479ss* at scsibus? target ? lun ? # SCSI scanners 486ss* at scsibus? target ? lun ? # SCSI scanners
480uk* at scsibus? target ? lun ? # SCSI unknown 487uk* at scsibus? target ? lun ? # SCSI unknown
481 488
482# RAID controllers and devices 489# RAID controllers and devices
483aac* at pci? dev ? function ? # Adaptec AAC family 490aac* at pci? dev ? function ? # Adaptec AAC family
484amr* at pci? dev ? function ? # AMI/LSI Logic MegaRAID 491amr* at pci? dev ? function ? # AMI/LSI Logic MegaRAID
485arcmsr* at pci? dev ? function ? # Areca SATA RAID controllers 492arcmsr* at pci? dev ? function ? # Areca SATA RAID controllers
486cac* at pci? dev ? function ? # Compaq PCI array controllers 493cac* at pci? dev ? function ? # Compaq PCI array controllers
487ciss* at pci? dev ? function ? # HP Smart Array controllers 494ciss* at pci? dev ? function ? # HP Smart Array controllers
488icp* at pci? dev ? function ? # ICP-Vortex GDT & Intel RAID 495icp* at pci? dev ? function ? # ICP-Vortex GDT & Intel RAID
489mlx* at pci? dev ? function ? # Mylex DAC960 & DEC SWXCR family 496mlx* at pci? dev ? function ? # Mylex DAC960 & DEC SWXCR family
490twe* at pci? dev ? function ? # 3ware Escalade RAID controllers 497twe* at pci? dev ? function ? # 3ware Escalade RAID controllers
491twa* at pci? dev ? function ? # 3ware Escalade 95xx RAID controllers 498twa* at pci? dev ? function ? # 3ware Escalade 95xx RAID controllers
492 499
493ld* at aac? unit ? # logical disk devices 500ld* at aac? unit ? # logical disk devices
494ld* at amr? unit ? 501ld* at amr? unit ?
495ld* at cac? unit ? 502ld* at cac? unit ?
496ld* at icp? unit ? 503ld* at icp? unit ?
497ld* at twe? unit ? 504ld* at twe? unit ?
498ld* at twa? unit ? 505ld* at twa? unit ?
499ld* at mlx? unit ? 506ld* at mlx? unit ?
500 507
501icpsp* at icp? unit ? # SCSI pass-through 508icpsp* at icp? unit ? # SCSI pass-through
502 509
503# wscons 510# wscons
504pckbc0 at isa? # pc keyboard controller 511pckbc0 at isa? # pc keyboard controller
505pckbd* at pckbc? # PC keyboard 512pckbd* at pckbc? # PC keyboard
506pms* at pckbc? # PS/2 mouse for wsmouse 513pms* at pckbc? # PS/2 mouse for wsmouse
507#options PMS_DISABLE_POWERHOOK # Disable PS/2 reset on resume 514#options PMS_DISABLE_POWERHOOK # Disable PS/2 reset on resume
508#vga0 at isa? 515#vga0 at isa?
509vga* at pci? dev ? function ? 516vga* at pci? dev ? function ?
510#pcdisplay0 at isa? # CGA, MDA, EGA, HGA 517#pcdisplay0 at isa? # CGA, MDA, EGA, HGA
511#machfb* at pci? dev ? function ? # ATI Mach64 framebuffer driver 518#machfb* at pci? dev ? function ? # ATI Mach64 framebuffer driver
512wsdisplay* at vga? console ? 519wsdisplay* at vga? console ?
513#wsdisplay* at pcdisplay? console ? 520#wsdisplay* at pcdisplay? console ?
514#wsdisplay* at machfb? console ? 521#wsdisplay* at machfb? console ?
515wskbd* at pckbd? console ? 522wskbd* at pckbd? console ?
516wsmouse* at pms? mux 0 523wsmouse* at pms? mux 0
517 524
518# USB Controller and Devices 525# USB Controller and Devices
519 526
520# PCI USB controllers 527# PCI USB controllers
521ehci* at pci? dev ? function ? # Enhanced Host Controller 528ehci* at pci? dev ? function ? # Enhanced Host Controller
522ohci* at pci? dev ? function ? # Open Host Controller 529ohci* at pci? dev ? function ? # Open Host Controller
523uhci* at pci? dev ? function ? # Universal Host Controller (Intel) 530uhci* at pci? dev ? function ? # Universal Host Controller (Intel)
524 531
525# USB bus support 532# USB bus support
526usb* at ehci? 533usb* at ehci?
527usb* at ohci? 534usb* at ohci?
528usb* at uhci? 535usb* at uhci?
529 536
530# USB Hubs 537# USB Hubs
531uhub* at usb? 538uhub* at usb?
532uhub* at uhub? port ? 539uhub* at uhub? port ?
533 540
534# USB HID device 541# USB HID device
535uhidev* at uhub? port ? configuration ? interface ? 542uhidev* at uhub? port ? configuration ? interface ?
536 543
537# USB Mice 544# USB Mice
538ums* at uhidev? reportid ? 545ums* at uhidev? reportid ?
539wsmouse* at ums? mux 0 546wsmouse* at ums? mux 0
540 547
541# USB eGalax touch-panel 548# USB eGalax touch-panel
542uep* at uhub? port ? 549uep* at uhub? port ?
543wsmouse* at uep? mux 0 550wsmouse* at uep? mux 0
544 551
545# USB Keyboards 552# USB Keyboards
546ukbd* at uhidev? reportid ? 553ukbd* at uhidev? reportid ?
547wskbd* at ukbd? console ? mux 1 554wskbd* at ukbd? console ? mux 1
548 555
549# USB serial adapter 556# USB serial adapter
550ucycom* at uhidev? reportid ? 557ucycom* at uhidev? reportid ?
551 558
552# USB Generic HID devices 559# USB Generic HID devices
553uhid* at uhidev? reportid ? 560uhid* at uhidev? reportid ?
554 561
555# USB Printer 562# USB Printer
556ulpt* at uhub? port ? configuration ? interface ? 563ulpt* at uhub? port ? configuration ? interface ?
557 564
558# USB Modem 565# USB Modem
559umodem* at uhub? port ? configuration ? 566umodem* at uhub? port ? configuration ?
560ucom* at umodem? 567ucom* at umodem?
561 568
562# USB Mass Storage 569# USB Mass Storage
563umass* at uhub? port ? configuration ? interface ? 570umass* at uhub? port ? configuration ? interface ?
564wd* at umass? 571wd* at umass?
565 572
566# USB audio 573# USB audio
567uaudio* at uhub? port ? configuration ? 574uaudio* at uhub? port ? configuration ?
568 575
569# USB MIDI 576# USB MIDI
570umidi* at uhub? port ? configuration ? 577umidi* at uhub? port ? configuration ?
571 578
572# USB IrDA 579# USB IrDA
573# USB-IrDA bridge spec 580# USB-IrDA bridge spec
574uirda* at uhub? port ? configuration ? interface ? 581uirda* at uhub? port ? configuration ? interface ?
575irframe* at uirda? 582irframe* at uirda?
576 583
577# SigmaTel STIr4200 USB/IrDA Bridge 584# SigmaTel STIr4200 USB/IrDA Bridge
578ustir* at uhub? port ? 585ustir* at uhub? port ?
579irframe* at ustir? 586irframe* at ustir?
580 587
581# USB Ethernet adapters 588# USB Ethernet adapters
582aue* at uhub? port ? # ADMtek AN986 Pegasus based adapters 589aue* at uhub? port ? # ADMtek AN986 Pegasus based adapters
583axe* at uhub? port ? # ASIX AX88172 based adapters 590axe* at uhub? port ? # ASIX AX88172 based adapters
584cdce* at uhub? port ? # CDC, Ethernet Networking Control Model 591cdce* at uhub? port ? # CDC, Ethernet Networking Control Model
585cue* at uhub? port ? # CATC USB-EL1201A based adapters 592cue* at uhub? port ? # CATC USB-EL1201A based adapters
586kue* at uhub? port ? # Kawasaki LSI KL5KUSB101B based adapters 593kue* at uhub? port ? # Kawasaki LSI KL5KUSB101B based adapters
587udav* at uhub? port ? # Davicom DM9601 based adapters 594udav* at uhub? port ? # Davicom DM9601 based adapters
588url* at uhub? port ? # Realtek RTL8150L based adapters 595url* at uhub? port ? # Realtek RTL8150L based adapters
589 596
590# USB 802.11 adapters 597# USB 802.11 adapters
591atu* at uhub? port ? # Atmel AT76C50XX based adapters 598atu* at uhub? port ? # Atmel AT76C50XX based adapters
592ral* at uhub? port ? # Ralink Technology RT25x0 802.11a/b/g 599ral* at uhub? port ? # Ralink Technology RT25x0 802.11a/b/g
593rum* at uhub? port ? # Ralink Technology RT2501/RT2601 802.11a/b/g 600rum* at uhub? port ? # Ralink Technology RT2501/RT2601 802.11a/b/g
594 601
595# Prolific PL2301/PL2302 host-to-host adapter 602# Prolific PL2301/PL2302 host-to-host adapter
596upl* at uhub? port ? 603upl* at uhub? port ?
597 604
598# Serial adapters 605# Serial adapters
599ubsa* at uhub? port ? # Belkin serial adapter 606ubsa* at uhub? port ? # Belkin serial adapter
600ucom* at ubsa? portno ? 607ucom* at ubsa? portno ?
601 608
602uftdi* at uhub? port ? # FTDI FT8U100AX serial adapter 609uftdi* at uhub? port ? # FTDI FT8U100AX serial adapter
603ucom* at uftdi? portno ? 610ucom* at uftdi? portno ?
604 611
605umct* at uhub? port ? # MCT USB-RS232 serial adapter 612umct* at uhub? port ? # MCT USB-RS232 serial adapter
606ucom* at umct? portno ? 613ucom* at umct? portno ?
607 614
608uplcom* at uhub? port ? # I/O DATA USB-RSAQ2 serial adapter 615uplcom* at uhub? port ? # I/O DATA USB-RSAQ2 serial adapter
609ucom* at uplcom? portno ? 616ucom* at uplcom? portno ?
610 617
611uvscom* at uhub? port ? # SUNTAC Slipper U VS-10U serial adapter 618uvscom* at uhub? port ? # SUNTAC Slipper U VS-10U serial adapter
612ucom* at uvscom? portno ? 619ucom* at uvscom? portno ?
613 620
614# Diamond Multimedia Rio 500 621# Diamond Multimedia Rio 500
615urio* at uhub? port ? 622urio* at uhub? port ?
616 623
617# USB Handspring Visor 624# USB Handspring Visor
618uvisor* at uhub? port ? 625uvisor* at uhub? port ?
619ucom* at uvisor? 626ucom* at uvisor?
620 627
621# Kyocera AIR-EDGE PHONE 628# Kyocera AIR-EDGE PHONE
622ukyopon* at uhub? port ? 629ukyopon* at uhub? port ?
623ucom* at ukyopon? portno ? 630ucom* at ukyopon? portno ?
624 631
625# USB scanners 632# USB scanners
626uscanner* at uhub? port ? 633uscanner* at uhub? port ?
627 634
628# USB scanners that use SCSI emulation, e.g., HP5300 635# USB scanners that use SCSI emulation, e.g., HP5300
629usscanner* at uhub? port ? 636usscanner* at uhub? port ?
630 637
631# Y@P firmware loader 638# Y@P firmware loader
632uyap* at uhub? port ? 639uyap* at uhub? port ?
633 640
634# D-Link DSB-R100 USB radio 641# D-Link DSB-R100 USB radio
635udsbr* at uhub? port ? 642udsbr* at uhub? port ?
636radio* at udsbr? 643radio* at udsbr?
637 644
638# USB Generic driver 645# USB Generic driver
639ugen* at uhub? port ? 646ugen* at uhub? port ?
640 647
641# PCI IEEE1394 controllers 648# PCI IEEE1394 controllers
642fwohci* at pci? dev ? function ? # IEEE1394 Open Host Controller 649fwohci* at pci? dev ? function ? # IEEE1394 Open Host Controller
643 650
644# CardBus IEEE1394 controllers 651# CardBus IEEE1394 controllers
645#fwohci* at cardbus? function ? # IEEE1394 Open Host Controller 652#fwohci* at cardbus? function ? # IEEE1394 Open Host Controller
646 653
647ieee1394if* at fwohci? 654ieee1394if* at fwohci?
648fwip* at ieee1394if? # IP over IEEE1394 655fwip* at ieee1394if? # IP over IEEE1394
649sbp* at ieee1394if? euihi ? euilo ? # SCSI over IEEE1394 656sbp* at ieee1394if? euihi ? euilo ? # SCSI over IEEE1394
650 657
651# PCI audio devices 658# PCI audio devices
652auacer* at pci? dev ? function ? # ALi M5455 integrated AC'97 Audio 659auacer* at pci? dev ? function ? # ALi M5455 integrated AC'97 Audio
653auich* at pci? dev ? function ? # Intel ICH integrated AC'97 Audio 660auich* at pci? dev ? function ? # Intel ICH integrated AC'97 Audio
654auixp* at pci? dev ? function ? # ATI IXP AC'97 Audio 661auixp* at pci? dev ? function ? # ATI IXP AC'97 Audio
655autri* at pci? dev ? function ? # Trident 4DWAVE based AC'97 Audio 662autri* at pci? dev ? function ? # Trident 4DWAVE based AC'97 Audio
656auvia* at pci? dev ? function ? # VIA VT82C686A integrated AC'97 Audio 663auvia* at pci? dev ? function ? # VIA VT82C686A integrated AC'97 Audio
657azalia* at pci? dev ? function ? # High Definition Audio 664azalia* at pci? dev ? function ? # High Definition Audio
658clcs* at pci? dev ? function ? # Cirrus Logic CS4280 665clcs* at pci? dev ? function ? # Cirrus Logic CS4280
659clct* at pci? dev ? function ? # Cirrus Logic CS4281 666clct* at pci? dev ? function ? # Cirrus Logic CS4281
660cmpci* at pci? dev ? function ? # C-Media CMI8338/8738 667cmpci* at pci? dev ? function ? # C-Media CMI8338/8738
661eap* at pci? dev ? function ? # Ensoniq AudioPCI 668eap* at pci? dev ? function ? # Ensoniq AudioPCI
662emuxki* at pci? dev ? function ? # Creative SBLive! and PCI512 669emuxki* at pci? dev ? function ? # Creative SBLive! and PCI512
663esa* at pci? dev ? function ? # ESS Allegro-1 / Maestro-3 PCI Audio 670esa* at pci? dev ? function ? # ESS Allegro-1 / Maestro-3 PCI Audio
664esm* at pci? dev ? function ? # ESS Maestro-1/2/2e PCI Audio Accelerator 671esm* at pci? dev ? function ? # ESS Maestro-1/2/2e PCI Audio Accelerator
665eso* at pci? dev ? function ? # ESS Solo-1 PCI AudioDrive 672eso* at pci? dev ? function ? # ESS Solo-1 PCI AudioDrive
666fms* at pci? dev ? function ? # Forte Media FM801 673fms* at pci? dev ? function ? # Forte Media FM801
667neo* at pci? dev ? function ? # NeoMagic 256 AC'97 Audio 674neo* at pci? dev ? function ? # NeoMagic 256 AC'97 Audio
668sv* at pci? dev ? function ? # S3 SonicVibes 675sv* at pci? dev ? function ? # S3 SonicVibes
669yds* at pci? dev ? function ? # Yamaha DS-1 PCI Audio 676yds* at pci? dev ? function ? # Yamaha DS-1 PCI Audio
670 677
671# OPL[23] FM synthesizers 678# OPL[23] FM synthesizers
672#opl0 at isa? port 0x388 # use only if not attached to sound card 679#opl0 at isa? port 0x388 # use only if not attached to sound card
673opl* at cmpci? flags 1 680opl* at cmpci? flags 1
674opl* at eso? 681opl* at eso?
675opl* at fms? 682opl* at fms?
676opl* at sv? 683opl* at sv?
677opl* at yds? 684opl* at yds?
678 685
679# Audio support 686# Audio support
680audio* at audiobus? 687audio* at audiobus?
681 688
682# MPU 401 UARTs 689# MPU 401 UARTs
683#mpu* at isa? port 0x330 irq 9 # MPU401 or compatible card 690#mpu* at isa? port 0x330 irq 9 # MPU401 or compatible card
684mpu* at cmpci? 691mpu* at cmpci?
685mpu* at eso? 692mpu* at eso?
686mpu* at fms? 693mpu* at fms?
687mpu* at yds? 694mpu* at yds?
688 695
689# MIDI support 696# MIDI support
690midi* at midibus? 697midi* at midibus?
691 698
692# Bluetooth Controller and Device support 699# Bluetooth Controller and Device support
693 700
694# Bluetooth PCMCIA Controllers 701# Bluetooth PCMCIA Controllers
695#bt3c* at pcmcia? function ? # 3Com 3CRWB6096-A 702#bt3c* at pcmcia? function ? # 3Com 3CRWB6096-A
696#btbc* at pcmcia? function ? # AnyCom BlueCard LSE041/039/139 703#btbc* at pcmcia? function ? # AnyCom BlueCard LSE041/039/139
697 704
698# Bluetooth USB Controllers 705# Bluetooth USB Controllers
699ubt* at uhub? port ? 706ubt* at uhub? port ?
700 707
701# Bluetooth Device Hub 708# Bluetooth Device Hub
702#bthub* at bt3c? 709#bthub* at bt3c?
703#bthub* at btbh? 710#bthub* at btbh?
704bthub* at ubt? 711bthub* at ubt?
705 712
706# Bluetooth HID support 713# Bluetooth HID support
707bthidev* at bthub? 714bthidev* at bthub?
708 715
709# Bluetooth Mouse 716# Bluetooth Mouse
710btms* at bthidev? reportid ? 717btms* at bthidev? reportid ?
711wsmouse* at btms? mux 0 718wsmouse* at btms? mux 0
712 719
713# Bluetooth Keyboard 720# Bluetooth Keyboard
714btkbd* at bthidev? reportid ? 721btkbd* at bthidev? reportid ?
715wskbd* at btkbd? console ? mux 1 722wskbd* at btkbd? console ? mux 1
716 723
717# Bluetooth Audio support 724# Bluetooth Audio support
718btsco* at bthub? 725btsco* at bthub?
719 726
720# Cryptographic Devices 727# Cryptographic Devices
721 728
722# PCI cryptographic devices 729# PCI cryptographic devices
723hifn* at pci? dev ? function ? # Hifn 7755/7811/795x 730hifn* at pci? dev ? function ? # Hifn 7755/7811/795x
724ubsec* at pci? dev ? function ? # Broadcom 5501/5601/580x/582x 731ubsec* at pci? dev ? function ? # Broadcom 5501/5601/580x/582x
725 732
726cinclude "arch/amd64/conf/GENERIC.local" 733cinclude "arch/amd64/conf/GENERIC.local"
727 734
728# Pseudo-Devices 735# Pseudo-Devices
729 736
730# 737#
731# accept filters 738# accept filters
732pseudo-device accf_data # "dataready" accept filter 739pseudo-device accf_data # "dataready" accept filter
733pseudo-device accf_http # "httpready" accept filter 740pseudo-device accf_http # "httpready" accept filter
734 741
735pseudo-device crypto # /dev/crypto device 742pseudo-device crypto # /dev/crypto device
736pseudo-device swcrypto # software crypto implementation 743pseudo-device swcrypto # software crypto implementation
737 744
738# disk/mass storage pseudo-devices 745# disk/mass storage pseudo-devices
739pseudo-device bio # RAID control device driver 746pseudo-device bio # RAID control device driver
740pseudo-device ccd 4 # concatenated/striped disk devices 747pseudo-device ccd 4 # concatenated/striped disk devices
741pseudo-device cgd 4 # cryptographic disk devices 748pseudo-device cgd 4 # cryptographic disk devices
742pseudo-device raid 8 # RAIDframe disk driver 749pseudo-device raid 8 # RAIDframe disk driver
743options RAID_AUTOCONFIG # auto-configuration of RAID components 750options RAID_AUTOCONFIG # auto-configuration of RAID components
744# Options to enable various other RAIDframe RAID types. 751# Options to enable various other RAIDframe RAID types.
745#options RF_INCLUDE_EVENODD=1 752#options RF_INCLUDE_EVENODD=1
746#options RF_INCLUDE_RAID5_RS=1 753#options RF_INCLUDE_RAID5_RS=1
747#options RF_INCLUDE_PARITYLOGGING=1 754#options RF_INCLUDE_PARITYLOGGING=1
748#options RF_INCLUDE_CHAINDECLUSTER=1 755#options RF_INCLUDE_CHAINDECLUSTER=1
749#options RF_INCLUDE_INTERDECLUSTER=1 756#options RF_INCLUDE_INTERDECLUSTER=1
750#options RF_INCLUDE_PARITY_DECLUSTERING=1 757#options RF_INCLUDE_PARITY_DECLUSTERING=1
751#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1 758#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1
752pseudo-device fss 4 # file system snapshot device 759pseudo-device fss 4 # file system snapshot device
753 760
754pseudo-device md 1 # memory disk device (ramdisk) 761pseudo-device md 1 # memory disk device (ramdisk)
755pseudo-device vnd # disk-like interface to files 762pseudo-device vnd # disk-like interface to files
756 763
757# network pseudo-devices 764# network pseudo-devices
758pseudo-device bpfilter # Berkeley packet filter 765pseudo-device bpfilter # Berkeley packet filter
759pseudo-device ipfilter # IP filter (firewall) and NAT 766pseudo-device ipfilter # IP filter (firewall) and NAT
760pseudo-device loop # network loopback 767pseudo-device loop # network loopback
761pseudo-device ppp # Point-to-Point Protocol 768pseudo-device ppp # Point-to-Point Protocol
762pseudo-device pppoe # PPP over Ethernet (RFC 2516) 769pseudo-device pppoe # PPP over Ethernet (RFC 2516)
763pseudo-device sl # Serial Line IP 770pseudo-device sl # Serial Line IP
764pseudo-device tap # virtual Ethernet 771pseudo-device tap # virtual Ethernet
765pseudo-device tun # network tunneling over tty 772pseudo-device tun # network tunneling over tty
766pseudo-device gre # generic L3 over IP tunnel 773pseudo-device gre # generic L3 over IP tunnel
767pseudo-device gif # IPv[46] over IPv[46] tunnel (RFC1933) 774pseudo-device gif # IPv[46] over IPv[46] tunnel (RFC1933)
768#pseudo-device faith # IPv[46] tcp relay translation i/f 775#pseudo-device faith # IPv[46] tcp relay translation i/f
769pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation 776pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation
770pseudo-device vlan # IEEE 802.1q encapsulation 777pseudo-device vlan # IEEE 802.1q encapsulation
771pseudo-device bridge # simple inter-network bridging 778pseudo-device bridge # simple inter-network bridging
772#options BRIDGE_IPF # bridge uses IP/IPv6 pfil hooks too 779#options BRIDGE_IPF # bridge uses IP/IPv6 pfil hooks too
773#pseudo-device pf # PF packet filter 780#pseudo-device pf # PF packet filter
774#pseudo-device pflog # PF log if 781#pseudo-device pflog # PF log if
775 782
776# miscellaneous pseudo-devices 783# miscellaneous pseudo-devices
777pseudo-device pty # pseudo-terminals 784pseudo-device pty # pseudo-terminals
778pseudo-device rnd # /dev/random and in-kernel generator 785pseudo-device rnd # /dev/random and in-kernel generator
779pseudo-device clockctl # user control of clock subsystem 786pseudo-device clockctl # user control of clock subsystem
780pseudo-device ksyms # /dev/ksyms 787pseudo-device ksyms # /dev/ksyms
781 788
782# a pseudo device needed for Coda # also needs CODA (above) 789# a pseudo device needed for Coda # also needs CODA (above)
783pseudo-device vcoda 4 # coda minicache <-> venus comm. 790pseudo-device vcoda 4 # coda minicache <-> venus comm.
784 791
785# a pseudo device needed for SMBFS 792# a pseudo device needed for SMBFS
786pseudo-device nsmb # experimental - SMB requester 793pseudo-device nsmb # experimental - SMB requester
787 794
788# wscons pseudo-devices 795# wscons pseudo-devices
789pseudo-device wsmux # mouse & keyboard multiplexor 796pseudo-device wsmux # mouse & keyboard multiplexor
790pseudo-device wsfont 797pseudo-device wsfont
791 798
792# userland interface to drivers, including autoconf and properties retrieval 799# userland interface to drivers, including autoconf and properties retrieval
793pseudo-device drvctl 800pseudo-device drvctl
794 801
795# xen pseudo-devices 802# xen pseudo-devices
796pseudo-device xenevt 803pseudo-device xenevt
797pseudo-device xvif 804pseudo-device xvif
798pseudo-device xbdback 805pseudo-device xbdback

cvs diff -r1.18 -r1.19 src/sys/arch/i386/conf/Attic/XEN3_DOM0 (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,821 +1,831 @@ @@ -1,821 +1,831 @@
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
15# 15#
16options XEN 16options XEN
17#options __XEN_INTERFACE_VERSION__=0x00030205 # Xen 3.1 interface 17#options __XEN_INTERFACE_VERSION__=0x00030205 # Xen 3.1 interface
18 18
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
45options SYSVSEM # System V-like semaphores 55options SYSVSEM # System V-like semaphores
46#options SEMMNI=10 # number of semaphore identifiers 56#options SEMMNI=10 # number of semaphore identifiers
47#options SEMMNS=60 # number of semaphores in system 57#options SEMMNS=60 # number of semaphores in system
48#options SEMUME=10 # max number of undo entries per process 58#options SEMUME=10 # max number of undo entries per process
49#options SEMMNU=30 # number of undo structures in system 59#options SEMMNU=30 # number of undo structures in system
50options SYSVSHM # System V-like memory sharing 60options SYSVSHM # System V-like memory sharing
51#options SHMMAXPGS=2048 # 2048 pages is the default 61#options SHMMAXPGS=2048 # 2048 pages is the default
52options P1003_1B_SEMAPHORE # p1003.1b semaphore support 62options P1003_1B_SEMAPHORE # p1003.1b semaphore support
53 63
54 64
55options USERCONF # userconf(4) support 65options USERCONF # userconf(4) support
56options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel 66options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel
57 67
58# Diagnostic/debugging support options 68# Diagnostic/debugging support options
59options DIAGNOSTIC # expensive kernel consistency checks 69options DIAGNOSTIC # expensive kernel consistency checks
60options DEBUG # expensive debugging checks/support  70options DEBUG # expensive debugging checks/support
61options KMEMSTATS # kernel memory statistics (vmstat -m) 71options KMEMSTATS # kernel memory statistics (vmstat -m)
62options DDB # in-kernel debugger 72options DDB # in-kernel debugger
63options DDB_ONPANIC=1 # see also sysctl(8): `ddb.onpanic' 73options DDB_ONPANIC=1 # see also sysctl(8): `ddb.onpanic'
64options DDB_HISTORY_SIZE=512 # enable history editing in DDB 74options DDB_HISTORY_SIZE=512 # enable history editing in DDB
65#options KGDB # remote debugger 75#options KGDB # remote debugger
66#options KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x2f8,KGDB_DEVRATE=57600 76#options KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x2f8,KGDB_DEVRATE=57600
67#makeoptions DEBUG="-g" # compile full symbol table 77#makeoptions DEBUG="-g" # compile full symbol table
68 78
69# Compatibility options 79# Compatibility options
70options COMPAT_NOMID # NetBSD 0.8, 386BSD, and BSDI 80options COMPAT_NOMID # NetBSD 0.8, 386BSD, and BSDI
71options COMPAT_09 # NetBSD 0.9 81options COMPAT_09 # NetBSD 0.9
72options COMPAT_10 # NetBSD 1.0 82options COMPAT_10 # NetBSD 1.0
73options COMPAT_11 # NetBSD 1.1 83options COMPAT_11 # NetBSD 1.1
74options COMPAT_12 # NetBSD 1.2, 386BSD, and BSDI 84options COMPAT_12 # NetBSD 1.2, 386BSD, and BSDI
75options COMPAT_13 # NetBSD 1.3, 386BSD, and BSDI 85options COMPAT_13 # NetBSD 1.3, 386BSD, and BSDI
76options COMPAT_14 # NetBSD 1.4 86options COMPAT_14 # NetBSD 1.4
77options COMPAT_15 # NetBSD 1.5 87options COMPAT_15 # NetBSD 1.5
78options COMPAT_16 # NetBSD 1.6 88options COMPAT_16 # NetBSD 1.6
79options COMPAT_20 # NetBSD 2.0 89options COMPAT_20 # NetBSD 2.0
80options COMPAT_30 # NetBSD 3.0 compatibility. 90options COMPAT_30 # NetBSD 3.0 compatibility.
81options COMPAT_40 # NetBSD 4.0 91options COMPAT_40 # NetBSD 4.0
82options COMPAT_43 # 4.3BSD, 386BSD, and BSDI 92options COMPAT_43 # 4.3BSD, 386BSD, and BSDI
83options COMPAT_50 # NetBSD 5.0 93options COMPAT_50 # NetBSD 5.0
84options COMPAT_386BSD_MBRPART # recognize old partition ID 94options COMPAT_386BSD_MBRPART # recognize old partition ID
85#options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended. 95#options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended.
86 96
87options COMPAT_OSSAUDIO # OSS (Voxware) audio driver compatibility 97options COMPAT_OSSAUDIO # OSS (Voxware) audio driver compatibility
88options COMPAT_SVR4 # binary compatibility with SVR4 98options COMPAT_SVR4 # binary compatibility with SVR4
89options COMPAT_IBCS2 # binary compatibility with SCO and ISC 99options COMPAT_IBCS2 # binary compatibility with SCO and ISC
90options COMPAT_LINUX # binary compatibility with Linux 100options COMPAT_LINUX # binary compatibility with Linux
91options COMPAT_FREEBSD # binary compatibility with FreeBSD 101options COMPAT_FREEBSD # binary compatibility with FreeBSD
92#options COMPAT_MACH # binary compatibility with Mach binaries 102#options COMPAT_MACH # binary compatibility with Mach binaries
93#options COMPAT_DARWIN # binary compatibility with Darwin binaries 103#options COMPAT_DARWIN # binary compatibility with Darwin binaries
94#options EXEC_MACHO # exec MACH-O binaries 104#options EXEC_MACHO # exec MACH-O binaries
95#options COMPAT_PECOFF # kernel support to run Win32 apps 105#options COMPAT_PECOFF # kernel support to run Win32 apps
96options COMPAT_BSDPTY # /dev/[pt]ty?? ptys. 106options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
97 107
98# File systems 108# File systems
99file-system FFS # UFS 109file-system FFS # UFS
100file-system EXT2FS # second extended file system (linux) 110file-system EXT2FS # second extended file system (linux)
101file-system LFS # log-structured file system 111file-system LFS # log-structured file system
102file-system MFS # memory file system 112file-system MFS # memory file system
103file-system NFS # Network File System client 113file-system NFS # Network File System client
104file-system NTFS # Windows/NT file system (experimental) 114file-system NTFS # Windows/NT file system (experimental)
105file-system CD9660 # ISO 9660 + Rock Ridge file system 115file-system CD9660 # ISO 9660 + Rock Ridge file system
106file-system MSDOSFS # MS-DOS file system 116file-system MSDOSFS # MS-DOS file system
107file-system FDESC # /dev/fd 117file-system FDESC # /dev/fd
108file-system KERNFS # /kern 118file-system KERNFS # /kern
109file-system NULLFS # loopback file system 119file-system NULLFS # loopback file system
110file-system OVERLAY # overlay file system 120file-system OVERLAY # overlay file system
111file-system PORTAL # portal filesystem (still experimental) 121file-system PORTAL # portal filesystem (still experimental)
112file-system PROCFS # /proc 122file-system PROCFS # /proc
113file-system UMAPFS # NULLFS + uid and gid remapping 123file-system UMAPFS # NULLFS + uid and gid remapping
114file-system UNION # union file system 124file-system UNION # union file system
115file-system CODA # Coda File System; also needs vcoda (below) 125file-system CODA # Coda File System; also needs vcoda (below)
116file-system SMBFS # experimental - CIFS; also needs nsmb (below) 126file-system SMBFS # experimental - CIFS; also needs nsmb (below)
117file-system PTYFS # /dev/pts/N support 127file-system PTYFS # /dev/pts/N support
118file-system TMPFS # Efficient memory file-system 128file-system TMPFS # Efficient memory file-system
119 129
120# File system options 130# File system options
121options QUOTA # UFS quotas 131options QUOTA # UFS quotas
122#options FFS_EI # FFS Endian Independent support 132#options FFS_EI # FFS Endian Independent support
123options WAPBL # File system journaling support - Experimental 133options WAPBL # File system journaling support - Experimental
124#options UFS_DIRHASH # UFS Large Directory Hashing - Experimental 134#options UFS_DIRHASH # UFS Large Directory Hashing - Experimental
125options NFSSERVER # Network File System server 135options NFSSERVER # Network File System server
126#options FFS_NO_SNAPSHOT # No FFS snapshot support 136#options FFS_NO_SNAPSHOT # No FFS snapshot support
127#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and 137#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
128 # immutable) behave as system flags. 138 # immutable) behave as system flags.
129 139
130# Networking options 140# Networking options
131#options GATEWAY # packet forwarding 141#options GATEWAY # packet forwarding
132options INET # IP + ICMP + TCP + UDP 142options INET # IP + ICMP + TCP + UDP
133options INET6 # IPV6 143options INET6 # IPV6
134#options IPSEC # IP security 144#options IPSEC # IP security
135#options IPSEC_ESP # IP security (encryption part; define w/IPSEC) 145#options IPSEC_ESP # IP security (encryption part; define w/IPSEC)
136#options IPSEC_NAT_T # IPsec NAT traversal (NAT-T) 146#options IPSEC_NAT_T # IPsec NAT traversal (NAT-T)
137#options IPSEC_DEBUG # debug for IP security 147#options IPSEC_DEBUG # debug for IP security
138#options MROUTING # IP multicast routing 148#options MROUTING # IP multicast routing
139#options PIM # Protocol Independent Multicast 149#options PIM # Protocol Independent Multicast
140#options ISO,TPIP # OSI 150#options ISO,TPIP # OSI
141#options EON # OSI tunneling over IP 151#options EON # OSI tunneling over IP
142options NETATALK # AppleTalk networking protocols 152options NETATALK # AppleTalk networking protocols
143options PPP_BSDCOMP # BSD-Compress compression support for PPP 153options PPP_BSDCOMP # BSD-Compress compression support for PPP
144options PPP_DEFLATE # Deflate compression support for PPP 154options PPP_DEFLATE # Deflate compression support for PPP
145options PPP_FILTER # Active filter support for PPP (requires bpf) 155options PPP_FILTER # Active filter support for PPP (requires bpf)
146options PFIL_HOOKS # pfil(9) packet filter hooks 156options PFIL_HOOKS # pfil(9) packet filter hooks
147options IPFILTER_LOG # ipmon(8) log support 157options IPFILTER_LOG # ipmon(8) log support
148options IPFILTER_LOOKUP # ippool(8) support 158options IPFILTER_LOOKUP # ippool(8) support
149#options IPFILTER_DEFAULT_BLOCK # block all packets by default 159#options IPFILTER_DEFAULT_BLOCK # block all packets by default
150#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG 160#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
151 161
152#options ALTQ # Manipulate network interfaces' output queues 162#options ALTQ # Manipulate network interfaces' output queues
153#options ALTQ_BLUE # Stochastic Fair Blue 163#options ALTQ_BLUE # Stochastic Fair Blue
154#options ALTQ_CBQ # Class-Based Queueing 164#options ALTQ_CBQ # Class-Based Queueing
155#options ALTQ_CDNR # Diffserv Traffic Conditioner 165#options ALTQ_CDNR # Diffserv Traffic Conditioner
156#options ALTQ_FIFOQ # First-In First-Out Queue 166#options ALTQ_FIFOQ # First-In First-Out Queue
157#options ALTQ_FLOWVALVE # RED/flow-valve (red-penalty-box) 167#options ALTQ_FLOWVALVE # RED/flow-valve (red-penalty-box)
158#options ALTQ_HFSC # Hierarchical Fair Service Curve 168#options ALTQ_HFSC # Hierarchical Fair Service Curve
159#options ALTQ_LOCALQ # Local queueing discipline 169#options ALTQ_LOCALQ # Local queueing discipline
160#options ALTQ_PRIQ # Priority Queueing 170#options ALTQ_PRIQ # Priority Queueing
161#options ALTQ_RED # Random Early Detection 171#options ALTQ_RED # Random Early Detection
162#options ALTQ_RIO # RED with IN/OUT 172#options ALTQ_RIO # RED with IN/OUT
163#options ALTQ_WFQ # Weighted Fair Queueing 173#options ALTQ_WFQ # Weighted Fair Queueing
164 174
165# These options enable verbose messages for several subsystems. 175# These options enable verbose messages for several subsystems.
166# Warning, these may compile large string tables into the kernel! 176# Warning, these may compile large string tables into the kernel!
167options MIIVERBOSE # verbose PHY autoconfig messages 177options MIIVERBOSE # verbose PHY autoconfig messages
168options PCIVERBOSE # verbose PCI device autoconfig messages 178options PCIVERBOSE # verbose PCI device autoconfig messages
169#options PCI_CONFIG_DUMP # verbosely dump PCI config space 179#options PCI_CONFIG_DUMP # verbosely dump PCI config space
170options SCSIVERBOSE # human readable SCSI error messages 180options SCSIVERBOSE # human readable SCSI error messages
171options USBVERBOSE # verbose USB device autoconfig messages 181options USBVERBOSE # verbose USB device autoconfig messages
172 182
173options NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM 183options NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM
174#options NFS_BOOT_BOOTSTATIC 184#options NFS_BOOT_BOOTSTATIC
175#options NFS_BOOTSTATIC_MYIP="\"169.254.1.2\"" 185#options NFS_BOOTSTATIC_MYIP="\"169.254.1.2\""
176#options NFS_BOOTSTATIC_GWIP="\"169.254.1.1\"" 186#options NFS_BOOTSTATIC_GWIP="\"169.254.1.1\""
177#options NFS_BOOTSTATIC_MASK="\"255.255.255.0\"" 187#options NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
178#options NFS_BOOTSTATIC_SERVADDR="\"169.254.1.1\"" 188#options NFS_BOOTSTATIC_SERVADDR="\"169.254.1.1\""
179#options NFS_BOOTSTATIC_SERVER="\"server:/path/to/root\"" 189#options NFS_BOOTSTATIC_SERVER="\"server:/path/to/root\""
180 190
181options WSEMUL_VT100 # VT100 / VT220 emulation 191options WSEMUL_VT100 # VT100 / VT220 emulation
182options WS_KERNEL_FG=WSCOL_GREEN 192options WS_KERNEL_FG=WSCOL_GREEN
183options WSDISPLAY_COMPAT_PCVT # emulate some ioctls 193options WSDISPLAY_COMPAT_PCVT # emulate some ioctls
184options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls 194options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls
185options WSDISPLAY_COMPAT_USL # VT handling 195options WSDISPLAY_COMPAT_USL # VT handling
186options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes 196options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes
187options WSDISPLAY_DEFAULTSCREENS=4 197options WSDISPLAY_DEFAULTSCREENS=4
188options WSDISPLAY_SCROLLSUPPORT 198options WSDISPLAY_SCROLLSUPPORT
189options PCDISPLAY_SOFTCURSOR 199options PCDISPLAY_SOFTCURSOR
190 200
191config netbsd root on ? type ? 201config netbsd root on ? type ?
192#config netbsd root on wd0a type ffs 202#config netbsd root on wd0a type ffs
193#config netbsd root on xennet0 type nfs 203#config netbsd root on xennet0 type nfs
194 204
195mainbus0 at root 205mainbus0 at root
196 206
197cpu* at mainbus? 207cpu* at mainbus?
198 208
199# IPMI support 209# IPMI support
200ipmi0 at mainbus? 210ipmi0 at mainbus?
201 211
202hypervisor* at mainbus? # Xen hypervisor 212hypervisor* at mainbus? # Xen hypervisor
203 213
204vcpu* at hypervisor? # Xen virtual CPUs 214vcpu* at hypervisor? # Xen virtual CPUs
205xenbus* at hypervisor? # Xen virtual bus 215xenbus* at hypervisor? # Xen virtual bus
206npx0 at hypervisor? # x86 math coprocessor 216npx0 at hypervisor? # x86 math coprocessor
207 217
208xencons* at hypervisor? # Xen virtual console 218xencons* at hypervisor? # Xen virtual console
209#xennet* at hypervisor? # Xen virtual network interface 219#xennet* at hypervisor? # Xen virtual network interface
210 220
211#xbd* at hypervisor? # Xen virtual block device 221#xbd* at hypervisor? # Xen virtual block device
212#wd* at hypervisor? # Xen vbd (wd identity) 222#wd* at hypervisor? # Xen vbd (wd identity)
213#sd* at hypervisor? # Xen vbd (sd identity) 223#sd* at hypervisor? # Xen vbd (sd identity)
214#cd* at hypervisor? # Xen vbd (cd identity) 224#cd* at hypervisor? # Xen vbd (cd identity)
215 225
216# PCI bus support 226# PCI bus support
217pci* at hypervisor? bus ? 227pci* at hypervisor? bus ?
218pci* at pchb? bus ? 228pci* at pchb? bus ?
219 229
220# PCI bridges 230# PCI bridges
221ichlpcib* at pci? dev ? function ? # Intel ICH PCI-ISA w/ timecounter, 231ichlpcib* at pci? dev ? function ? # Intel ICH PCI-ISA w/ timecounter,
222 # watchdog and SpeedStep support 232 # watchdog and SpeedStep support
223pcib* at pci? dev ? function ? # PCI-ISA bridges 233pcib* at pci? dev ? function ? # PCI-ISA bridges
224pchb* at pci? dev ? function ? # PCI-Host bridges 234pchb* at pci? dev ? function ? # PCI-Host bridges
225ppb* at pci? dev ? function ? # PCI-PCI bridges 235ppb* at pci? dev ? function ? # PCI-PCI bridges
226# XXX 'puc's aren't really bridges, but there's no better place for them here 236# XXX 'puc's aren't really bridges, but there's no better place for them here
227puc* at pci? dev ? function ? # PCI "universal" comm. cards 237puc* at pci? dev ? function ? # PCI "universal" comm. cards
228 238
229agp* at pchb? 239agp* at pchb?
230 240
231# ISA bus support 241# ISA bus support
232isa0 at ichlpcib? 242isa0 at ichlpcib?
233isa0 at pcib? 243isa0 at pcib?
234isa0 at hypervisor? 244isa0 at hypervisor?
235 245
236# Serial Devices 246# Serial Devices
237 247
238# PCI serial interfaces 248# PCI serial interfaces
239com* at puc? port ? # 16x50s on "universal" comm boards 249com* at puc? port ? # 16x50s on "universal" comm boards
240cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards 250cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards
241cz* at pci? dev ? function ? # Cyclades-Z multi-port serial boards 251cz* at pci? dev ? function ? # Cyclades-Z multi-port serial boards
242 252
243# ISA serial interfaces 253# ISA serial interfaces
244#options COM_HAYESP # adds Hayes ESP serial board support 254#options COM_HAYESP # adds Hayes ESP serial board support
245# If a com port is used as Xen console it can't be used by the domain0 kernel 255# If a com port is used as Xen console it can't be used by the domain0 kernel
246# and there's no easy way to detect this yet. Leave com0 out as it's the 256# and there's no easy way to detect this yet. Leave com0 out as it's the
247# port usually used for serial console 257# port usually used for serial console
248#com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports 258#com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports
249com1 at isa? port 0x2f8 irq 3 259com1 at isa? port 0x2f8 irq 3
250#com2 at isa? port 0x3e8 irq 5 260#com2 at isa? port 0x3e8 irq 5
251#com3 at isa? port 0x2e8 irq 9 261#com3 at isa? port 0x2e8 irq 9
252 262
253# Parallel Printer Interfaces 263# Parallel Printer Interfaces
254 264
255# PCI parallel printer interfaces 265# PCI parallel printer interfaces
256lpt* at puc? port ? # || ports on "universal" comm boards 266lpt* at puc? port ? # || ports on "universal" comm boards
257 267
258# ISA parallel printer interfaces 268# ISA parallel printer interfaces
259lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports 269lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
260 270
261# Hardware monitors 271# Hardware monitors
262 272
263amdtemp* at pci? dev ? function ? # AMD CPU Temperature sensors 273amdtemp* at pci? dev ? function ? # AMD CPU Temperature sensors
264 274
265# AMD 768 and 8111 power/ACPI controllers 275# AMD 768 and 8111 power/ACPI controllers
266amdpm* at pci? dev ? function ? # RNG and SMBus 1.0 interface 276amdpm* at pci? dev ? function ? # RNG and SMBus 1.0 interface
267 277
268# dbCool thermal monitor and fan controller 278# dbCool thermal monitor and fan controller
269#iic* at amdpm? # sensors below are on this bus 279#iic* at amdpm? # sensors below are on this bus
270#dbcool* at iic? addr 0x2C # Unknown other motherboard(s) 280#dbcool* at iic? addr 0x2C # Unknown other motherboard(s)
271#dbcool* at iic? addr 0x2D # Tyan S2881 281#dbcool* at iic? addr 0x2D # Tyan S2881
272#dbcool* at iic? addr 0x2E # Tyan S2882-D 282#dbcool* at iic? addr 0x2E # Tyan S2882-D
273 283
274# LM7[89] and compatible hardware monitors 284# LM7[89] and compatible hardware monitors
275#lm0 at isa? port 0x290 # other common: 0x280, 0x310, 0xc00 285#lm0 at isa? port 0x290 # other common: 0x280, 0x310, 0xc00
276 286
277# VIA VT82C686A/VT8231 Hardware Monitor and Power Management TImer 287# VIA VT82C686A/VT8231 Hardware Monitor and Power Management TImer
278#viaenv* at pci? dev ? function ? 288#viaenv* at pci? dev ? function ?
279 289
280 290
281# PCI network interfaces 291# PCI network interfaces
282age* at pci? dev ? function ? # Attansic/Atheros L1 Gigabit Ethernet 292age* at pci? dev ? function ? # Attansic/Atheros L1 Gigabit Ethernet
283an* at pci? dev ? function ? # Aironet PC4500/PC4800 (802.11) 293an* at pci? dev ? function ? # Aironet PC4500/PC4800 (802.11)
284ale* at pci? dev ? function ? # Attansic/Atheros L1E Ethernet 294ale* at pci? dev ? function ? # Attansic/Atheros L1E Ethernet
285ath* at pci? dev ? function ? # Atheros 5210/5211/5212 802.11 295ath* at pci? dev ? function ? # Atheros 5210/5211/5212 802.11
286atw* at pci? dev ? function ? # ADMtek ADM8211 (802.11) 296atw* at pci? dev ? function ? # ADMtek ADM8211 (802.11)
287bce* at pci? dev ? function ? # Broadcom 4401 10/100 Ethernet 297bce* at pci? dev ? function ? # Broadcom 4401 10/100 Ethernet
288bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet 298bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet
289bnx* at pci? dev ? function ? # Broadcom NetXtremeII gigabit Ethernet 299bnx* at pci? dev ? function ? # Broadcom NetXtremeII gigabit Ethernet
290dge* at pci? dev ? function ? # Intel 82597 10GbE LR 300dge* at pci? dev ? function ? # Intel 82597 10GbE LR
291en* at pci? dev ? function ? # ENI/Adaptec ATM 301en* at pci? dev ? function ? # ENI/Adaptec ATM
292ep* at pci? dev ? function ? # 3Com 3c59x 302ep* at pci? dev ? function ? # 3Com 3c59x
293epic* at pci? dev ? function ? # SMC EPIC/100 Ethernet 303epic* at pci? dev ? function ? # SMC EPIC/100 Ethernet
294esh* at pci? dev ? function ? # Essential HIPPI card 304esh* at pci? dev ? function ? # Essential HIPPI card
295ex* at pci? dev ? function ? # 3Com 90x[BC] 305ex* at pci? dev ? function ? # 3Com 90x[BC]
296fpa* at pci? dev ? function ? # DEC DEFPA FDDI 306fpa* at pci? dev ? function ? # DEC DEFPA FDDI
297fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B 307fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B
298gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet 308gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
299hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ 309hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ
300ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100 310ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100
301iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG 311iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG
302iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN 312iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN
303jme* at pci? dev ? function ? # JMicron JMC2[56]0 ethernet 313jme* at pci? dev ? function ? # JMicron JMC2[56]0 ethernet
304le* at pci? dev ? function ? # PCnet-PCI Ethernet 314le* at pci? dev ? function ? # PCnet-PCI Ethernet
305lii* at pci? dev ? function ? # Atheros L2 Fast-Ethernet 315lii* at pci? dev ? function ? # Atheros L2 Fast-Ethernet
306lmc* at pci? dev ? function ? # Lan Media Corp SSI/HSSI/DS3 316lmc* at pci? dev ? function ? # Lan Media Corp SSI/HSSI/DS3
307mskc* at pci? dev ? function ? # Marvell Yukon 2 Gigabit Ethernet 317mskc* at pci? dev ? function ? # Marvell Yukon 2 Gigabit Ethernet
308msk* at mskc? # Marvell Yukon 2 Gigabit Ethernet 318msk* at mskc? # Marvell Yukon 2 Gigabit Ethernet
309mtd* at pci? dev ? function ? # Myson MTD803 3-in-1 Ethernet 319mtd* at pci? dev ? function ? # Myson MTD803 3-in-1 Ethernet
310ne* at pci? dev ? function ? # NE2000-compatible Ethernet 320ne* at pci? dev ? function ? # NE2000-compatible Ethernet
311nfe* at pci? dev ? function ? # NVIDIA nForce Ethernet 321nfe* at pci? dev ? function ? # NVIDIA nForce Ethernet
312ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial 322ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial
313pcn* at pci? dev ? function ? # AMD PCnet-PCI Ethernet 323pcn* at pci? dev ? function ? # AMD PCnet-PCI Ethernet
314ral* at pci? dev ? function ? # Ralink Technology RT25x0 802.11a/b/g 324ral* at pci? dev ? function ? # Ralink Technology RT25x0 802.11a/b/g
315re* at pci? dev ? function ? # Realtek 8139C+/8169/8169S/8110S 325re* at pci? dev ? function ? # Realtek 8139C+/8169/8169S/8110S
316rtk* at pci? dev ? function ? # Realtek 8129/8139 326rtk* at pci? dev ? function ? # Realtek 8129/8139
317sf* at pci? dev ? function ? # Adaptec AIC-6915 Ethernet 327sf* at pci? dev ? function ? # Adaptec AIC-6915 Ethernet
318sip* at pci? dev ? function ? # SiS 900/DP83815 Ethernet 328sip* at pci? dev ? function ? # SiS 900/DP83815 Ethernet
319skc* at pci? dev ? function ? # SysKonnect SK9821 Gigabit Ethernet 329skc* at pci? dev ? function ? # SysKonnect SK9821 Gigabit Ethernet
320sk* at skc? # SysKonnect SK9821 Gigabit Ethernet 330sk* at skc? # SysKonnect SK9821 Gigabit Ethernet
321ste* at pci? dev ? function ? # Sundance ST-201 Ethernet 331ste* at pci? dev ? function ? # Sundance ST-201 Ethernet
322stge* at pci? dev ? function ? # Sundance/Tamarack TC9021 Gigabit 332stge* at pci? dev ? function ? # Sundance/Tamarack TC9021 Gigabit
323ti* at pci? dev ? function ? # Alteon ACEnic gigabit Ethernet 333ti* at pci? dev ? function ? # Alteon ACEnic gigabit Ethernet
324tl* at pci? dev ? function ? # ThunderLAN-based Ethernet 334tl* at pci? dev ? function ? # ThunderLAN-based Ethernet
325tlp* at pci? dev ? function ? # DECchip 21x4x and clones 335tlp* at pci? dev ? function ? # DECchip 21x4x and clones
326txp* at pci? dev ? function ? # 3com 3cr990 336txp* at pci? dev ? function ? # 3com 3cr990
327vge* at pci? dev ? function ? # VIATech VT612X Gigabit Ethernet 337vge* at pci? dev ? function ? # VIATech VT612X Gigabit Ethernet
328vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet 338vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet
329wi* at pci? dev ? function ? # Intersil Prism Mini-PCI (802.11b) 339wi* at pci? dev ? function ? # Intersil Prism Mini-PCI (802.11b)
330wm* at pci? dev ? function ? # Intel 8254x gigabit 340wm* at pci? dev ? function ? # Intel 8254x gigabit
331xge* at pci? dev ? function ? # Neterion (S2io) Xframe-I 10GbE 341xge* at pci? dev ? function ? # Neterion (S2io) Xframe-I 10GbE
332 342
333# MII/PHY support 343# MII/PHY support
334acphy* at mii? phy ? # Altima AC101 and AMD Am79c874 PHYs 344acphy* at mii? phy ? # Altima AC101 and AMD Am79c874 PHYs
335amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs 345amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs
336atphy* at mii? phy ? # Attansic/Atheros PHYs 346atphy* at mii? phy ? # Attansic/Atheros PHYs
337bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs 347bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs
338brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs 348brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs
339ciphy* at mii? phy ? # Cicada CS8201 Gig-E PHYs 349ciphy* at mii? phy ? # Cicada CS8201 Gig-E PHYs
340dmphy* at mii? phy ? # Davicom DM9101 PHYs 350dmphy* at mii? phy ? # Davicom DM9101 PHYs
341exphy* at mii? phy ? # 3Com internal PHYs 351exphy* at mii? phy ? # 3Com internal PHYs
342gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs 352gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs
343glxtphy* at mii? phy ? # Level One LXT-1000 PHYs 353glxtphy* at mii? phy ? # Level One LXT-1000 PHYs
344gphyter* at mii? phy ? # NS83861 Gig-E PHY 354gphyter* at mii? phy ? # NS83861 Gig-E PHY
345icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x 355icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x
346igphy* at mii? phy ? # Intel IGP01E1000 356igphy* at mii? phy ? # Intel IGP01E1000
347ikphy* at mii? phy ? # Intel 82563 PHYs 357ikphy* at mii? phy ? # Intel 82563 PHYs
348inphy* at mii? phy ? # Intel 82555 PHYs 358inphy* at mii? phy ? # Intel 82555 PHYs
349iophy* at mii? phy ? # Intel 82553 PHYs 359iophy* at mii? phy ? # Intel 82553 PHYs
350lxtphy* at mii? phy ? # Level One LXT-970 PHYs 360lxtphy* at mii? phy ? # Level One LXT-970 PHYs
351makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs 361makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs
352nsphy* at mii? phy ? # NS83840 PHYs 362nsphy* at mii? phy ? # NS83840 PHYs
353nsphyter* at mii? phy ? # NS83843 PHYs 363nsphyter* at mii? phy ? # NS83843 PHYs
354pnaphy* at mii? phy ? # generic HomePNA PHYs 364pnaphy* at mii? phy ? # generic HomePNA PHYs
355qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs 365qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs
356rgephy* at mii? phy ? # Realtek 8169S/8110S internal PHYs 366rgephy* at mii? phy ? # Realtek 8169S/8110S internal PHYs
357rlphy* at mii? phy ? # Realtek 8139/8201L PHYs 367rlphy* at mii? phy ? # Realtek 8139/8201L PHYs
358sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs 368sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs
359tlphy* at mii? phy ? # ThunderLAN PHYs 369tlphy* at mii? phy ? # ThunderLAN PHYs
360tqphy* at mii? phy ? # TDK Semiconductor PHYs 370tqphy* at mii? phy ? # TDK Semiconductor PHYs
361ukphy* at mii? phy ? # generic unknown PHYs 371ukphy* at mii? phy ? # generic unknown PHYs
362urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs 372urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs
363 373
364# I2O devices 374# I2O devices
365iop* at pci? dev ? function ? # I/O processor 375iop* at pci? dev ? function ? # I/O processor
366iopsp* at iop? tid ? # SCSI/FC-AL ports 376iopsp* at iop? tid ? # SCSI/FC-AL ports
367ld* at iop? tid ? # block devices 377ld* at iop? tid ? # block devices
368dpti* at iop? tid 0 # DPT/Adaptec control interface 378dpti* at iop? tid 0 # DPT/Adaptec control interface
369 379
370# IDE and related devices 380# IDE and related devices
371# PCI IDE controllers - see pciide(4) for supported hardware. 381# PCI IDE controllers - see pciide(4) for supported hardware.
372# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know 382# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
373# how to set up DMA modes for this chip. This may work, or may cause 383# how to set up DMA modes for this chip. This may work, or may cause
374# a machine hang with some controllers. 384# a machine hang with some controllers.
375pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver 385pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver
376acardide* at pci? dev ? function ? # Acard IDE controllers 386acardide* at pci? dev ? function ? # Acard IDE controllers
377aceride* at pci? dev ? function ? # Acer Lab IDE controllers 387aceride* at pci? dev ? function ? # Acer Lab IDE controllers
378ahcisata* at pci? dev ? function ? # AHCI SATA controllers 388ahcisata* at pci? dev ? function ? # AHCI SATA controllers
379artsata* at pci? dev ? function ? # Intel i31244 SATA controller 389artsata* at pci? dev ? function ? # Intel i31244 SATA controller
380cmdide* at pci? dev ? function ? # CMD tech IDE controllers 390cmdide* at pci? dev ? function ? # CMD tech IDE controllers
381cypide* at pci? dev ? function ? # Cypress IDE controllers 391cypide* at pci? dev ? function ? # Cypress IDE controllers
382geodeide* at pci? dev ? function ? # AMD Geode IDE controllers 392geodeide* at pci? dev ? function ? # AMD Geode IDE controllers
383hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers 393hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers
384iteide* at pci? dev ? function ? # IT Express IDE controllers 394iteide* at pci? dev ? function ? # IT Express IDE controllers
385ixpide* at pci? dev ? function ? # ATI IXP IDE controllers 395ixpide* at pci? dev ? function ? # ATI IXP IDE controllers
386jmide* at pci? dev ? function ? # JMicron PCI-e PATA/SATA controllers 396jmide* at pci? dev ? function ? # JMicron PCI-e PATA/SATA controllers
387ahcisata* at jmide? 397ahcisata* at jmide?
388optiide* at pci? dev ? function ? # Opti IDE controllers 398optiide* at pci? dev ? function ? # Opti IDE controllers
389piixide* at pci? dev ? function ? # Intel IDE controllers 399piixide* at pci? dev ? function ? # Intel IDE controllers
390pdcide* at pci? dev ? function ? # Promise IDE controllers 400pdcide* at pci? dev ? function ? # Promise IDE controllers
391pdcsata* at pci? dev ? function ? # Promise SATA150 controllers 401pdcsata* at pci? dev ? function ? # Promise SATA150 controllers
392rccide* at pci? dev ? function ? # ServerWorks IDE controllers 402rccide* at pci? dev ? function ? # ServerWorks IDE controllers
393satalink* at pci? dev ? function ? # SiI SATALink controllers 403satalink* at pci? dev ? function ? # SiI SATALink controllers
394siside* at pci? dev ? function ? # SiS IDE controllers 404siside* at pci? dev ? function ? # SiS IDE controllers
395slide* at pci? dev ? function ? # Symphony Labs IDE controllers 405slide* at pci? dev ? function ? # Symphony Labs IDE controllers
396svwsata* at pci? dev ? function ? # ServerWorks SATA controllers 406svwsata* at pci? dev ? function ? # ServerWorks SATA controllers
397stpcide* at pci? dev ? function ? # STMicro STPC IDE controllers 407stpcide* at pci? dev ? function ? # STMicro STPC IDE controllers
398viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers 408viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers
399 409
400# ATA (IDE) bus support 410# ATA (IDE) bus support
401atabus* at ata? 411atabus* at ata?
402 412
403# IDE drives 413# IDE drives
404# Flags are used only with controllers that support DMA operations 414# Flags are used only with controllers that support DMA operations
405# and mode settings (e.g. some pciide controllers) 415# and mode settings (e.g. some pciide controllers)
406# The lowest order four bits (rightmost digit) of the flags define the PIO 416# The lowest order four bits (rightmost digit) of the flags define the PIO
407# mode to use, the next set of four bits the DMA mode and the third set the 417# mode to use, the next set of four bits the DMA mode and the third set the
408# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode 418# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
409# to use, and the last bit must be 1 for this setting to be used. 419# to use, and the last bit must be 1 for this setting to be used.
410# For DMA and UDMA, 0xf (1111) means 'disable'. 420# For DMA and UDMA, 0xf (1111) means 'disable'.
411# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'. 421# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
412# (0xc=1100, 0xa=1010, 0xf=1111) 422# (0xc=1100, 0xa=1010, 0xf=1111)
413# 0x0000 means "use whatever the drive claims to support". 423# 0x0000 means "use whatever the drive claims to support".
414wd* at atabus? drive ? flags 0x0000 424wd* at atabus? drive ? flags 0x0000
415 425
416# ATA RAID configuration support, as found on some Promise controllers. 426# ATA RAID configuration support, as found on some Promise controllers.
417pseudo-device ataraid 427pseudo-device ataraid
418ld* at ataraid? vendtype ? unit ? 428ld* at ataraid? vendtype ? unit ?
419 429
420# ATAPI bus support 430# ATAPI bus support
421atapibus* at atapi? 431atapibus* at atapi?
422 432
423# ATAPI devices 433# ATAPI devices
424# flags have the same meaning as for IDE drives. 434# flags have the same meaning as for IDE drives.
425cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives 435cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives
426sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives 436sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives
427st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives 437st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives
428uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown 438uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown
429 439
430# SCSI Controllers and Devices 440# SCSI Controllers and Devices
431 441
432# PCI SCSI controllers 442# PCI SCSI controllers
433adv* at pci? dev ? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI 443adv* at pci? dev ? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI
434adw* at pci? dev ? function ? # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI 444adw* at pci? dev ? function ? # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
435ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI 445ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI
436ahd* at pci? dev ? function ? # Adaptec 29320, 39320 (aic790x) SCSI 446ahd* at pci? dev ? function ? # Adaptec 29320, 39320 (aic790x) SCSI
437bha* at pci? dev ? function ? # BusLogic 9xx SCSI 447bha* at pci? dev ? function ? # BusLogic 9xx SCSI
438dpt* at pci? dev ? function ? # DPT SmartCache/SmartRAID 448dpt* at pci? dev ? function ? # DPT SmartCache/SmartRAID
439iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI 449iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI
440isp* at pci? dev ? function ? # Qlogic ISP [12]0x0 SCSI/FibreChannel 450isp* at pci? dev ? function ? # Qlogic ISP [12]0x0 SCSI/FibreChannel
441mfi* at pci? dev ? function ? # LSI MegaRAID SAS 451mfi* at pci? dev ? function ? # LSI MegaRAID SAS
442mly* at pci? dev ? function ? # Mylex AcceleRAID and eXtremeRAID 452mly* at pci? dev ? function ? # Mylex AcceleRAID and eXtremeRAID
443mpt* at pci? dev ? function ? # LSI Fusion SCSI/FC 453mpt* at pci? dev ? function ? # LSI Fusion SCSI/FC
444njs* at pci? dev ? function ? # Workbit NinjaSCSI-32 454njs* at pci? dev ? function ? # Workbit NinjaSCSI-32
445pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI 455pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI
446siop* at pci? dev ? function ? # Symbios 53c8xx SCSI 456siop* at pci? dev ? function ? # Symbios 53c8xx SCSI
447esiop* at pci? dev ? function ? # Symbios 53c875 SCSI and newer 457esiop* at pci? dev ? function ? # Symbios 53c875 SCSI and newer
448#options SIOP_SYMLED # drive the act. LED in software 458#options SIOP_SYMLED # drive the act. LED in software
449trm* at pci? dev ? function ? # Tekram DC-395U/UW/F, DC-315/U SCSI 459trm* at pci? dev ? function ? # Tekram DC-395U/UW/F, DC-315/U SCSI
450# SCSI bus support 460# SCSI bus support
451scsibus* at scsi? 461scsibus* at scsi?
452 462
453# SCSI devices 463# SCSI devices
454sd* at scsibus? target ? lun ? # SCSI disk drives 464sd* at scsibus? target ? lun ? # SCSI disk drives
455st* at scsibus? target ? lun ? # SCSI tape drives 465st* at scsibus? target ? lun ? # SCSI tape drives
456cd* at scsibus? target ? lun ? # SCSI CD-ROM drives 466cd* at scsibus? target ? lun ? # SCSI CD-ROM drives
457ch* at scsibus? target ? lun ? # SCSI autochangers 467ch* at scsibus? target ? lun ? # SCSI autochangers
458ses* at scsibus? target ? lun ? # SCSI Enclosure Services devices 468ses* at scsibus? target ? lun ? # SCSI Enclosure Services devices
459ss* at scsibus? target ? lun ? # SCSI scanners 469ss* at scsibus? target ? lun ? # SCSI scanners
460uk* at scsibus? target ? lun ? # SCSI unknown 470uk* at scsibus? target ? lun ? # SCSI unknown
461 471
462# RAID controllers and devices 472# RAID controllers and devices
463aac* at pci? dev ? function ? # Adaptec AAC family 473aac* at pci? dev ? function ? # Adaptec AAC family
464amr* at pci? dev ? function ? # AMI/LSI Logic MegaRAID 474amr* at pci? dev ? function ? # AMI/LSI Logic MegaRAID
465arcmsr* at pci? dev ? function ? # Areca SATA RAID controllers 475arcmsr* at pci? dev ? function ? # Areca SATA RAID controllers
466cac* at pci? dev ? function ? # Compaq PCI array controllers 476cac* at pci? dev ? function ? # Compaq PCI array controllers
467ciss* at pci? dev ? function ? # HP Smart Array controllers 477ciss* at pci? dev ? function ? # HP Smart Array controllers
468icp* at pci? dev ? function ? # ICP-Vortex GDT & Intel RAID 478icp* at pci? dev ? function ? # ICP-Vortex GDT & Intel RAID
469mlx* at pci? dev ? function ? # Mylex DAC960 & DEC SWXCR family 479mlx* at pci? dev ? function ? # Mylex DAC960 & DEC SWXCR family
470twe* at pci? dev ? function ? # 3ware Escalade RAID controllers 480twe* at pci? dev ? function ? # 3ware Escalade RAID controllers
471twa* at pci? dev ? function ? # 3ware Escalade 95xx RAID controllers 481twa* at pci? dev ? function ? # 3ware Escalade 95xx RAID controllers
472 482
473ld* at aac? unit ? # logical disk devices 483ld* at aac? unit ? # logical disk devices
474ld* at amr? unit ? 484ld* at amr? unit ?
475ld* at cac? unit ? 485ld* at cac? unit ?
476ld* at icp? unit ? 486ld* at icp? unit ?
477ld* at twe? unit ? 487ld* at twe? unit ?
478ld* at twa? unit ? 488ld* at twa? unit ?
479ld* at mlx? unit ? 489ld* at mlx? unit ?
480 490
481icpsp* at icp? unit ? # SCSI pass-through 491icpsp* at icp? unit ? # SCSI pass-through
482 492
483# wscons 493# wscons
484pckbc0 at isa? # pc keyboard controller 494pckbc0 at isa? # pc keyboard controller
485pckbd* at pckbc? # PC keyboard 495pckbd* at pckbc? # PC keyboard
486pms* at pckbc? # PS/2 mouse for wsmouse 496pms* at pckbc? # PS/2 mouse for wsmouse
487#options PMS_DISABLE_POWERHOOK # Disable PS/2 reset on resume 497#options PMS_DISABLE_POWERHOOK # Disable PS/2 reset on resume
488#vga0 at isa? 498#vga0 at isa?
489vga* at pci? dev ? function ? 499vga* at pci? dev ? function ?
490#pcdisplay0 at isa? # CGA, MDA, EGA, HGA 500#pcdisplay0 at isa? # CGA, MDA, EGA, HGA
491#machfb* at pci? dev ? function ? # ATI Mach64 framebuffer driver 501#machfb* at pci? dev ? function ? # ATI Mach64 framebuffer driver
492wsdisplay* at vga? console ? 502wsdisplay* at vga? console ?
493#wsdisplay* at pcdisplay? console ? 503#wsdisplay* at pcdisplay? console ?
494#wsdisplay* at machfb? console ? 504#wsdisplay* at machfb? console ?
495wskbd* at pckbd? console ? 505wskbd* at pckbd? console ?
496wsmouse* at pms? mux 0 506wsmouse* at pms? mux 0
497 507
498# USB Controller and Devices 508# USB Controller and Devices
499 509
500# PCI USB controllers 510# PCI USB controllers
501ehci* at pci? dev ? function ? # Enhanced Host Controller 511ehci* at pci? dev ? function ? # Enhanced Host Controller
502ohci* at pci? dev ? function ? # Open Host Controller 512ohci* at pci? dev ? function ? # Open Host Controller
503uhci* at pci? dev ? function ? # Universal Host Controller (Intel) 513uhci* at pci? dev ? function ? # Universal Host Controller (Intel)
504 514
505# USB bus support 515# USB bus support
506usb* at ehci? 516usb* at ehci?
507usb* at ohci? 517usb* at ohci?
508usb* at uhci? 518usb* at uhci?
509 519
510# USB Hubs 520# USB Hubs
511uhub* at usb? 521uhub* at usb?
512uhub* at uhub? port ? 522uhub* at uhub? port ?
513 523
514# USB HID device 524# USB HID device
515uhidev* at uhub? port ? configuration ? interface ? 525uhidev* at uhub? port ? configuration ? interface ?
516 526
517# USB Mice 527# USB Mice
518ums* at uhidev? reportid ? 528ums* at uhidev? reportid ?
519wsmouse* at ums? mux 0 529wsmouse* at ums? mux 0
520 530
521# USB eGalax touch-panel 531# USB eGalax touch-panel
522uep* at uhub? port ? 532uep* at uhub? port ?
523wsmouse* at uep? mux 0 533wsmouse* at uep? mux 0
524 534
525# USB Keyboards 535# USB Keyboards
526ukbd* at uhidev? reportid ? 536ukbd* at uhidev? reportid ?
527wskbd* at ukbd? console ? mux 1 537wskbd* at ukbd? console ? mux 1
528 538
529# USB serial adapter 539# USB serial adapter
530ucycom* at uhidev? reportid ? 540ucycom* at uhidev? reportid ?
531 541
532# USB Generic HID devices 542# USB Generic HID devices
533uhid* at uhidev? reportid ? 543uhid* at uhidev? reportid ?
534 544
535# USB Printer 545# USB Printer
536ulpt* at uhub? port ? configuration ? interface ? 546ulpt* at uhub? port ? configuration ? interface ?
537 547
538# USB Modem 548# USB Modem
539umodem* at uhub? port ? configuration ? 549umodem* at uhub? port ? configuration ?
540ucom* at umodem? 550ucom* at umodem?
541 551
542# Huawei E220 3G/HSDPA modem 552# Huawei E220 3G/HSDPA modem
543uhmodem* at uhub? port ? configuration ? interface ? 553uhmodem* at uhub? port ? configuration ? interface ?
544ucom* at uhmodem? portno ? 554ucom* at uhmodem? portno ?
545 555
546# USB Mass Storage 556# USB Mass Storage
547umass* at uhub? port ? configuration ? interface ? 557umass* at uhub? port ? configuration ? interface ?
548wd* at umass? 558wd* at umass?
549 559
550# USB audio 560# USB audio
551uaudio* at uhub? port ? configuration ? 561uaudio* at uhub? port ? configuration ?
552 562
553# USB MIDI 563# USB MIDI
554umidi* at uhub? port ? configuration ? 564umidi* at uhub? port ? configuration ?
555 565
556# USB IrDA 566# USB IrDA
557# USB-IrDA bridge spec 567# USB-IrDA bridge spec
558uirda* at uhub? port ? configuration ? interface ? 568uirda* at uhub? port ? configuration ? interface ?
559irframe* at uirda? 569irframe* at uirda?
560 570
561# SigmaTel STIr4200 USB/IrDA Bridge 571# SigmaTel STIr4200 USB/IrDA Bridge
562ustir* at uhub? port ? 572ustir* at uhub? port ?
563irframe* at ustir? 573irframe* at ustir?
564 574
565# USB Ethernet adapters 575# USB Ethernet adapters
566aue* at uhub? port ? # ADMtek AN986 Pegasus based adapters 576aue* at uhub? port ? # ADMtek AN986 Pegasus based adapters
567axe* at uhub? port ? # ASIX AX88172 based adapters 577axe* at uhub? port ? # ASIX AX88172 based adapters
568cdce* at uhub? port ? # CDC, Ethernet Networking Control Model 578cdce* at uhub? port ? # CDC, Ethernet Networking Control Model
569cue* at uhub? port ? # CATC USB-EL1201A based adapters 579cue* at uhub? port ? # CATC USB-EL1201A based adapters
570kue* at uhub? port ? # Kawasaki LSI KL5KUSB101B based adapters 580kue* at uhub? port ? # Kawasaki LSI KL5KUSB101B based adapters
571udav* at uhub? port ? # Davicom DM9601 based adapters 581udav* at uhub? port ? # Davicom DM9601 based adapters
572url* at uhub? port ? # Realtek RTL8150L based adapters 582url* at uhub? port ? # Realtek RTL8150L based adapters
573 583
574# USB 802.11 adapters 584# USB 802.11 adapters
575atu* at uhub? port ? # Atmel AT76C50XX based adapters 585atu* at uhub? port ? # Atmel AT76C50XX based adapters
576ral* at uhub? port ? # Ralink Technology RT25x0 802.11a/b/g 586ral* at uhub? port ? # Ralink Technology RT25x0 802.11a/b/g
577rum* at uhub? port ? # Ralink Technology RT2501/RT2601 802.11a/b/g 587rum* at uhub? port ? # Ralink Technology RT2501/RT2601 802.11a/b/g
578 588
579# Prolific PL2301/PL2302 host-to-host adapter 589# Prolific PL2301/PL2302 host-to-host adapter
580upl* at uhub? port ? 590upl* at uhub? port ?
581 591
582# Serial adapters 592# Serial adapters
583ubsa* at uhub? port ? # Belkin serial adapter 593ubsa* at uhub? port ? # Belkin serial adapter
584ucom* at ubsa? portno ? 594ucom* at ubsa? portno ?
585 595
586uftdi* at uhub? port ? # FTDI FT8U100AX serial adapter 596uftdi* at uhub? port ? # FTDI FT8U100AX serial adapter
587ucom* at uftdi? portno ? 597ucom* at uftdi? portno ?
588 598
589umct* at uhub? port ? # MCT USB-RS232 serial adapter 599umct* at uhub? port ? # MCT USB-RS232 serial adapter
590ucom* at umct? portno ? 600ucom* at umct? portno ?
591 601
592uplcom* at uhub? port ? # I/O DATA USB-RSAQ2 serial adapter 602uplcom* at uhub? port ? # I/O DATA USB-RSAQ2 serial adapter
593ucom* at uplcom? portno ? 603ucom* at uplcom? portno ?
594 604
595uvscom* at uhub? port ? # SUNTAC Slipper U VS-10U serial adapter 605uvscom* at uhub? port ? # SUNTAC Slipper U VS-10U serial adapter
596ucom* at uvscom? portno ? 606ucom* at uvscom? portno ?
597 607
598# Diamond Multimedia Rio 500 608# Diamond Multimedia Rio 500
599urio* at uhub? port ? 609urio* at uhub? port ?
600 610
601# USB Handspring Visor 611# USB Handspring Visor
602uvisor* at uhub? port ? 612uvisor* at uhub? port ?
603ucom* at uvisor? 613ucom* at uvisor?
604 614
605# Kyocera AIR-EDGE PHONE 615# Kyocera AIR-EDGE PHONE
606ukyopon* at uhub? port ? 616ukyopon* at uhub? port ?
607ucom* at ukyopon? portno ? 617ucom* at ukyopon? portno ?
608 618
609# USB scanners 619# USB scanners
610uscanner* at uhub? port ? 620uscanner* at uhub? port ?
611 621
612# USB scanners that use SCSI emulation, e.g., HP5300 622# USB scanners that use SCSI emulation, e.g., HP5300
613usscanner* at uhub? port ? 623usscanner* at uhub? port ?
614 624
615# Y@P firmware loader 625# Y@P firmware loader
616uyap* at uhub? port ? 626uyap* at uhub? port ?
617 627
618# D-Link DSB-R100 USB radio 628# D-Link DSB-R100 USB radio
619udsbr* at uhub? port ? 629udsbr* at uhub? port ?
620radio* at udsbr? 630radio* at udsbr?
621 631
622# USB Generic driver 632# USB Generic driver
623ugen* at uhub? port ? 633ugen* at uhub? port ?
624 634
625# PCI IEEE1394 controllers 635# PCI IEEE1394 controllers
626fwohci* at pci? dev ? function ? # IEEE1394 Open Host Controller 636fwohci* at pci? dev ? function ? # IEEE1394 Open Host Controller
627 637
628# CardBus IEEE1394 controllers 638# CardBus IEEE1394 controllers
629#fwohci* at cardbus? function ? # IEEE1394 Open Host Controller 639#fwohci* at cardbus? function ? # IEEE1394 Open Host Controller
630 640
631ieee1394if* at fwohci? 641ieee1394if* at fwohci?
632fwip* at ieee1394if? # IP over IEEE1394 642fwip* at ieee1394if? # IP over IEEE1394
633sbp* at ieee1394if? euihi ? euilo ? # SCSI over IEEE1394 643sbp* at ieee1394if? euihi ? euilo ? # SCSI over IEEE1394
634 644
635# PCI audio devices 645# PCI audio devices
636auacer* at pci? dev ? function ? # ALi M5455 integrated AC'97 Audio 646auacer* at pci? dev ? function ? # ALi M5455 integrated AC'97 Audio
637auich* at pci? dev ? function ? # Intel ICH integrated AC'97 Audio 647auich* at pci? dev ? function ? # Intel ICH integrated AC'97 Audio
638auixp* at pci? dev ? function ? # ATI IXP AC'97 Audio 648auixp* at pci? dev ? function ? # ATI IXP AC'97 Audio
639autri* at pci? dev ? function ? # Trident 4DWAVE based AC'97 Audio 649autri* at pci? dev ? function ? # Trident 4DWAVE based AC'97 Audio
640auvia* at pci? dev ? function ? # VIA VT82C686A integrated AC'97 Audio 650auvia* at pci? dev ? function ? # VIA VT82C686A integrated AC'97 Audio
641clcs* at pci? dev ? function ? # Cirrus Logic CS4280 651clcs* at pci? dev ? function ? # Cirrus Logic CS4280
642clct* at pci? dev ? function ? # Cirrus Logic CS4281 652clct* at pci? dev ? function ? # Cirrus Logic CS4281
643cmpci* at pci? dev ? function ? # C-Media CMI8338/8738 653cmpci* at pci? dev ? function ? # C-Media CMI8338/8738
644eap* at pci? dev ? function ? # Ensoniq AudioPCI 654eap* at pci? dev ? function ? # Ensoniq AudioPCI
645emuxki* at pci? dev ? function ? # Creative SBLive! and PCI512 655emuxki* at pci? dev ? function ? # Creative SBLive! and PCI512
646esa* at pci? dev ? function ? # ESS Allegro-1 / Maestro-3 PCI Audio 656esa* at pci? dev ? function ? # ESS Allegro-1 / Maestro-3 PCI Audio
647esm* at pci? dev ? function ? # ESS Maestro-1/2/2e PCI Audio Accelerator 657esm* at pci? dev ? function ? # ESS Maestro-1/2/2e PCI Audio Accelerator
648eso* at pci? dev ? function ? # ESS Solo-1 PCI AudioDrive 658eso* at pci? dev ? function ? # ESS Solo-1 PCI AudioDrive
649fms* at pci? dev ? function ? # Forte Media FM801 659fms* at pci? dev ? function ? # Forte Media FM801
650neo* at pci? dev ? function ? # NeoMagic 256 AC'97 Audio 660neo* at pci? dev ? function ? # NeoMagic 256 AC'97 Audio
651sv* at pci? dev ? function ? # S3 SonicVibes 661sv* at pci? dev ? function ? # S3 SonicVibes
652yds* at pci? dev ? function ? # Yamaha DS-1 PCI Audio 662yds* at pci? dev ? function ? # Yamaha DS-1 PCI Audio
653 663
654# OPL[23] FM synthesizers 664# OPL[23] FM synthesizers
655#opl0 at isa? port 0x388 # use only if not attached to sound card 665#opl0 at isa? port 0x388 # use only if not attached to sound card
656opl* at cmpci? flags 1 666opl* at cmpci? flags 1
657opl* at eso? 667opl* at eso?
658opl* at fms? 668opl* at fms?
659opl* at sv? 669opl* at sv?
660opl* at yds? 670opl* at yds?
661 671
662# Audio support 672# Audio support
663audio* at audiobus? 673audio* at audiobus?
664 674
665# MPU 401 UARTs 675# MPU 401 UARTs
666#mpu* at isa? port 0x330 irq 9 # MPU401 or compatible card 676#mpu* at isa? port 0x330 irq 9 # MPU401 or compatible card
667mpu* at cmpci? 677mpu* at cmpci?
668mpu* at eso? 678mpu* at eso?
669mpu* at fms? 679mpu* at fms?
670mpu* at yds? 680mpu* at yds?
671 681
672# MIDI support 682# MIDI support
673midi* at midibus? 683midi* at midibus?
674 684
675# Bluetooth Controller and Device support 685# Bluetooth Controller and Device support
676 686
677# Bluetooth PCMCIA Controllers 687# Bluetooth PCMCIA Controllers
678#bt3c* at pcmcia? function ? # 3Com 3CRWB6096-A 688#bt3c* at pcmcia? function ? # 3Com 3CRWB6096-A
679#btbc* at pcmcia? function ? # AnyCom BlueCard LSE041/039/139 689#btbc* at pcmcia? function ? # AnyCom BlueCard LSE041/039/139
680 690
681# Bluetooth USB Controllers 691# Bluetooth USB Controllers
682ubt* at uhub? port ? 692ubt* at uhub? port ?
683 693
684# Bluetooth Device Hub 694# Bluetooth Device Hub
685#bthub* at bt3c? 695#bthub* at bt3c?
686#bthub* at btbh? 696#bthub* at btbh?
687bthub* at ubt? 697bthub* at ubt?
688 698
689# Bluetooth HID support 699# Bluetooth HID support
690bthidev* at bthub? 700bthidev* at bthub?
691 701
692# Bluetooth Mouse 702# Bluetooth Mouse
693btms* at bthidev? reportid ? 703btms* at bthidev? reportid ?
694wsmouse* at btms? mux 0 704wsmouse* at btms? mux 0
695 705
696# Bluetooth Keyboard 706# Bluetooth Keyboard
697btkbd* at bthidev? reportid ? 707btkbd* at bthidev? reportid ?
698wskbd* at btkbd? console ? mux 1 708wskbd* at btkbd? console ? mux 1
699 709
700# Bluetooth Audio support 710# Bluetooth Audio support
701btsco* at bthub? 711btsco* at bthub?
702 712
703# Cryptographic Devices 713# Cryptographic Devices
704 714
705# PCI cryptographic devices 715# PCI cryptographic devices
706hifn* at pci? dev ? function ? # Hifn 7755/7811/795x 716hifn* at pci? dev ? function ? # Hifn 7755/7811/795x
707ubsec* at pci? dev ? function ? # Broadcom 5501/5601/580x/582x 717ubsec* at pci? dev ? function ? # Broadcom 5501/5601/580x/582x
708 718
709cinclude "arch/i386/conf/GENERIC.local" 719cinclude "arch/i386/conf/GENERIC.local"
710 720
711# Pseudo-Devices 721# Pseudo-Devices
712 722
713pseudo-device crypto # /dev/crypto device 723pseudo-device crypto # /dev/crypto device
714pseudo-device swcrypto # software crypto implementation 724pseudo-device swcrypto # software crypto implementation
715 725
716# disk/mass storage pseudo-devices 726# disk/mass storage pseudo-devices
717pseudo-device bio # RAID control device driver 727pseudo-device bio # RAID control device driver
718pseudo-device ccd 4 # concatenated/striped disk devices 728pseudo-device ccd 4 # concatenated/striped disk devices
719pseudo-device cgd 4 # cryptographic disk devices 729pseudo-device cgd 4 # cryptographic disk devices
720pseudo-device raid 8 # RAIDframe disk driver 730pseudo-device raid 8 # RAIDframe disk driver
721options RAID_AUTOCONFIG # auto-configuration of RAID components 731options RAID_AUTOCONFIG # auto-configuration of RAID components
722# Options to enable various other RAIDframe RAID types. 732# Options to enable various other RAIDframe RAID types.
723#options RF_INCLUDE_EVENODD=1 733#options RF_INCLUDE_EVENODD=1
724#options RF_INCLUDE_RAID5_RS=1 734#options RF_INCLUDE_RAID5_RS=1
725#options RF_INCLUDE_PARITYLOGGING=1 735#options RF_INCLUDE_PARITYLOGGING=1
726#options RF_INCLUDE_CHAINDECLUSTER=1 736#options RF_INCLUDE_CHAINDECLUSTER=1
727#options RF_INCLUDE_INTERDECLUSTER=1 737#options RF_INCLUDE_INTERDECLUSTER=1
728#options RF_INCLUDE_PARITY_DECLUSTERING=1 738#options RF_INCLUDE_PARITY_DECLUSTERING=1
729#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1 739#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1
730pseudo-device fss 4 # file system snapshot device 740pseudo-device fss 4 # file system snapshot device
731 741
732pseudo-device md 1 # memory disk device (ramdisk) 742pseudo-device md 1 # memory disk device (ramdisk)
733pseudo-device vnd # disk-like interface to files 743pseudo-device vnd # disk-like interface to files
734 744
735# network pseudo-devices 745# network pseudo-devices
736pseudo-device bpfilter # Berkeley packet filter 746pseudo-device bpfilter # Berkeley packet filter
737pseudo-device ipfilter # IP filter (firewall) and NAT 747pseudo-device ipfilter # IP filter (firewall) and NAT
738pseudo-device loop # network loopback 748pseudo-device loop # network loopback
739pseudo-device ppp # Point-to-Point Protocol 749pseudo-device ppp # Point-to-Point Protocol
740pseudo-device pppoe # PPP over Ethernet (RFC 2516) 750pseudo-device pppoe # PPP over Ethernet (RFC 2516)
741pseudo-device sl # Serial Line IP 751pseudo-device sl # Serial Line IP
742pseudo-device strip # Starmode Radio IP (Metricom) 752pseudo-device strip # Starmode Radio IP (Metricom)
743pseudo-device irframetty # IrDA frame line discipline 753pseudo-device irframetty # IrDA frame line discipline
744pseudo-device tap # virtual Ethernet 754pseudo-device tap # virtual Ethernet
745pseudo-device tun # network tunneling over tty 755pseudo-device tun # network tunneling over tty
746pseudo-device gre # generic L3 over IP tunnel 756pseudo-device gre # generic L3 over IP tunnel
747pseudo-device gif # IPv[46] over IPv[46] tunnel (RFC1933) 757pseudo-device gif # IPv[46] over IPv[46] tunnel (RFC1933)
748#pseudo-device faith # IPv[46] tcp relay translation i/f 758#pseudo-device faith # IPv[46] tcp relay translation i/f
749pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation 759pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation
750pseudo-device vlan # IEEE 802.1q encapsulation 760pseudo-device vlan # IEEE 802.1q encapsulation
751pseudo-device bridge # simple inter-network bridging 761pseudo-device bridge # simple inter-network bridging
752#options BRIDGE_IPF # bridge uses IP/IPv6 pfil hooks too 762#options BRIDGE_IPF # bridge uses IP/IPv6 pfil hooks too
753#pseudo-device pf # PF packet filter 763#pseudo-device pf # PF packet filter
754#pseudo-device pflog # PF log if 764#pseudo-device pflog # PF log if
755 765
756# accept filters 766# accept filters
757pseudo-device accf_data # "dataready" accept filter 767pseudo-device accf_data # "dataready" accept filter
758pseudo-device accf_http # "httpready" accept filter 768pseudo-device accf_http # "httpready" accept filter
759 769
760# miscellaneous pseudo-devices 770# miscellaneous pseudo-devices
761pseudo-device pty # pseudo-terminals 771pseudo-device pty # pseudo-terminals
762pseudo-device sequencer 1 # MIDI sequencer 772pseudo-device sequencer 1 # MIDI sequencer
763# rnd works; RND_COM does not on port i386 yet. 773# rnd works; RND_COM does not on port i386 yet.
764pseudo-device rnd # /dev/random and in-kernel generator 774pseudo-device rnd # /dev/random and in-kernel generator
765#options RND_COM # use "com" randomness as well (BROKEN) 775#options RND_COM # use "com" randomness as well (BROKEN)
766pseudo-device clockctl # user control of clock subsystem 776pseudo-device clockctl # user control of clock subsystem
767pseudo-device ksyms # /dev/ksyms 777pseudo-device ksyms # /dev/ksyms
768 778
769# a pseudo device needed for Coda # also needs CODA (above) 779# a pseudo device needed for Coda # also needs CODA (above)
770pseudo-device vcoda 4 # coda minicache <-> venus comm. 780pseudo-device vcoda 4 # coda minicache <-> venus comm.
771 781
772# a pseudo device needed for SMBFS 782# a pseudo device needed for SMBFS
773pseudo-device nsmb # experimental - SMB requester 783pseudo-device nsmb # experimental - SMB requester
774 784
775# wscons pseudo-devices 785# wscons pseudo-devices
776pseudo-device wsmux # mouse & keyboard multiplexor 786pseudo-device wsmux # mouse & keyboard multiplexor
777pseudo-device wsfont 787pseudo-device wsfont
778 788
779# userland interface to drivers, including autoconf and properties retrieval 789# userland interface to drivers, including autoconf and properties retrieval
780pseudo-device drvctl 790pseudo-device drvctl
781 791
782# xen pseudo-devices 792# xen pseudo-devices
783pseudo-device xenevt 793pseudo-device xenevt
784pseudo-device xvif 794pseudo-device xvif
785pseudo-device xbdback 795pseudo-device xbdback
786 796
787ppb* at pci? dev ? function ? # PCI-PCI bridges 797ppb* at pci? dev ? function ? # PCI-PCI bridges
788pci* at ppb? bus ? 798pci* at ppb? bus ?
789 799
790# pci backend devices, used for PCI pass-through. To export a PCI device 800# pci backend devices, used for PCI pass-through. To export a PCI device
791# to a domU, the device has to be attached to the pciback driver in the dom0. 801# to a domU, the device has to be attached to the pciback driver in the dom0.
792# you can force a device to attach to the pciback driver in dom0 passing 802# you can force a device to attach to the pciback driver in dom0 passing
793# pciback.hide=(bus:dev.fun)(bus:dev.func) to the dom0 kernel boot parameters. 803# pciback.hide=(bus:dev.fun)(bus:dev.func) to the dom0 kernel boot parameters.
794# bus and dev are 2-digits hex number, func is a single-digit number: 804# bus and dev are 2-digits hex number, func is a single-digit number:
795# pciback.hide=(00:1a.0)(00:1a.1)(00:1a.7) 805# pciback.hide=(00:1a.0)(00:1a.1)(00:1a.7)
796pciback* at pci? #pci backend device 806pciback* at pci? #pci backend device
797 807
798acpi0 at hypervisor? 808acpi0 at hypervisor?
799options MPBIOS 809options MPBIOS
800options MPDEBUG 810options MPDEBUG
801options MPVERBOSE 811options MPVERBOSE
802options ACPIVERBOSE 812options ACPIVERBOSE
803#options PCI_ADDR_FIXUP # fixup PCI I/O addresses 813#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
804#options PCI_BUS_FIXUP # fixup PCI bus numbering 814#options PCI_BUS_FIXUP # fixup PCI bus numbering
805#options PCI_INTR_FIXUP # fixup PCI interrupt routing 815#options PCI_INTR_FIXUP # fixup PCI interrupt routing
806 816
807ioapic* at mainbus? apid ? 817ioapic* at mainbus? apid ?
808 818
809# ACPI devices 819# ACPI devices
810acpiacad* at acpi? # ACPI AC Adapter 820acpiacad* at acpi? # ACPI AC Adapter
811acpibat* at acpi? # ACPI Battery 821acpibat* at acpi? # ACPI Battery
812acpibut* at acpi? # ACPI Button 822acpibut* at acpi? # ACPI Button
813acpidalb* at acpi? # ACPI Direct Application Launch Button 823acpidalb* at acpi? # ACPI Direct Application Launch Button
814# The ACPI Embedded Controller is generally configured via the special ECDT. 824# The ACPI Embedded Controller is generally configured via the special ECDT.
815# This is required as parts of the DSDT can reference the EC before the normal 825# This is required as parts of the DSDT can reference the EC before the normal
816# attach phase. 826# attach phase.
817acpiec* at acpi? # ACPI Embedded Controller (late binding) 827acpiec* at acpi? # ACPI Embedded Controller (late binding)
818acpiecdt* at acpi? # ACPI Embedded Controller (early binding) 828acpiecdt* at acpi? # ACPI Embedded Controller (early binding)
819acpilid* at acpi? # ACPI Lid Switch 829acpilid* at acpi? # ACPI Lid Switch
820hpqlb* at acpi? # HP Quick Launch Buttons 830hpqlb* at acpi? # HP Quick Launch Buttons
821  831

cvs diff -r1.28 -r1.29 src/sys/arch/x86/include/cpuvar.h (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,143 +1,143 @@ @@ -1,143 +1,143 @@
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:
15 * 1. Redistributions of source code must retain the above copyright 15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer. 16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright 17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the 18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution. 19 * documentation and/or other materials provided with the distribution.
20 * 20 *
21 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 21 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
22 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE. 31 * POSSIBILITY OF SUCH DAMAGE.
32 */ 32 */
33 33
34/* 34/*
35 * Copyright (c) 1999 Stefan Grefen 35 * Copyright (c) 1999 Stefan Grefen
36 * 36 *
37 * Redistribution and use in source and binary forms, with or without 37 * Redistribution and use in source and binary forms, with or without
38 * modification, are permitted provided that the following conditions 38 * modification, are permitted provided that the following conditions
39 * are met: 39 * are met:
40 * 1. Redistributions of source code must retain the above copyright 40 * 1. Redistributions of source code must retain the above copyright
41 * notice, this list of conditions and the following disclaimer. 41 * notice, this list of conditions and the following disclaimer.
42 * 2. Redistributions in binary form must reproduce the above copyright 42 * 2. Redistributions in binary form must reproduce the above copyright
43 * notice, this list of conditions and the following disclaimer in the 43 * notice, this list of conditions and the following disclaimer in the
44 * documentation and/or other materials provided with the distribution. 44 * documentation and/or other materials provided with the distribution.
45 * 3. All advertising materials mentioning features or use of this software 45 * 3. All advertising materials mentioning features or use of this software
46 * must display the following acknowledgement: 46 * must display the following acknowledgement:
47 * This product includes software developed by the NetBSD 47 * This product includes software developed by the NetBSD
48 * Foundation, Inc. and its contributors. 48 * Foundation, Inc. and its contributors.
49 * 4. Neither the name of The NetBSD Foundation nor the names of its 49 * 4. Neither the name of The NetBSD Foundation nor the names of its
50 * contributors may be used to endorse or promote products derived 50 * contributors may be used to endorse or promote products derived
51 * from this software without specific prior written permission.  51 * from this software without specific prior written permission.
52 * 52 *
53 * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY 53 * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
54 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 54 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
55 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 55 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
56 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE 56 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE
57 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 57 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
58 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 58 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
59 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 59 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
60 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 60 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
61 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 61 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
62 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 62 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
63 * SUCH DAMAGE. 63 * SUCH DAMAGE.
64 */ 64 */
65 65
66#ifndef _X86_CPUVAR_H_ 66#ifndef _X86_CPUVAR_H_
67#define _X86_CPUVAR_H_ 67#define _X86_CPUVAR_H_
68 68
69struct cpu_functions { 69struct cpu_functions {
70 int (*start)(struct cpu_info *, paddr_t); 70 int (*start)(struct cpu_info *, paddr_t);
71 int (*stop)(struct cpu_info *); 71 int (*stop)(struct cpu_info *);
72 void (*cleanup)(struct cpu_info *); 72 void (*cleanup)(struct cpu_info *);
73}; 73};
74 74
75extern const struct cpu_functions mp_cpu_funcs; 75extern const struct cpu_functions mp_cpu_funcs;
76 76
77#define CPU_ROLE_SP 0 77#define CPU_ROLE_SP 0
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);
106void x86_errata(void); 106void x86_errata(void);
107 107
108void identifycpu(struct cpu_info *); 108void identifycpu(struct cpu_info *);
109void identifycpu_cpuids(struct cpu_info *); 109void identifycpu_cpuids(struct cpu_info *);
110void cpu_init(struct cpu_info *); 110void cpu_init(struct cpu_info *);
111void cpu_init_tss(struct cpu_info *); 111void cpu_init_tss(struct cpu_info *);
112void cpu_init_first(void); 112void cpu_init_first(void);
113 113
114void x86_cpu_idle_init(void); 114void x86_cpu_idle_init(void);
115void x86_cpu_idle_halt(void); 115void x86_cpu_idle_halt(void);
116void x86_cpu_idle_mwait(void); 116void x86_cpu_idle_mwait(void);
117#ifdef XEN 117#ifdef XEN
118void x86_cpu_idle_xen(void); 118void x86_cpu_idle_xen(void);
119#endif 119#endif
120 120
121#ifdef INTEL_CORETEMP 121#ifdef INTEL_CORETEMP
122void coretemp_register(struct cpu_info *); 122void coretemp_register(struct cpu_info *);
123#endif 123#endif
124 124
125#ifdef INTEL_ONDEMAND_CLOCKMOD 125#ifdef INTEL_ONDEMAND_CLOCKMOD
126void clockmod_init(void); 126void clockmod_init(void);
127#endif 127#endif
128 128
129#ifdef ENHANCED_SPEEDSTEP 129#ifdef ENHANCED_SPEEDSTEP
130void est_init(int); 130void est_init(int);
131int via_get_bus_clock(struct cpu_info *); 131int via_get_bus_clock(struct cpu_info *);
132int p3_get_bus_clock(struct cpu_info *); 132int p3_get_bus_clock(struct cpu_info *);
133int p4_get_bus_clock(struct cpu_info *); 133int p4_get_bus_clock(struct cpu_info *);
134#endif 134#endif
135 135
136void cpu_get_tsc_freq(struct cpu_info *); 136void cpu_get_tsc_freq(struct cpu_info *);
137 137
138extern int cpu_vendor; 138extern int cpu_vendor;
139extern bool x86_mp_online; 139extern bool x86_mp_online;
140 140
141#endif 141#endif
142 142
143#endif /* !_X86_CPUVAR_H_ */ 143#endif /* !_X86_CPUVAR_H_ */

cvs diff -r1.32 -r1.33 src/sys/arch/x86/x86/x86_machdep.c (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,830 +1,828 @@ @@ -1,830 +1,828 @@
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
15 * notice, this list of conditions and the following disclaimer. 15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright 16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the 17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution. 18 * documentation and/or other materials provided with the distribution.
19 * 19 *
20 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
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>
48#include <sys/module.h> 48#include <sys/module.h>
49#include <sys/sysctl.h> 49#include <sys/sysctl.h>
50#include <sys/extent.h> 50#include <sys/extent.h>
51 51
52#include <x86/cpu_msr.h> 52#include <x86/cpu_msr.h>
53#include <x86/cpuvar.h> 53#include <x86/cpuvar.h>
54#include <x86/cputypes.h> 54#include <x86/cputypes.h>
55#include <x86/machdep.h> 55#include <x86/machdep.h>
56#include <x86/pio.h> 56#include <x86/pio.h>
57 57
58#include <dev/isa/isareg.h> 58#include <dev/isa/isareg.h>
59#include <dev/ic/i8042reg.h> 59#include <dev/ic/i8042reg.h>
60 60
61#include <machine/bootinfo.h> 61#include <machine/bootinfo.h>
62#include <machine/vmparam.h> 62#include <machine/vmparam.h>
63 63
64#include <uvm/uvm_extern.h> 64#include <uvm/uvm_extern.h>
65 65
66int check_pa_acc(paddr_t, vm_prot_t); 66int check_pa_acc(paddr_t, vm_prot_t);
67 67
68/* --------------------------------------------------------------------- */ 68/* --------------------------------------------------------------------- */
69 69
70/* 70/*
71 * Main bootinfo structure. This is filled in by the bootstrap process 71 * Main bootinfo structure. This is filled in by the bootstrap process
72 * done in locore.S based on the information passed by the boot loader. 72 * done in locore.S based on the information passed by the boot loader.
73 */ 73 */
74struct bootinfo bootinfo; 74struct bootinfo bootinfo;
75 75
76/* --------------------------------------------------------------------- */ 76/* --------------------------------------------------------------------- */
77 77
78/* 78/*
79 * Given the type of a bootinfo entry, looks for a matching item inside 79 * Given the type of a bootinfo entry, looks for a matching item inside
80 * the bootinfo structure. If found, returns a pointer to it (which must 80 * the bootinfo structure. If found, returns a pointer to it (which must
81 * then be casted to the appropriate bootinfo_* type); otherwise, returns 81 * then be casted to the appropriate bootinfo_* type); otherwise, returns
82 * NULL. 82 * NULL.
83 */ 83 */
84void * 84void *
85lookup_bootinfo(int type) 85lookup_bootinfo(int type)
86{ 86{
87 bool found; 87 bool found;
88 int i; 88 int i;
89 struct btinfo_common *bic; 89 struct btinfo_common *bic;
90 90
91 bic = (struct btinfo_common *)(bootinfo.bi_data); 91 bic = (struct btinfo_common *)(bootinfo.bi_data);
92 found = FALSE; 92 found = FALSE;
93 for (i = 0; i < bootinfo.bi_nentries && !found; i++) { 93 for (i = 0; i < bootinfo.bi_nentries && !found; i++) {
94 if (bic->type == type) 94 if (bic->type == type)
95 found = TRUE; 95 found = TRUE;
96 else 96 else
97 bic = (struct btinfo_common *) 97 bic = (struct btinfo_common *)
98 ((uint8_t *)bic + bic->len); 98 ((uint8_t *)bic + bic->len);
99 } 99 }
100 100
101 return found ? bic : NULL; 101 return found ? bic : NULL;
102} 102}
103 103
104/* 104/*
105 * check_pa_acc: check if given pa is accessible. 105 * check_pa_acc: check if given pa is accessible.
106 */ 106 */
107int 107int
108check_pa_acc(paddr_t pa, vm_prot_t prot) 108check_pa_acc(paddr_t pa, vm_prot_t prot)
109{ 109{
110 extern phys_ram_seg_t mem_clusters[VM_PHYSSEG_MAX]; 110 extern phys_ram_seg_t mem_clusters[VM_PHYSSEG_MAX];
111 extern int mem_cluster_cnt; 111 extern int mem_cluster_cnt;
112 int i; 112 int i;
113 113
114 for (i = 0; i < mem_cluster_cnt; i++) { 114 for (i = 0; i < mem_cluster_cnt; i++) {
115 const phys_ram_seg_t *seg = &mem_clusters[i]; 115 const phys_ram_seg_t *seg = &mem_clusters[i];
116 paddr_t lstart = seg->start; 116 paddr_t lstart = seg->start;
117 117
118 if (lstart <= pa && pa - lstart <= seg->size) { 118 if (lstart <= pa && pa - lstart <= seg->size) {
119 return 0; 119 return 0;
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);
149 if (biml == NULL) { 147 if (biml == NULL) {
150 aprint_debug("No module info at boot\n"); 148 aprint_debug("No module info at boot\n");
151 return; 149 return;
152 } 150 }
153 151
154 bi = (struct bi_modulelist_entry *)((uint8_t *)biml + sizeof(*biml)); 152 bi = (struct bi_modulelist_entry *)((uint8_t *)biml + sizeof(*biml));
155 bimax = bi + biml->num; 153 bimax = bi + biml->num;
156 for (; bi < bimax; bi++) { 154 for (; bi < bimax; bi++) {
157 if (bi->type != BI_MODULE_ELF) { 155 if (bi->type != BI_MODULE_ELF) {
158 aprint_debug("Skipping non-ELF module\n"); 156 aprint_debug("Skipping non-ELF module\n");
159 continue; 157 continue;
160 } 158 }
161 aprint_debug("Prep module path=%s len=%d pa=%x\n", bi->path, 159 aprint_debug("Prep module path=%s len=%d pa=%x\n", bi->path,
162 bi->len, bi->base); 160 bi->len, bi->base);
163 KASSERT(trunc_page(bi->base) == bi->base); 161 KASSERT(trunc_page(bi->base) == bi->base);
164 (void)module_prime((void *)((uintptr_t)bi->base + KERNBASE), 162 (void)module_prime((void *)((uintptr_t)bi->base + KERNBASE),
165 bi->len); 163 bi->len);
166 } 164 }
167} 165}
168#endif /* MODULAR */ 166#endif /* MODULAR */
169 167
170void 168void
171cpu_need_resched(struct cpu_info *ci, int flags) 169cpu_need_resched(struct cpu_info *ci, int flags)
172{ 170{
173 struct cpu_info *cur; 171 struct cpu_info *cur;
174 lwp_t *l; 172 lwp_t *l;
175 173
176 KASSERT(kpreempt_disabled()); 174 KASSERT(kpreempt_disabled());
177 cur = curcpu(); 175 cur = curcpu();
178 l = ci->ci_data.cpu_onproc; 176 l = ci->ci_data.cpu_onproc;
179 ci->ci_want_resched |= flags; 177 ci->ci_want_resched |= flags;
180 178
181 if (__predict_false((l->l_pflag & LP_INTR) != 0)) { 179 if (__predict_false((l->l_pflag & LP_INTR) != 0)) {
182 /* 180 /*
183 * No point doing anything, it will switch soon. 181 * No point doing anything, it will switch soon.
184 * Also here to prevent an assertion failure in 182 * Also here to prevent an assertion failure in
185 * kpreempt() due to preemption being set on a 183 * kpreempt() due to preemption being set on a
186 * soft interrupt LWP. 184 * soft interrupt LWP.
187 */ 185 */
188 return; 186 return;
189 } 187 }
190 188
191 if (l == ci->ci_data.cpu_idlelwp) { 189 if (l == ci->ci_data.cpu_idlelwp) {
192 if (ci == cur) 190 if (ci == cur)
193 return; 191 return;
194#ifndef XEN /* XXX review when Xen gets MP support */ 192#ifndef XEN /* XXX review when Xen gets MP support */
195 if (x86_cpu_idle == x86_cpu_idle_halt) 193 if (x86_cpu_idle == x86_cpu_idle_halt)
196 x86_send_ipi(ci, 0); 194 x86_send_ipi(ci, 0);
197#endif 195#endif
198 return; 196 return;
199 } 197 }
200 198
201 if ((flags & RESCHED_KPREEMPT) != 0) { 199 if ((flags & RESCHED_KPREEMPT) != 0) {
202#ifdef __HAVE_PREEMPTION 200#ifdef __HAVE_PREEMPTION
203 atomic_or_uint(&l->l_dopreempt, DOPREEMPT_ACTIVE); 201 atomic_or_uint(&l->l_dopreempt, DOPREEMPT_ACTIVE);
204 if (ci == cur) { 202 if (ci == cur) {
205 softint_trigger(1 << SIR_PREEMPT); 203 softint_trigger(1 << SIR_PREEMPT);
206 } else { 204 } else {
207 x86_send_ipi(ci, X86_IPI_KPREEMPT); 205 x86_send_ipi(ci, X86_IPI_KPREEMPT);
208 } 206 }
209#endif 207#endif
210 } else { 208 } else {
211 aston(l, X86_AST_PREEMPT); 209 aston(l, X86_AST_PREEMPT);
212 if (ci == cur) { 210 if (ci == cur) {
213 return; 211 return;
214 } 212 }
215 if ((flags & RESCHED_IMMED) != 0) { 213 if ((flags & RESCHED_IMMED) != 0) {
216 x86_send_ipi(ci, 0); 214 x86_send_ipi(ci, 0);
217 } 215 }
218 } 216 }
219} 217}
220 218
221void 219void
222cpu_signotify(struct lwp *l) 220cpu_signotify(struct lwp *l)
223{ 221{
224 222
225 KASSERT(kpreempt_disabled()); 223 KASSERT(kpreempt_disabled());
226 aston(l, X86_AST_GENERIC); 224 aston(l, X86_AST_GENERIC);
227 if (l->l_cpu != curcpu()) 225 if (l->l_cpu != curcpu())
228 x86_send_ipi(l->l_cpu, 0); 226 x86_send_ipi(l->l_cpu, 0);
229} 227}
230 228
231void 229void
232cpu_need_proftick(struct lwp *l) 230cpu_need_proftick(struct lwp *l)
233{ 231{
234 232
235 KASSERT(kpreempt_disabled()); 233 KASSERT(kpreempt_disabled());
236 KASSERT(l->l_cpu == curcpu()); 234 KASSERT(l->l_cpu == curcpu());
237 235
238 l->l_pflag |= LP_OWEUPC; 236 l->l_pflag |= LP_OWEUPC;
239 aston(l, X86_AST_GENERIC); 237 aston(l, X86_AST_GENERIC);
240} 238}
241 239
242bool 240bool
243cpu_intr_p(void) 241cpu_intr_p(void)
244{ 242{
245 int idepth; 243 int idepth;
246 244
247 kpreempt_disable(); 245 kpreempt_disable();
248 idepth = curcpu()->ci_idepth; 246 idepth = curcpu()->ci_idepth;
249 kpreempt_enable(); 247 kpreempt_enable();
250 return (idepth >= 0); 248 return (idepth >= 0);
251} 249}
252 250
253#ifdef __HAVE_PREEMPTION 251#ifdef __HAVE_PREEMPTION
254/* 252/*
255 * Called to check MD conditions that would prevent preemption, and to 253 * Called to check MD conditions that would prevent preemption, and to
256 * arrange for those conditions to be rechecked later. 254 * arrange for those conditions to be rechecked later.
257 */ 255 */
258bool 256bool
259cpu_kpreempt_enter(uintptr_t where, int s) 257cpu_kpreempt_enter(uintptr_t where, int s)
260{ 258{
261 struct cpu_info *ci; 259 struct cpu_info *ci;
262 lwp_t *l; 260 lwp_t *l;
263 261
264 KASSERT(kpreempt_disabled()); 262 KASSERT(kpreempt_disabled());
265 263
266 l = curlwp; 264 l = curlwp;
267 ci = curcpu(); 265 ci = curcpu();
268 266
269 /* 267 /*
270 * If SPL raised, can't go. Note this implies that spin 268 * If SPL raised, can't go. Note this implies that spin
271 * mutexes at IPL_NONE are _not_ valid to use. 269 * mutexes at IPL_NONE are _not_ valid to use.
272 */ 270 */
273 if (s > IPL_PREEMPT) { 271 if (s > IPL_PREEMPT) {
274 softint_trigger(1 << SIR_PREEMPT); 272 softint_trigger(1 << SIR_PREEMPT);
275 aston(l, X86_AST_PREEMPT); /* paranoid */ 273 aston(l, X86_AST_PREEMPT); /* paranoid */
276 return false; 274 return false;
277 } 275 }
278 276
279 /* Must save cr2 or it could be clobbered. */ 277 /* Must save cr2 or it could be clobbered. */
280 ((struct pcb *)l->l_addr)->pcb_cr2 = rcr2(); 278 ((struct pcb *)l->l_addr)->pcb_cr2 = rcr2();
281 279
282 return true; 280 return true;
283} 281}
284 282
285/* 283/*
286 * Called after returning from a kernel preemption, and called with 284 * Called after returning from a kernel preemption, and called with
287 * preemption disabled. 285 * preemption disabled.
288 */ 286 */
289void 287void
290cpu_kpreempt_exit(uintptr_t where) 288cpu_kpreempt_exit(uintptr_t where)
291{ 289{
292 extern char x86_copyfunc_start, x86_copyfunc_end; 290 extern char x86_copyfunc_start, x86_copyfunc_end;
293 291
294 KASSERT(kpreempt_disabled()); 292 KASSERT(kpreempt_disabled());
295 293
296 /* 294 /*
297 * If we interrupted any of the copy functions we must reload 295 * If we interrupted any of the copy functions we must reload
298 * the pmap when resuming, as they cannot tolerate it being 296 * the pmap when resuming, as they cannot tolerate it being
299 * swapped out. 297 * swapped out.
300 */ 298 */
301 if (where >= (uintptr_t)&x86_copyfunc_start && 299 if (where >= (uintptr_t)&x86_copyfunc_start &&
302 where < (uintptr_t)&x86_copyfunc_end) { 300 where < (uintptr_t)&x86_copyfunc_end) {
303 pmap_load(); 301 pmap_load();
304 } 302 }
305 303
306 /* Restore cr2 only after the pmap, as pmap_load can block. */ 304 /* Restore cr2 only after the pmap, as pmap_load can block. */
307 lcr2(((struct pcb *)curlwp->l_addr)->pcb_cr2); 305 lcr2(((struct pcb *)curlwp->l_addr)->pcb_cr2);
308} 306}
309 307
310/* 308/*
311 * Return true if preemption is disabled for MD reasons. Must be called 309 * Return true if preemption is disabled for MD reasons. Must be called
312 * with preemption disabled, and thus is only for diagnostic checks. 310 * with preemption disabled, and thus is only for diagnostic checks.
313 */ 311 */
314bool 312bool
315cpu_kpreempt_disabled(void) 313cpu_kpreempt_disabled(void)
316{ 314{
317 315
318 return curcpu()->ci_ilevel > IPL_NONE; 316 return curcpu()->ci_ilevel > IPL_NONE;
319} 317}
320#endif /* __HAVE_PREEMPTION */ 318#endif /* __HAVE_PREEMPTION */
321 319
322void (*x86_cpu_idle)(void); 320void (*x86_cpu_idle)(void);
323static char x86_cpu_idle_text[16]; 321static char x86_cpu_idle_text[16];
324 322
325SYSCTL_SETUP(sysctl_machdep_cpu_idle, "sysctl machdep cpu_idle") 323SYSCTL_SETUP(sysctl_machdep_cpu_idle, "sysctl machdep cpu_idle")
326{ 324{
327 const struct sysctlnode *mnode, *node; 325 const struct sysctlnode *mnode, *node;
328 326
329 sysctl_createv(NULL, 0, NULL, &mnode, 327 sysctl_createv(NULL, 0, NULL, &mnode,
330 CTLFLAG_PERMANENT, CTLTYPE_NODE, "machdep", NULL, 328 CTLFLAG_PERMANENT, CTLTYPE_NODE, "machdep", NULL,
331 NULL, 0, NULL, 0, CTL_MACHDEP, CTL_EOL); 329 NULL, 0, NULL, 0, CTL_MACHDEP, CTL_EOL);
332 330
333 sysctl_createv(NULL, 0, &mnode, &node, 331 sysctl_createv(NULL, 0, &mnode, &node,
334 CTLFLAG_PERMANENT, CTLTYPE_STRING, "idle-mechanism", 332 CTLFLAG_PERMANENT, CTLTYPE_STRING, "idle-mechanism",
335 SYSCTL_DESCR("Mechanism used for the idle loop."), 333 SYSCTL_DESCR("Mechanism used for the idle loop."),
336 NULL, 0, x86_cpu_idle_text, 0, 334 NULL, 0, x86_cpu_idle_text, 0,
337 CTL_CREATE, CTL_EOL); 335 CTL_CREATE, CTL_EOL);
338} 336}
339 337
340void 338void
341x86_cpu_idle_init(void) 339x86_cpu_idle_init(void)
342{ 340{
343#ifndef XEN 341#ifndef XEN
344 if ((curcpu()->ci_feature2_flags & CPUID2_MONITOR) == 0 || 342 if ((curcpu()->ci_feature2_flags & CPUID2_MONITOR) == 0 ||
345 cpu_vendor == CPUVENDOR_AMD) { 343 cpu_vendor == CPUVENDOR_AMD) {
346 strlcpy(x86_cpu_idle_text, "halt", sizeof(x86_cpu_idle_text)); 344 strlcpy(x86_cpu_idle_text, "halt", sizeof(x86_cpu_idle_text));
347 x86_cpu_idle = x86_cpu_idle_halt; 345 x86_cpu_idle = x86_cpu_idle_halt;
348 } else { 346 } else {
349 strlcpy(x86_cpu_idle_text, "mwait", sizeof(x86_cpu_idle_text)); 347 strlcpy(x86_cpu_idle_text, "mwait", sizeof(x86_cpu_idle_text));
350 x86_cpu_idle = x86_cpu_idle_mwait; 348 x86_cpu_idle = x86_cpu_idle_mwait;
351 } 349 }
352#else 350#else
353 strlcpy(x86_cpu_idle_text, "xen", sizeof(x86_cpu_idle_text)); 351 strlcpy(x86_cpu_idle_text, "xen", sizeof(x86_cpu_idle_text));
354 x86_cpu_idle = x86_cpu_idle_xen; 352 x86_cpu_idle = x86_cpu_idle_xen;
355#endif 353#endif
356} 354}
357 355
358 356
359#ifndef XEN 357#ifndef XEN
360 358
361#define KBTOB(x) ((size_t)(x) * 1024UL) 359#define KBTOB(x) ((size_t)(x) * 1024UL)
362#define MBTOB(x) ((size_t)(x) * 1024UL * 1024UL) 360#define MBTOB(x) ((size_t)(x) * 1024UL * 1024UL)
363 361
364extern paddr_t avail_start, avail_end; 362extern paddr_t avail_start, avail_end;
365 363
366static int 364static int
367add_mem_cluster(phys_ram_seg_t *seg_clusters, int seg_cluster_cnt, 365add_mem_cluster(phys_ram_seg_t *seg_clusters, int seg_cluster_cnt,
368 struct extent *iomem_ex, 366 struct extent *iomem_ex,
369 uint64_t seg_start, uint64_t seg_end, uint32_t type) 367 uint64_t seg_start, uint64_t seg_end, uint32_t type)
370{ 368{
371 uint64_t new_physmem = 0; 369 uint64_t new_physmem = 0;
372 phys_ram_seg_t *cluster; 370 phys_ram_seg_t *cluster;
373 int i; 371 int i;
374 372
375#ifdef i386 373#ifdef i386
376#define TOPLIMIT 0x100000000ULL 374#define TOPLIMIT 0x100000000ULL
377#else 375#else
378#define TOPLIMIT 0x100000000000ULL 376#define TOPLIMIT 0x100000000000ULL
379#endif 377#endif
380 378
381 if (seg_end > TOPLIMIT) { 379 if (seg_end > TOPLIMIT) {
382 aprint_verbose("WARNING: skipping large memory map entry: " 380 aprint_verbose("WARNING: skipping large memory map entry: "
383 "0x%"PRIx64"/0x%"PRIx64"/0x%x\n", 381 "0x%"PRIx64"/0x%"PRIx64"/0x%x\n",
384 seg_start, 382 seg_start,
385 (seg_end - seg_start), 383 (seg_end - seg_start),
386 type); 384 type);
387 return seg_cluster_cnt; 385 return seg_cluster_cnt;
388 } 386 }
389 387
390 /* 388 /*
391 * XXX Chop the last page off the size so that 389 * XXX Chop the last page off the size so that
392 * XXX it can fit in avail_end. 390 * XXX it can fit in avail_end.
393 */ 391 */
394 if (seg_end == TOPLIMIT) 392 if (seg_end == TOPLIMIT)
395 seg_end -= PAGE_SIZE; 393 seg_end -= PAGE_SIZE;
396 394
397 if (seg_end <= seg_start) 395 if (seg_end <= seg_start)
398 return seg_cluster_cnt; 396 return seg_cluster_cnt;
399 397
400 for (i = 0; i < seg_cluster_cnt; i++) { 398 for (i = 0; i < seg_cluster_cnt; i++) {
401 cluster = &seg_clusters[i]; 399 cluster = &seg_clusters[i];
402 if ((cluster->start == round_page(seg_start)) 400 if ((cluster->start == round_page(seg_start))
403 && (cluster->size == trunc_page(seg_end) - cluster->start)) 401 && (cluster->size == trunc_page(seg_end) - cluster->start))
404 { 402 {
405#ifdef DEBUG_MEMLOAD 403#ifdef DEBUG_MEMLOAD
406 printf("WARNING: skipping duplicate segment entry\n"); 404 printf("WARNING: skipping duplicate segment entry\n");
407#endif 405#endif
408 return seg_cluster_cnt; 406 return seg_cluster_cnt;
409 } 407 }
410 } 408 }
411 409
412 /* 410 /*
413 * Allocate the physical addresses used by RAM 411 * Allocate the physical addresses used by RAM
414 * from the iomem extent map. This is done before 412 * from the iomem extent map. This is done before
415 * the addresses are page rounded just to make 413 * the addresses are page rounded just to make
416 * sure we get them all. 414 * sure we get them all.
417 */ 415 */
418 if (seg_start < 0x100000000ULL) { 416 if (seg_start < 0x100000000ULL) {
419 uint64_t io_end; 417 uint64_t io_end;
420 418
421 if (seg_end > 0x100000000ULL) 419 if (seg_end > 0x100000000ULL)
422 io_end = 0x100000000ULL; 420 io_end = 0x100000000ULL;
423 else 421 else
424 io_end = seg_end; 422 io_end = seg_end;
425 423
426 if (iomem_ex != NULL && extent_alloc_region(iomem_ex, seg_start, 424 if (iomem_ex != NULL && extent_alloc_region(iomem_ex, seg_start,
427 io_end - seg_start, EX_NOWAIT)) { 425 io_end - seg_start, EX_NOWAIT)) {
428 /* XXX What should we do? */ 426 /* XXX What should we do? */
429 printf("WARNING: CAN't ALLOCATE MEMORY SEGMENT " 427 printf("WARNING: CAN't ALLOCATE MEMORY SEGMENT "
430 "(0x%"PRIx64"/0x%"PRIx64"/0x%x) FROM " 428 "(0x%"PRIx64"/0x%"PRIx64"/0x%x) FROM "
431 "IOMEM EXTENT MAP!\n", 429 "IOMEM EXTENT MAP!\n",
432 seg_start, seg_end - seg_start, type); 430 seg_start, seg_end - seg_start, type);
433 return seg_cluster_cnt; 431 return seg_cluster_cnt;
434 } 432 }
435 } 433 }
436 434
437 /* 435 /*
438 * If it's not free memory, skip it. 436 * If it's not free memory, skip it.
439 */ 437 */
440 if (type != BIM_Memory) 438 if (type != BIM_Memory)
441 return seg_cluster_cnt; 439 return seg_cluster_cnt;
442 440
443 /* XXX XXX XXX */ 441 /* XXX XXX XXX */
444 if (seg_cluster_cnt >= VM_PHYSSEG_MAX) 442 if (seg_cluster_cnt >= VM_PHYSSEG_MAX)
445 panic("%s: too many memory segments (increase VM_PHYSSEG_MAX)", 443 panic("%s: too many memory segments (increase VM_PHYSSEG_MAX)",
446 __func__); 444 __func__);
447 445
448#ifdef PHYSMEM_MAX_ADDR 446#ifdef PHYSMEM_MAX_ADDR
449 if (seg_start >= MBTOB(PHYSMEM_MAX_ADDR)) 447 if (seg_start >= MBTOB(PHYSMEM_MAX_ADDR))
450 return seg_cluster_cnt; 448 return seg_cluster_cnt;
451 if (seg_end > MBTOB(PHYSMEM_MAX_ADDR)) 449 if (seg_end > MBTOB(PHYSMEM_MAX_ADDR))
452 seg_end = MBTOB(PHYSMEM_MAX_ADDR); 450 seg_end = MBTOB(PHYSMEM_MAX_ADDR);
453#endif  451#endif
454 452
455 seg_start = round_page(seg_start); 453 seg_start = round_page(seg_start);
456 seg_end = trunc_page(seg_end); 454 seg_end = trunc_page(seg_end);
457 455
458 if (seg_start == seg_end) 456 if (seg_start == seg_end)
459 return seg_cluster_cnt; 457 return seg_cluster_cnt;
460 458
461 cluster = &seg_clusters[seg_cluster_cnt]; 459 cluster = &seg_clusters[seg_cluster_cnt];
462 cluster->start = seg_start; 460 cluster->start = seg_start;
463 if (iomem_ex != NULL) 461 if (iomem_ex != NULL)
464 new_physmem = physmem + atop(seg_end - seg_start); 462 new_physmem = physmem + atop(seg_end - seg_start);
465 463
466#ifdef PHYSMEM_MAX_SIZE 464#ifdef PHYSMEM_MAX_SIZE
467 if (iomem_ex != NULL) { 465 if (iomem_ex != NULL) {
468 if (physmem >= atop(MBTOB(PHYSMEM_MAX_SIZE))) 466 if (physmem >= atop(MBTOB(PHYSMEM_MAX_SIZE)))
469 return seg_cluster_cnt; 467 return seg_cluster_cnt;
470 if (new_physmem > atop(MBTOB(PHYSMEM_MAX_SIZE))) { 468 if (new_physmem > atop(MBTOB(PHYSMEM_MAX_SIZE))) {
471 seg_end = seg_start + MBTOB(PHYSMEM_MAX_SIZE) - ptoa(physmem); 469 seg_end = seg_start + MBTOB(PHYSMEM_MAX_SIZE) - ptoa(physmem);
472 new_physmem = atop(MBTOB(PHYSMEM_MAX_SIZE)); 470 new_physmem = atop(MBTOB(PHYSMEM_MAX_SIZE));
473 } 471 }
474 } 472 }
475#endif  473#endif
476 474
477 cluster->size = seg_end - seg_start; 475 cluster->size = seg_end - seg_start;
478 476
479 if (iomem_ex != NULL) { 477 if (iomem_ex != NULL) {
480 if (avail_end < seg_end) 478 if (avail_end < seg_end)
481 avail_end = seg_end; 479 avail_end = seg_end;
482 physmem = new_physmem; 480 physmem = new_physmem;
483 } 481 }
484 seg_cluster_cnt++; 482 seg_cluster_cnt++;
485 483
486 return seg_cluster_cnt; 484 return seg_cluster_cnt;
487} 485}
488 486
489int 487int
490initx86_parse_memmap(struct btinfo_memmap *bim, struct extent *iomem_ex) 488initx86_parse_memmap(struct btinfo_memmap *bim, struct extent *iomem_ex)
491{ 489{
492 uint64_t seg_start, seg_end; 490 uint64_t seg_start, seg_end;
493 uint64_t addr, size; 491 uint64_t addr, size;
494 uint32_t type; 492 uint32_t type;
495 int x; 493 int x;
496 494
497 KASSERT(bim != NULL); 495 KASSERT(bim != NULL);
498 KASSERT(bim->num > 0); 496 KASSERT(bim->num > 0);
499 497
500#ifdef DEBUG_MEMLOAD 498#ifdef DEBUG_MEMLOAD
501 printf("BIOS MEMORY MAP (%d ENTRIES):\n", bim->num); 499 printf("BIOS MEMORY MAP (%d ENTRIES):\n", bim->num);
502#endif 500#endif
503 for (x = 0; x < bim->num; x++) { 501 for (x = 0; x < bim->num; x++) {
504 addr = bim->entry[x].addr; 502 addr = bim->entry[x].addr;
505 size = bim->entry[x].size; 503 size = bim->entry[x].size;
506 type = bim->entry[x].type; 504 type = bim->entry[x].type;
507#ifdef DEBUG_MEMLOAD 505#ifdef DEBUG_MEMLOAD
508 printf(" addr 0x%"PRIx64" size 0x%"PRIx64" type 0x%x\n", 506 printf(" addr 0x%"PRIx64" size 0x%"PRIx64" type 0x%x\n",
509 addr, size, type); 507 addr, size, type);
510#endif 508#endif
511 509
512 /* 510 /*
513 * If the segment is not memory, skip it. 511 * If the segment is not memory, skip it.
514 */ 512 */
515 switch (type) { 513 switch (type) {
516 case BIM_Memory: 514 case BIM_Memory:
517 case BIM_ACPI: 515 case BIM_ACPI:
518 case BIM_NVS: 516 case BIM_NVS:
519 break; 517 break;
520 default: 518 default:
521 continue; 519 continue;
522 } 520 }
523 521
524 /* 522 /*
525 * If the segment is smaller than a page, skip it. 523 * If the segment is smaller than a page, skip it.
526 */ 524 */
527 if (size < NBPG) 525 if (size < NBPG)
528 continue; 526 continue;
529 527
530 seg_start = addr; 528 seg_start = addr;
531 seg_end = addr + size; 529 seg_end = addr + size;
532 530
533 /* 531 /*
534 * Avoid Compatibility Holes. 532 * Avoid Compatibility Holes.
535 * XXX Holes within memory space that allow access 533 * XXX Holes within memory space that allow access
536 * XXX to be directed to the PC-compatible frame buffer 534 * XXX to be directed to the PC-compatible frame buffer
537 * XXX (0xa0000-0xbffff),to adapter ROM space 535 * XXX (0xa0000-0xbffff),to adapter ROM space
538 * XXX (0xc0000-0xdffff), and to system BIOS space 536 * XXX (0xc0000-0xdffff), and to system BIOS space
539 * XXX (0xe0000-0xfffff). 537 * XXX (0xe0000-0xfffff).
540 * XXX Some laptop(for example,Toshiba Satellite2550X) 538 * XXX Some laptop(for example,Toshiba Satellite2550X)
541 * XXX report this area and occurred problems, 539 * XXX report this area and occurred problems,
542 * XXX so we avoid this area. 540 * XXX so we avoid this area.
543 */ 541 */
544 if (seg_start < 0x100000 && seg_end > 0xa0000) { 542 if (seg_start < 0x100000 && seg_end > 0xa0000) {
545 printf("WARNING: memory map entry overlaps " 543 printf("WARNING: memory map entry overlaps "
546 "with ``Compatibility Holes'': " 544 "with ``Compatibility Holes'': "
547 "0x%"PRIx64"/0x%"PRIx64"/0x%x\n", seg_start, 545 "0x%"PRIx64"/0x%"PRIx64"/0x%x\n", seg_start,
548 seg_end - seg_start, type); 546 seg_end - seg_start, type);
549 mem_cluster_cnt = add_mem_cluster( 547 mem_cluster_cnt = add_mem_cluster(
550 mem_clusters, mem_cluster_cnt, iomem_ex, 548 mem_clusters, mem_cluster_cnt, iomem_ex,
551 seg_start, 0xa0000, type); 549 seg_start, 0xa0000, type);
552 mem_cluster_cnt = add_mem_cluster( 550 mem_cluster_cnt = add_mem_cluster(
553 mem_clusters, mem_cluster_cnt, iomem_ex, 551 mem_clusters, mem_cluster_cnt, iomem_ex,
554 0x100000, seg_end, type); 552 0x100000, seg_end, type);
555 } else 553 } else
556 mem_cluster_cnt = add_mem_cluster( 554 mem_cluster_cnt = add_mem_cluster(
557 mem_clusters, mem_cluster_cnt, iomem_ex, 555 mem_clusters, mem_cluster_cnt, iomem_ex,
558 seg_start, seg_end, type); 556 seg_start, seg_end, type);
559 } 557 }
560 558
561 return 0; 559 return 0;
562} 560}
563 561
564int 562int
565initx86_fake_memmap(struct extent *iomem_ex) 563initx86_fake_memmap(struct extent *iomem_ex)
566{ 564{
567 phys_ram_seg_t *cluster; 565 phys_ram_seg_t *cluster;
568 KASSERT(mem_cluster_cnt == 0); 566 KASSERT(mem_cluster_cnt == 0);
569 567
570 /* 568 /*
571 * Allocate the physical addresses used by RAM from the iomem 569 * Allocate the physical addresses used by RAM from the iomem
572 * extent map. This is done before the addresses are 570 * extent map. This is done before the addresses are
573 * page rounded just to make sure we get them all. 571 * page rounded just to make sure we get them all.
574 */ 572 */
575 if (extent_alloc_region(iomem_ex, 0, KBTOB(biosbasemem), 573 if (extent_alloc_region(iomem_ex, 0, KBTOB(biosbasemem),
576 EX_NOWAIT)) 574 EX_NOWAIT))
577 { 575 {
578 /* XXX What should we do? */ 576 /* XXX What should we do? */
579 printf("WARNING: CAN'T ALLOCATE BASE MEMORY FROM " 577 printf("WARNING: CAN'T ALLOCATE BASE MEMORY FROM "
580 "IOMEM EXTENT MAP!\n"); 578 "IOMEM EXTENT MAP!\n");
581 } 579 }
582 580
583 cluster = &mem_clusters[0]; 581 cluster = &mem_clusters[0];
584 cluster->start = 0; 582 cluster->start = 0;
585 cluster->size = trunc_page(KBTOB(biosbasemem)); 583 cluster->size = trunc_page(KBTOB(biosbasemem));
586 physmem += atop(cluster->size); 584 physmem += atop(cluster->size);
587 585
588 if (extent_alloc_region(iomem_ex, IOM_END, KBTOB(biosextmem), 586 if (extent_alloc_region(iomem_ex, IOM_END, KBTOB(biosextmem),
589 EX_NOWAIT)) 587 EX_NOWAIT))
590 { 588 {
591 /* XXX What should we do? */ 589 /* XXX What should we do? */
592 printf("WARNING: CAN'T ALLOCATE EXTENDED MEMORY FROM " 590 printf("WARNING: CAN'T ALLOCATE EXTENDED MEMORY FROM "
593 "IOMEM EXTENT MAP!\n"); 591 "IOMEM EXTENT MAP!\n");
594 } 592 }
595 593
596#if NISADMA > 0  594#if NISADMA > 0
597 /* 595 /*
598 * Some motherboards/BIOSes remap the 384K of RAM that would 596 * Some motherboards/BIOSes remap the 384K of RAM that would
599 * normally be covered by the ISA hole to the end of memory 597 * normally be covered by the ISA hole to the end of memory
600 * so that it can be used. However, on a 16M system, this 598 * so that it can be used. However, on a 16M system, this
601 * would cause bounce buffers to be allocated and used. 599 * would cause bounce buffers to be allocated and used.
602 * This is not desirable behaviour, as more than 384K of 600 * This is not desirable behaviour, as more than 384K of
603 * bounce buffers might be allocated. As a work-around, 601 * bounce buffers might be allocated. As a work-around,
604 * we round memory down to the nearest 1M boundary if 602 * we round memory down to the nearest 1M boundary if
605 * we're using any isadma devices and the remapped memory 603 * we're using any isadma devices and the remapped memory
606 * is what puts us over 16M. 604 * is what puts us over 16M.
607 */ 605 */
608 if (biosextmem > (15*1024) && biosextmem < (16*1024)) { 606 if (biosextmem > (15*1024) && biosextmem < (16*1024)) {
609 char pbuf[9]; 607 char pbuf[9];
610 608
611 format_bytes(pbuf, sizeof(pbuf), 609 format_bytes(pbuf, sizeof(pbuf),
612 biosextmem - (15*1024)); 610 biosextmem - (15*1024));
613 printf("Warning: ignoring %s of remapped memory\n", 611 printf("Warning: ignoring %s of remapped memory\n",
614 pbuf); 612 pbuf);
615 biosextmem = (15*1024); 613 biosextmem = (15*1024);
616 } 614 }
617#endif 615#endif
618 cluster = &mem_clusters[1]; 616 cluster = &mem_clusters[1];
619 cluster->start = IOM_END; 617 cluster->start = IOM_END;
620 cluster->size = trunc_page(KBTOB(biosextmem)); 618 cluster->size = trunc_page(KBTOB(biosextmem));
621 physmem += atop(cluster->size); 619 physmem += atop(cluster->size);
622 620
623 mem_cluster_cnt = 2; 621 mem_cluster_cnt = 2;
624 622
625 avail_end = IOM_END + trunc_page(KBTOB(biosextmem)); 623 avail_end = IOM_END + trunc_page(KBTOB(biosextmem));
626 624
627 return 0; 625 return 0;
628} 626}
629 627
630#ifdef amd64 628#ifdef amd64
631extern vaddr_t kern_end; 629extern vaddr_t kern_end;
632extern vaddr_t module_start, module_end; 630extern vaddr_t module_start, module_end;
633#endif 631#endif
634 632
635int 633int
636initx86_load_memmap(paddr_t first_avail) 634initx86_load_memmap(paddr_t first_avail)
637{ 635{
638 uint64_t seg_start, seg_end; 636 uint64_t seg_start, seg_end;
639 uint64_t seg_start1, seg_end1; 637 uint64_t seg_start1, seg_end1;
640 int first16q, x; 638 int first16q, x;
641 639
642 /* 640 /*
643 * If we have 16M of RAM or less, just put it all on 641 * If we have 16M of RAM or less, just put it all on
644 * the default free list. Otherwise, put the first 642 * the default free list. Otherwise, put the first
645 * 16M of RAM on a lower priority free list (so that 643 * 16M of RAM on a lower priority free list (so that
646 * all of the ISA DMA'able memory won't be eaten up 644 * all of the ISA DMA'able memory won't be eaten up
647 * first-off). 645 * first-off).
648 */ 646 */
649 if (avail_end <= (16 * 1024 * 1024)) 647 if (avail_end <= (16 * 1024 * 1024))
650 first16q = VM_FREELIST_DEFAULT; 648 first16q = VM_FREELIST_DEFAULT;
651 else 649 else
652 first16q = VM_FREELIST_FIRST16; 650 first16q = VM_FREELIST_FIRST16;
653 651
654 /* Make sure the end of the space used by the kernel is rounded. */ 652 /* Make sure the end of the space used by the kernel is rounded. */
655 first_avail = round_page(first_avail); 653 first_avail = round_page(first_avail);
656 654
657#ifdef amd64 655#ifdef amd64
658 kern_end = KERNBASE + first_avail; 656 kern_end = KERNBASE + first_avail;
659 module_start = kern_end; 657 module_start = kern_end;
660 module_end = KERNBASE + NKL2_KIMG_ENTRIES * NBPD_L2; 658 module_end = KERNBASE + NKL2_KIMG_ENTRIES * NBPD_L2;
661#endif 659#endif
662 660
663 /* 661 /*
664 * Now, load the memory clusters (which have already been 662 * Now, load the memory clusters (which have already been
665 * rounded and truncated) into the VM system. 663 * rounded and truncated) into the VM system.
666 * 664 *
667 * NOTE: WE ASSUME THAT MEMORY STARTS AT 0 AND THAT THE KERNEL 665 * NOTE: WE ASSUME THAT MEMORY STARTS AT 0 AND THAT THE KERNEL
668 * IS LOADED AT IOM_END (1M). 666 * IS LOADED AT IOM_END (1M).
669 */ 667 */
670 for (x = 0; x < mem_cluster_cnt; x++) { 668 for (x = 0; x < mem_cluster_cnt; x++) {
671 const phys_ram_seg_t *cluster = &mem_clusters[x]; 669 const phys_ram_seg_t *cluster = &mem_clusters[x];
672 670
673 seg_start = cluster->start; 671 seg_start = cluster->start;
674 seg_end = cluster->start + cluster->size; 672 seg_end = cluster->start + cluster->size;
675 seg_start1 = 0; 673 seg_start1 = 0;
676 seg_end1 = 0; 674 seg_end1 = 0;
677 675
678 /* 676 /*
679 * Skip memory before our available starting point. 677 * Skip memory before our available starting point.
680 */ 678 */
681 if (seg_end <= avail_start) 679 if (seg_end <= avail_start)
682 continue; 680 continue;
683 681
684 if (avail_start >= seg_start && avail_start < seg_end) { 682 if (avail_start >= seg_start && avail_start < seg_end) {
685 if (seg_start != 0) 683 if (seg_start != 0)
686 panic("init_x86_64: memory doesn't start at 0"); 684 panic("init_x86_64: memory doesn't start at 0");
687 seg_start = avail_start; 685 seg_start = avail_start;
688 if (seg_start == seg_end) 686 if (seg_start == seg_end)
689 continue; 687 continue;
690 } 688 }
691 689
692 /* 690 /*
693 * If this segment contains the kernel, split it 691 * If this segment contains the kernel, split it
694 * in two, around the kernel. 692 * in two, around the kernel.
695 */ 693 */
696 if (seg_start <= IOM_END && first_avail <= seg_end) { 694 if (seg_start <= IOM_END && first_avail <= seg_end) {
697 seg_start1 = first_avail; 695 seg_start1 = first_avail;
698 seg_end1 = seg_end; 696 seg_end1 = seg_end;
699 seg_end = IOM_END; 697 seg_end = IOM_END;
700 KASSERT(seg_end < seg_end1); 698 KASSERT(seg_end < seg_end1);
701 } 699 }
702 700
703 /* First hunk */ 701 /* First hunk */
704 if (seg_start != seg_end) { 702 if (seg_start != seg_end) {
705 if (seg_start < (16 * 1024 * 1024) && 703 if (seg_start < (16 * 1024 * 1024) &&
706 first16q != VM_FREELIST_DEFAULT) { 704 first16q != VM_FREELIST_DEFAULT) {
707 uint64_t tmp; 705 uint64_t tmp;
708 706
709 if (seg_end > (16 * 1024 * 1024)) 707 if (seg_end > (16 * 1024 * 1024))
710 tmp = (16 * 1024 * 1024); 708 tmp = (16 * 1024 * 1024);
711 else 709 else
712 tmp = seg_end; 710 tmp = seg_end;
713 711
714 if (tmp != seg_start) { 712 if (tmp != seg_start) {
715#ifdef DEBUG_MEMLOAD 713#ifdef DEBUG_MEMLOAD
716 printf("loading 0x%"PRIx64"-0x%"PRIx64 714 printf("loading 0x%"PRIx64"-0x%"PRIx64
717 " (0x%"PRIx64"-0x%"PRIx64")\n", 715 " (0x%"PRIx64"-0x%"PRIx64")\n",
718 seg_start, tmp, 716 seg_start, tmp,
719 (uint64_t)atop(seg_start), 717 (uint64_t)atop(seg_start),
720 (uint64_t)atop(tmp)); 718 (uint64_t)atop(tmp));
721#endif 719#endif
722 uvm_page_physload(atop(seg_start), 720 uvm_page_physload(atop(seg_start),
723 atop(tmp), atop(seg_start), 721 atop(tmp), atop(seg_start),
724 atop(tmp), first16q); 722 atop(tmp), first16q);
725 } 723 }
726 seg_start = tmp; 724 seg_start = tmp;
727 } 725 }
728 726
729 if (seg_start != seg_end) { 727 if (seg_start != seg_end) {
730#ifdef DEBUG_MEMLOAD 728#ifdef DEBUG_MEMLOAD
731 printf("loading 0x%"PRIx64"-0x%"PRIx64 729 printf("loading 0x%"PRIx64"-0x%"PRIx64
732 " (0x%"PRIx64"-0x%"PRIx64")\n", 730 " (0x%"PRIx64"-0x%"PRIx64")\n",
733 seg_start, seg_end, 731 seg_start, seg_end,
734 (uint64_t)atop(seg_start), 732 (uint64_t)atop(seg_start),
735 (uint64_t)atop(seg_end)); 733 (uint64_t)atop(seg_end));
736#endif 734#endif
737 uvm_page_physload(atop(seg_start), 735 uvm_page_physload(atop(seg_start),
738 atop(seg_end), atop(seg_start), 736 atop(seg_end), atop(seg_start),
739 atop(seg_end), VM_FREELIST_DEFAULT); 737 atop(seg_end), VM_FREELIST_DEFAULT);
740 } 738 }
741 } 739 }
742 740
743 /* Second hunk */ 741 /* Second hunk */
744 if (seg_start1 != seg_end1) { 742 if (seg_start1 != seg_end1) {
745 if (seg_start1 < (16 * 1024 * 1024) && 743 if (seg_start1 < (16 * 1024 * 1024) &&
746 first16q != VM_FREELIST_DEFAULT) { 744 first16q != VM_FREELIST_DEFAULT) {
747 uint64_t tmp; 745 uint64_t tmp;
748 746
749 if (seg_end1 > (16 * 1024 * 1024)) 747 if (seg_end1 > (16 * 1024 * 1024))
750 tmp = (16 * 1024 * 1024); 748 tmp = (16 * 1024 * 1024);
751 else 749 else
752 tmp = seg_end1; 750 tmp = seg_end1;
753 751
754 if (tmp != seg_start1) { 752 if (tmp != seg_start1) {
755#ifdef DEBUG_MEMLOAD 753#ifdef DEBUG_MEMLOAD
756 printf("loading 0x%"PRIx64"-0x%"PRIx64 754 printf("loading 0x%"PRIx64"-0x%"PRIx64
757 " (0x%"PRIx64"-0x%"PRIx64")\n", 755 " (0x%"PRIx64"-0x%"PRIx64")\n",
758 seg_start1, tmp, 756 seg_start1, tmp,
759 (uint64_t)atop(seg_start1), 757 (uint64_t)atop(seg_start1),
760 (uint64_t)atop(tmp)); 758 (uint64_t)atop(tmp));
761#endif 759#endif
762 uvm_page_physload(atop(seg_start1), 760 uvm_page_physload(atop(seg_start1),
763 atop(tmp), atop(seg_start1), 761 atop(tmp), atop(seg_start1),
764 atop(tmp), first16q); 762 atop(tmp), first16q);
765 } 763 }
766 seg_start1 = tmp; 764 seg_start1 = tmp;
767 } 765 }
768 766
769 if (seg_start1 != seg_end1) { 767 if (seg_start1 != seg_end1) {
770#ifdef DEBUG_MEMLOAD 768#ifdef DEBUG_MEMLOAD
771 printf("loading 0x%"PRIx64"-0x%"PRIx64 769 printf("loading 0x%"PRIx64"-0x%"PRIx64
772 " (0x%"PRIx64"-0x%"PRIx64")\n", 770 " (0x%"PRIx64"-0x%"PRIx64")\n",
773 seg_start1, seg_end1, 771 seg_start1, seg_end1,
774 (uint64_t)atop(seg_start1), 772 (uint64_t)atop(seg_start1),
775 (uint64_t)atop(seg_end1)); 773 (uint64_t)atop(seg_end1));
776#endif 774#endif
777 uvm_page_physload(atop(seg_start1), 775 uvm_page_physload(atop(seg_start1),
778 atop(seg_end1), atop(seg_start1), 776 atop(seg_end1), atop(seg_start1),
779 atop(seg_end1), VM_FREELIST_DEFAULT); 777 atop(seg_end1), VM_FREELIST_DEFAULT);
780 } 778 }
781 } 779 }
782 } 780 }
783 781
784 return 0; 782 return 0;
785} 783}
786#endif 784#endif
787 785
788void 786void
789x86_reset(void) 787x86_reset(void)
790{ 788{
791 uint8_t b; 789 uint8_t b;
792 /* 790 /*
793 * The keyboard controller has 4 random output pins, one of which is 791 * The keyboard controller has 4 random output pins, one of which is
794 * connected to the RESET pin on the CPU in many PCs. We tell the 792 * connected to the RESET pin on the CPU in many PCs. We tell the
795 * keyboard controller to pulse this line a couple of times. 793 * keyboard controller to pulse this line a couple of times.
796 */ 794 */
797 outb(IO_KBD + KBCMDP, KBC_PULSE0); 795 outb(IO_KBD + KBCMDP, KBC_PULSE0);
798 delay(100000); 796 delay(100000);
799 outb(IO_KBD + KBCMDP, KBC_PULSE0); 797 outb(IO_KBD + KBCMDP, KBC_PULSE0);
800 delay(100000); 798 delay(100000);
801 799
802 /* 800 /*
803 * Attempt to force a reset via the Reset Control register at 801 * Attempt to force a reset via the Reset Control register at
804 * I/O port 0xcf9. Bit 2 forces a system reset when it 802 * I/O port 0xcf9. Bit 2 forces a system reset when it
805 * transitions from 0 to 1. Bit 1 selects the type of reset 803 * transitions from 0 to 1. Bit 1 selects the type of reset
806 * to attempt: 0 selects a "soft" reset, and 1 selects a 804 * to attempt: 0 selects a "soft" reset, and 1 selects a
807 * "hard" reset. We try a "hard" reset. The first write sets 805 * "hard" reset. We try a "hard" reset. The first write sets
808 * bit 1 to select a "hard" reset and clears bit 2. The 806 * bit 1 to select a "hard" reset and clears bit 2. The
809 * second write forces a 0 -> 1 transition in bit 2 to trigger 807 * second write forces a 0 -> 1 transition in bit 2 to trigger
810 * a reset. 808 * a reset.
811 */ 809 */
812 outb(0xcf9, 0x2); 810 outb(0xcf9, 0x2);
813 outb(0xcf9, 0x6); 811 outb(0xcf9, 0x6);
814 DELAY(500000); /* wait 0.5 sec to see if that did it */ 812 DELAY(500000); /* wait 0.5 sec to see if that did it */
815 813
816 /* 814 /*
817 * Attempt to force a reset via the Fast A20 and Init register 815 * Attempt to force a reset via the Fast A20 and Init register
818 * at I/O port 0x92. Bit 1 serves as an alternate A20 gate. 816 * at I/O port 0x92. Bit 1 serves as an alternate A20 gate.
819 * Bit 0 asserts INIT# when set to 1. We are careful to only 817 * Bit 0 asserts INIT# when set to 1. We are careful to only
820 * preserve bit 1 while setting bit 0. We also must clear bit 818 * preserve bit 1 while setting bit 0. We also must clear bit
821 * 0 before setting it if it isn't already clear. 819 * 0 before setting it if it isn't already clear.
822 */ 820 */
823 b = inb(0x92); 821 b = inb(0x92);
824 if (b != 0xff) { 822 if (b != 0xff) {
825 if ((b & 0x1) != 0) 823 if ((b & 0x1) != 0)
826 outb(0x92, b & 0xfe); 824 outb(0x92, b & 0xfe);
827 outb(0x92, b | 0x1); 825 outb(0x92, b | 0x1);
828 DELAY(500000); /* wait 0.5 sec to see if that did it */ 826 DELAY(500000); /* wait 0.5 sec to see if that did it */
829 } 827 }
830} 828}

cvs diff -r1.20 -r1.21 src/sys/arch/xen/conf/files.compat (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,73 +1,64 @@ @@ -1,73 +1,64 @@
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
15defflag lapic.h XXXLAPIC 15defflag lapic.h XXXLAPIC
16defflag apm.h XXXAPM 16defflag apm.h XXXAPM
17defflag apmbios.h XXXAPMBIOS 17defflag apmbios.h XXXAPMBIOS
18defflag eisa.h XXXEISA 18defflag eisa.h XXXEISA
19defflag isadma.h XXXISADMA 19defflag isadma.h XXXISADMA
20defflag mca.h XXXMCA 20defflag mca.h XXXMCA
21defflag ega.h XXXEGA 21defflag ega.h XXXEGA
22defflag pcdisplay.h XXXPCDISPLAY 22defflag pcdisplay.h XXXPCDISPLAY
23defflag pc.h XXXPC 23defflag pc.h XXXPC
24defflag pnpbios.h XXXPNPBIOS 24defflag pnpbios.h XXXPNPBIOS
25defflag bioscall.h XXXBIOSCALL 25defflag bioscall.h XXXBIOSCALL
26defflag opt_pcibios.h XXXOPT_PCIBIOS 26defflag opt_pcibios.h XXXOPT_PCIBIOS
27defflag opt_pcifixup.h XXXOPT_PCIFIXUP 27defflag opt_pcifixup.h XXXOPT_PCIFIXUP
28 28
29# VM86 emulation 29# VM86 emulation
30defflag opt_vm86.h XXXVM86 30defflag opt_vm86.h XXXVM86
31defflag opt_kvm86.h XXXKVM86 31defflag opt_kvm86.h XXXKVM86
32 32
33# User-settable LDT (used by WINE) 33# User-settable LDT (used by WINE)
34defflag opt_user_ldt.h XXXUSER_LDT 34defflag opt_user_ldt.h XXXUSER_LDT
35 35
36# X server support in console drivers 36# X server support in console drivers
37defflag opt_xserver.h XXXXSERVER XXXXSERVER_DDB 37defflag opt_xserver.h XXXXSERVER XXXXSERVER_DDB
38 38
39# The REAL{BASE,EXT}MEM options 39# The REAL{BASE,EXT}MEM options
40defparam opt_realmem.h XXXREALBASEMEM XXXREALEXTMEM 40defparam opt_realmem.h XXXREALBASEMEM XXXREALEXTMEM
41 41
42# understand boot device passed by pre-1.3 bootblocks 42# understand boot device passed by pre-1.3 bootblocks
43defflag opt_compat_oldboot.h XXXCOMPAT_OLDBOOT 43defflag opt_compat_oldboot.h XXXCOMPAT_OLDBOOT
44 44
45# Large page size 45# Large page size
46defflag opt_largepages.h XXXLARGEPAGES 46defflag 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 (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,392 +1,411 @@ @@ -1,392 +1,411 @@
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.
15defparam CPURESET_DELAY 15defparam 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
42file arch/i386/i386/ipkdb_glue.c ipkdb 54file arch/i386/i386/ipkdb_glue.c ipkdb
43file arch/i386/i386/kgdb_machdep.c kgdb 55file arch/i386/i386/kgdb_machdep.c kgdb
44file arch/i386/i386/kobj_machdep.c modular 56file arch/i386/i386/kobj_machdep.c modular
45file arch/i386/i386/machdep.c 57file arch/i386/i386/machdep.c
46file arch/i386/i386/longrun.c 58file arch/i386/i386/longrun.c
47file arch/i386/i386/mem.c 59file arch/i386/i386/mem.c
48file arch/i386/i386/mtrr_k6.c mtrr 60file arch/i386/i386/mtrr_k6.c mtrr
49file arch/i386/i386/process_machdep.c 61file 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
76file arch/amd64/amd64/process_machdep.c 93file arch/amd64/amd64/process_machdep.c
77file arch/amd64/amd64/procfs_machdep.c procfs 94file arch/amd64/amd64/procfs_machdep.c procfs
78file arch/amd64/amd64/trap.c 95file arch/amd64/amd64/trap.c
79file arch/amd64/amd64/fpu.c 96file arch/amd64/amd64/fpu.c
80file arch/amd64/amd64/lock_stubs.S 97file arch/amd64/amd64/lock_stubs.S
81file arch/amd64/amd64/mptramp.S multiprocessor 98file arch/amd64/amd64/mptramp.S multiprocessor
82endif 99endif
83 100
84file kern/subr_disk_mbr.c disk 101file kern/subr_disk_mbr.c disk
85file arch/xen/x86/hypervisor_machdep.c 102file arch/xen/x86/hypervisor_machdep.c
86# file arch/x86/x86/mtrr_i686.c mtrr 103# file arch/x86/x86/mtrr_i686.c mtrr
87file arch/x86/x86/syscall.c 104file arch/x86/x86/syscall.c
88file arch/xen/x86/x86_xpmap.c 105file arch/xen/x86/x86_xpmap.c
89file arch/xen/x86/xen_intr.c 106file arch/xen/x86/xen_intr.c
90file arch/xen/x86/xenfunc.c 107file arch/xen/x86/xenfunc.c
91 108
92file arch/xen/xen/xen_machdep.c 109file arch/xen/xen/xen_machdep.c
93file arch/xen/xen/xen_debug.c 110file arch/xen/xen/xen_debug.c
94 111
95file arch/xen/xen/clock.c 112file arch/xen/xen/clock.c
96file arch/x86/isa/rtc.c dom0ops 113file arch/x86/isa/rtc.c dom0ops
97file arch/xen/xen/evtchn.c 114file arch/xen/xen/evtchn.c
98 115
99file arch/xen/xen/xengnt.c 116file arch/xen/xen/xengnt.c
100 117
101file dev/cons.c 118file dev/cons.c
102 119
103 120
104# 121#
105# Machine-independent SCSI drivers 122# Machine-independent SCSI drivers
106# 123#
107 124
108include "dev/scsipi/files.scsipi" 125include "dev/scsipi/files.scsipi"
109 126
110# 127#
111# Machine-independent ATA drivers 128# Machine-independent ATA drivers
112# 129#
113 130
114include "dev/ata/files.ata" 131include "dev/ata/files.ata"
115 132
116# Memory Disk for install floppy 133# Memory Disk for install floppy
117file dev/md_root.c memory_disk_hooks 134file dev/md_root.c memory_disk_hooks
118 135
119file arch/x86/x86/bus_dma.c pci 136file arch/x86/x86/bus_dma.c pci
120file arch/x86/x86/core_machdep.c coredump 137file arch/x86/x86/core_machdep.c coredump
121file arch/xen/x86/xen_bus_dma.c pci 138file arch/xen/x86/xen_bus_dma.c pci
122file arch/x86/x86/bus_space.c pci 139file arch/x86/x86/bus_space.c pci
123file arch/xen/x86/consinit.c 140file arch/xen/x86/consinit.c
124file arch/x86/x86/identcpu.c 141file arch/x86/x86/identcpu.c
125file arch/xen/x86/intr.c 142file arch/xen/x86/intr.c
126file arch/x86/x86/ipi.c 143file arch/x86/x86/ipi.c
127file arch/x86/x86/pmap.c 144file arch/x86/x86/pmap.c
128file arch/x86/x86/sys_machdep.c 145file arch/x86/x86/sys_machdep.c
129file arch/x86/x86/tsc.c 146file arch/x86/x86/tsc.c
130file arch/x86/x86/vm_machdep.c 147file arch/x86/x86/vm_machdep.c
131file arch/x86/x86/x86_machdep.c 148file arch/x86/x86/x86_machdep.c
132file arch/x86/x86/cpu_topology.c 149file arch/x86/x86/cpu_topology.c
133 150
134include "arch/xen/conf/files.compat" 151include "arch/xen/conf/files.compat"
135 152
136# BIOS32 routines 153# BIOS32 routines
137define bios32 154define bios32
138ifdef i386 155ifdef i386
139file arch/i386/i386/bios32.c bios32 needs-flag 156file arch/i386/i386/bios32.c bios32 needs-flag
140elifdef amd64 157elifdef amd64
141file arch/amd64/amd64/bios32.c bios32 needs-flag 158file arch/amd64/amd64/bios32.c bios32 needs-flag
142endif 159endif
143 160
144# xen specific mainbus attributes 161# xen specific mainbus attributes
145define cpubus { [apid = -1] } 162define cpubus { [apid = -1] }
146define ioapicbus { [apid = -1] } 163define ioapicbus { [apid = -1] }
147define apmbus {} 164define apmbus {}
148define pnpbiosbus {} 165define pnpbiosbus {}
149define hypervisorbus {} 166define hypervisorbus {}
150define xendevbus {} 167define xendevbus {}
151define ipmibus {} 168define ipmibus {}
152 169
153# 170#
154# System bus types 171# System bus types
155# 172#
156 173
157device mainbus: cpubus, ioapicbus, hypervisorbus, bios32, ipmibus 174device mainbus: cpubus, ioapicbus, hypervisorbus, bios32, ipmibus
158attach mainbus at root 175attach mainbus at root
159file arch/xen/x86/mainbus.c mainbus 176file arch/xen/x86/mainbus.c mainbus
160 177
161# Xen hypervisor 178# Xen hypervisor
162device hypervisor { [apid = -1]}: isabus, pcibus, sysmon_power, xendevbus, acpibus 179device hypervisor { [apid = -1]}: isabus, pcibus, sysmon_power, xendevbus, acpibus
163attach hypervisor at hypervisorbus 180attach hypervisor at hypervisorbus
164file arch/xen/xen/hypervisor.c hypervisor needs-flag 181file arch/xen/xen/hypervisor.c hypervisor needs-flag
165file arch/xen/xen/shutdown_xenbus.c hypervisor 182file arch/xen/xen/shutdown_xenbus.c hypervisor
166 183
167# Xenbus 184# Xenbus
168device xenbus {[id = -1]} 185device xenbus {[id = -1]}
169attach xenbus at xendevbus 186attach xenbus at xendevbus
170file arch/xen/xenbus/xenbus_client.c xenbus needs-flag 187file arch/xen/xenbus/xenbus_client.c xenbus needs-flag
171file arch/xen/xenbus/xenbus_comms.c xenbus needs-flag 188file arch/xen/xenbus/xenbus_comms.c xenbus needs-flag
172file arch/xen/xenbus/xenbus_dev.c xenbus & dom0ops needs-flag 189file arch/xen/xenbus/xenbus_dev.c xenbus & dom0ops needs-flag
173file arch/xen/xenbus/xenbus_probe.c xenbus needs-flag 190file arch/xen/xenbus/xenbus_probe.c xenbus needs-flag
174file arch/xen/xenbus/xenbus_xs.c xenbus needs-flag 191file arch/xen/xenbus/xenbus_xs.c xenbus needs-flag
175 192
176ifdef i386 193ifdef i386
177# Numeric Processing Extension; Math Co-processor 194# Numeric Processing Extension; Math Co-processor
178device npx 195device npx
179file arch/i386/isa/npx.c npx needs-flag 196file arch/i386/isa/npx.c npx needs-flag
180 197
181attach npx at xendevbus with npx_hv 198attach npx at xendevbus with npx_hv
182file arch/xen/i386/npx_hv.c npx_hv 199file arch/xen/i386/npx_hv.c npx_hv
183endif 200endif
184 201
185# Xen console support 202# Xen console support
186device xencons: tty 203device xencons: tty
187attach xencons at xendevbus 204attach xencons at xendevbus
188file arch/xen/xen/xencons.c xencons needs-flag 205file arch/xen/xen/xencons.c xencons needs-flag
189 206
190# Xen event peudo-device 207# Xen event peudo-device
191defpseudo xenevt 208defpseudo xenevt
192defpseudo xvif 209defpseudo xvif
193defpseudo xbdback 210defpseudo xbdback
194 211
195# Xen Network driver 212# Xen Network driver
196device xennet: arp, ether, ifnet 213device xennet: arp, ether, ifnet
197attach xennet at xenbus 214attach xennet at xenbus
198file arch/xen/xen/if_xennet_xenbus.c xennet needs-flag 215file arch/xen/xen/if_xennet_xenbus.c xennet needs-flag
199 216
200# Xen Block device driver and wd/sd/cd identities 217# Xen Block device driver and wd/sd/cd identities
201device xbd: disk 218device xbd: disk
202attach xbd at xenbus 219attach xbd at xenbus
203file arch/xen/xen/xbd_xenbus.c xbd 220file arch/xen/xen/xbd_xenbus.c xbd
204 221
205# PCI frontend 222# PCI frontend
206device xpci: pcibus 223device xpci: pcibus
207attach xpci at xenbus with xpci_xenbus 224attach xpci at xenbus with xpci_xenbus
208file arch/xen/xen/xpci_xenbus.c xpci_xenbus 225file arch/xen/xen/xpci_xenbus.c xpci_xenbus
209 226
210# Non-Xen specific devices and options 227# Non-Xen specific devices and options
211 228
212include "dev/pckbport/files.pckbport" 229include "dev/pckbport/files.pckbport"
213 230
214# 231#
215# Machine-independent PCI devices 232# Machine-independent PCI devices
216# 233#
217include "dev/i2o/files.i2o" 234include "dev/i2o/files.i2o"
218include "dev/pci/files.pci" 235include "dev/pci/files.pci"
219include "dev/pci/files.agp" 236include "dev/pci/files.agp"
220file arch/xen/xen/pciide_machdep.c pciide_common 237file arch/xen/xen/pciide_machdep.c pciide_common
221 238
222device pciback {unit = -1} 239device pciback {unit = -1}
223attach pciback at pci 240attach pciback at pci
224file arch/xen/xen/pciback.c pciback 241file arch/xen/xen/pciback.c pciback
225 242
226 243
227# x86 specific PCI hardware 244# x86 specific PCI hardware
228include "arch/x86/pci/files.pci" 245include "arch/x86/pci/files.pci"
229 246
230# 247#
231# Machine-independent ISA devices 248# Machine-independent ISA devices
232# 249#
233include "dev/isa/files.isa" 250include "dev/isa/files.isa"
234 251
235include "dev/usb/files.usb" 252include "dev/usb/files.usb"
236 253
237include "dev/ieee1394/files.ieee1394" 254include "dev/ieee1394/files.ieee1394"
238 255
239device fdc {drive = -1} #XXX 256device fdc {drive = -1} #XXX
240 257
241include "dev/apm/files.apm" 258include "dev/apm/files.apm"
242 259
243include "dev/acpi/files.acpi" 260include "dev/acpi/files.acpi"
244file arch/xen/xen/xen_acpi_machdep.c acpi 261file arch/xen/xen/xen_acpi_machdep.c acpi
245file arch/x86/x86/mpacpi.c acpi 262file arch/x86/x86/mpacpi.c acpi
246file arch/x86/x86/acpi_machdep.c acpi 263file arch/x86/x86/acpi_machdep.c acpi
247file arch/x86/x86/i8259.c 264file arch/x86/x86/i8259.c
248 265
249# MP configuration using Intel SMP specification 1.4 266# MP configuration using Intel SMP specification 1.4
250file arch/x86/x86/mpbios.c mpbios 267file arch/x86/x86/mpbios.c mpbios
251 268
252# MP configuration using either ACPI or Intel SMP specification 1.4 269# MP configuration using either ACPI or Intel SMP specification 1.4
253file arch/x86/x86/mp.c acpi | mpbios 270file arch/x86/x86/mp.c acpi | mpbios
254 271
255file arch/x86/pci/pci_bus_fixup.c pci_bus_fixup 272file arch/x86/pci/pci_bus_fixup.c pci_bus_fixup
256file arch/x86/pci/pci_addr_fixup.c pci_addr_fixup 273file arch/x86/pci/pci_addr_fixup.c pci_addr_fixup
257 274
258file arch/x86/x86/apic.c ioapic 275file arch/x86/x86/apic.c ioapic
259 276
260device ioapic 277device ioapic
261attach ioapic at ioapicbus 278attach ioapic at ioapicbus
262file arch/x86/x86/ioapic.c ioapic needs-flag 279file arch/x86/x86/ioapic.c ioapic needs-flag
263 280
264#IPMI device 281#IPMI device
265device ipmi : sysmon_envsys, sysmon_wdog 282device 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)
292file arch/i386/i386/compat_13_machdep.c compat_13 311file arch/i386/i386/compat_13_machdep.c compat_13
293file arch/i386/i386/compat_16_machdep.c compat_16 | compat_ibcs2 312file arch/i386/i386/compat_16_machdep.c compat_16 | compat_ibcs2
294 313
295# SVR4 binary compatibility (COMPAT_SVR4) 314# SVR4 binary compatibility (COMPAT_SVR4)
296include "compat/svr4/files.svr4" 315include "compat/svr4/files.svr4"
297file arch/i386/i386/svr4_machdep.c compat_svr4 316file arch/i386/i386/svr4_machdep.c compat_svr4
298file arch/i386/i386/svr4_sigcode.S compat_svr4 317file arch/i386/i386/svr4_sigcode.S compat_svr4
299file arch/i386/i386/svr4_syscall.c compat_svr4 318file arch/i386/i386/svr4_syscall.c compat_svr4
300 319
301# MACH binary compatibility (COMPAT_MACH) 320# MACH binary compatibility (COMPAT_MACH)
302include "compat/mach/files.mach" 321include "compat/mach/files.mach"
303file arch/i386/i386/mach_machdep.c compat_mach | compat_darwin 322file arch/i386/i386/mach_machdep.c compat_mach | compat_darwin
304file arch/i386/i386/mach_sigcode.S compat_mach | compat_darwin 323file arch/i386/i386/mach_sigcode.S compat_mach | compat_darwin
305file arch/i386/i386/mach_syscall.c compat_mach | compat_darwin 324file arch/i386/i386/mach_syscall.c compat_mach | compat_darwin
306file arch/i386/i386/macho_machdep.c exec_macho 325file arch/i386/i386/macho_machdep.c exec_macho
307 326
308# DARWIN binary compatibility (COMPAT_DARWIN) 327# DARWIN binary compatibility (COMPAT_DARWIN)
309include "compat/darwin/files.darwin" 328include "compat/darwin/files.darwin"
310file arch/i386/i386/darwin_machdep.c compat_darwin 329file arch/i386/i386/darwin_machdep.c compat_darwin
311 330
312# iBCS-2 binary compatibility (COMPAT_IBCS2) 331# iBCS-2 binary compatibility (COMPAT_IBCS2)
313include "compat/ibcs2/files.ibcs2" 332include "compat/ibcs2/files.ibcs2"
314file arch/i386/i386/ibcs2_machdep.c compat_ibcs2 333file arch/i386/i386/ibcs2_machdep.c compat_ibcs2
315file arch/i386/i386/ibcs2_sigcode.S compat_ibcs2 334file arch/i386/i386/ibcs2_sigcode.S compat_ibcs2
316file arch/i386/i386/ibcs2_syscall.c compat_ibcs2 335file arch/i386/i386/ibcs2_syscall.c compat_ibcs2
317 336
318# Linux binary compatibility (COMPAT_LINUX) 337# Linux binary compatibility (COMPAT_LINUX)
319include "compat/linux/files.linux" 338include "compat/linux/files.linux"
320include "compat/linux/arch/i386/files.linux_i386" 339include "compat/linux/arch/i386/files.linux_i386"
321file arch/i386/i386/linux_sigcode.S compat_linux 340file arch/i386/i386/linux_sigcode.S compat_linux
322file arch/i386/i386/linux_syscall.c compat_linux 341file arch/i386/i386/linux_syscall.c compat_linux
323file arch/x86/x86/linux_trap.c compat_linux 342file arch/x86/x86/linux_trap.c compat_linux
324 343
325# FreeBSD binary compatibility (COMPAT_FREEBSD) 344# FreeBSD binary compatibility (COMPAT_FREEBSD)
326include "compat/freebsd/files.freebsd" 345include "compat/freebsd/files.freebsd"
327file arch/i386/i386/freebsd_machdep.c compat_freebsd 346file arch/i386/i386/freebsd_machdep.c compat_freebsd
328file arch/i386/i386/freebsd_sigcode.S compat_freebsd 347file arch/i386/i386/freebsd_sigcode.S compat_freebsd
329file arch/i386/i386/freebsd_syscall.c compat_freebsd 348file arch/i386/i386/freebsd_syscall.c compat_freebsd
330 349
331# Win32 binary compatibility (COMPAT_PECOFF) 350# Win32 binary compatibility (COMPAT_PECOFF)
332include "compat/pecoff/files.pecoff" 351include "compat/pecoff/files.pecoff"
333 352
334elifdef amd64 353elifdef amd64
335# NetBSD/i386 32-bit binary compatibility (COMPAT_NETBSD32) 354# NetBSD/i386 32-bit binary compatibility (COMPAT_NETBSD32)
336include "compat/netbsd32/files.netbsd32" 355include "compat/netbsd32/files.netbsd32"
337file arch/amd64/amd64/netbsd32_machdep.c compat_netbsd32 356file arch/amd64/amd64/netbsd32_machdep.c compat_netbsd32
338file arch/amd64/amd64/netbsd32_sigcode.S compat_netbsd32 & compat_16 357file arch/amd64/amd64/netbsd32_sigcode.S compat_netbsd32 & compat_16
339file arch/amd64/amd64/netbsd32_syscall.c compat_netbsd32 358file arch/amd64/amd64/netbsd32_syscall.c compat_netbsd32
340 359
341# Linux compatibility (COMPAT_LINUX) 360# Linux compatibility (COMPAT_LINUX)
342include "compat/linux/files.linux" 361include "compat/linux/files.linux"
343include "compat/linux/arch/amd64/files.linux_amd64" 362include "compat/linux/arch/amd64/files.linux_amd64"
344file arch/amd64/amd64/linux_sigcode.S compat_linux 363file arch/amd64/amd64/linux_sigcode.S compat_linux
345file arch/amd64/amd64/linux_syscall.c compat_linux 364file arch/amd64/amd64/linux_syscall.c compat_linux
346file arch/x86/x86/linux_trap.c compat_linux 365file arch/x86/x86/linux_trap.c compat_linux
347# Linux 32 bit compatibility (COMPAT_LINUX32) 366# Linux 32 bit compatibility (COMPAT_LINUX32)
348include "compat/linux32/files.linux32" 367include "compat/linux32/files.linux32"
349include "compat/linux32/arch/amd64/files.linux32_amd64" 368include "compat/linux32/arch/amd64/files.linux32_amd64"
350file arch/amd64/amd64/linux32_sigcode.S compat_linux32 369file arch/amd64/amd64/linux32_sigcode.S compat_linux32
351file arch/amd64/amd64/linux32_syscall.c compat_linux32 370file arch/amd64/amd64/linux32_syscall.c compat_linux32
352endif 371endif
353 372
354# OSS audio driver compatibility 373# OSS audio driver compatibility
355include "compat/ossaudio/files.ossaudio" 374include "compat/ossaudio/files.ossaudio"
356 375
357# Bluetooth 376# Bluetooth
358include "dev/bluetooth/files.bluetooth" 377include "dev/bluetooth/files.bluetooth"
359 378
360# 379#
361# CARDBUS 380# CARDBUS
362# 381#
363include "dev/cardbus/files.cardbus" 382include "dev/cardbus/files.cardbus"
364ifdef i386 383ifdef i386
365file arch/i386/i386/rbus_machdep.c cardbus 384file arch/i386/i386/rbus_machdep.c cardbus
366elifdef amd64 385elifdef amd64
367file arch/amd64/amd64/rbus_machdep.c cardbus 386file arch/amd64/amd64/rbus_machdep.c cardbus
368endif 387endif
369 388
370# this wants to be probed as late as possible. 389# this wants to be probed as late as possible.
371# 390#
372# Machine-independent PCMCIA drivers 391# Machine-independent PCMCIA drivers
373# 392#
374include "dev/pcmcia/files.pcmcia" 393include "dev/pcmcia/files.pcmcia"
375 394
376# Domain-0 operations 395# Domain-0 operations
377defflag opt_xen.h DOM0OPS XEN_COMPAT_030001 396defflag opt_xen.h DOM0OPS XEN_COMPAT_030001
378file arch/xen/xen/privcmd.c dom0ops 397file arch/xen/xen/privcmd.c dom0ops
379file arch/xen/x86/xen_shm_machdep.c dom0ops 398file arch/xen/x86/xen_shm_machdep.c dom0ops
380file arch/x86/pci/pci_machdep.c hypervisor & pci & dom0ops 399file arch/x86/pci/pci_machdep.c hypervisor & pci & dom0ops
381file arch/xen/xen/pci_intr_machdep.c hypervisor & pci 400file arch/xen/xen/pci_intr_machdep.c hypervisor & pci
382file arch/xen/xen/isa_machdep.c hypervisor & dom0ops 401file arch/xen/xen/isa_machdep.c hypervisor & dom0ops
383file arch/xen/xen/xenevt.c xenevt & dom0ops 402file arch/xen/xen/xenevt.c xenevt & dom0ops
384file arch/xen/xen/xennetback_xenbus.c xvif 403file arch/xen/xen/xennetback_xenbus.c xvif
385file arch/xen/xen/xennet_checksum.c xvif | xennet 404file arch/xen/xen/xennet_checksum.c xvif | xennet
386file arch/xen/xen/xbdback_xenbus.c xbdback 405file arch/xen/xen/xbdback_xenbus.c xbdback
387 406
388ifdef i386 407ifdef i386
389include "arch/i386/conf/majors.i386" 408include "arch/i386/conf/majors.i386"
390elifdef amd64 409elifdef amd64
391include "arch/amd64/conf/majors.amd64" 410include "arch/amd64/conf/majors.amd64"
392endif 411endif