Sun Jan 24 16:33:48 2021 UTC ()
Attach dwiic(4) to AMD FCH I2C controllers. These busses are separate
from the SMBus that we attach to piixpm(4) today, and support direct
config via ACPI.


(jmcneill)
diff -r1.582 -r1.583 src/sys/arch/amd64/conf/GENERIC
diff -r1.4 -r1.5 src/sys/dev/acpi/dwiic_acpi.c

cvs diff -r1.582 -r1.583 src/sys/arch/amd64/conf/GENERIC (switch to unified diff)

--- src/sys/arch/amd64/conf/GENERIC 2021/01/20 13:22:08 1.582
+++ src/sys/arch/amd64/conf/GENERIC 2021/01/24 16:33:48 1.583
@@ -1,1213 +1,1214 @@ @@ -1,1213 +1,1214 @@
1# $NetBSD: GENERIC,v 1.582 2021/01/20 13:22:08 nia Exp $ 1# $NetBSD: GENERIC,v 1.583 2021/01/24 16:33:48 jmcneill Exp $
2# 2#
3# GENERIC machine description file 3# GENERIC machine description file
4# 4#
5# This machine description file is used to generate the default NetBSD 5# This machine description file is used to generate the default NetBSD
6# kernel. The generic kernel does not include all options, subsystems 6# kernel. The generic kernel does not include all options, subsystems
7# and device drivers, but should be useful for most applications. 7# and device drivers, but should be useful for most applications.
8# 8#
9# The machine description file can be customised for your specific 9# The machine description file can be customised for your specific
10# machine to reduce the kernel size and improve its performance. 10# machine to reduce the kernel size and improve its performance.
11# 11#
12# For further information on compiling NetBSD kernels, see the config(8) 12# For further information on compiling NetBSD kernels, see the config(8)
13# man page. 13# man page.
14# 14#
15# For further information on hardware support for this architecture, see 15# For further information on hardware support for this architecture, see
16# the intro(4) man page. For further information about kernel options 16# the intro(4) man page. For further information about kernel options
17# for this architecture, see the options(4) man page. For an explanation 17# for this architecture, see the options(4) man page. For an explanation
18# of each device driver in this file see the section 4 man page for the 18# of each device driver in this file see the section 4 man page for the
19# device. 19# device.
20 20
21include "arch/amd64/conf/std.amd64" 21include "arch/amd64/conf/std.amd64"
22 22
23options INCLUDE_CONFIG_FILE # embed config file in kernel binary 23options INCLUDE_CONFIG_FILE # embed config file in kernel binary
24 24
25#ident "GENERIC-$Revision: 1.582 $" 25#ident "GENERIC-$Revision: 1.583 $"
26 26
27maxusers 64 # estimated number of users 27maxusers 64 # estimated number of users
28 28
29# delay between "rebooting ..." message and hardware reset, in milliseconds 29# delay between "rebooting ..." message and hardware reset, in milliseconds
30#options CPURESET_DELAY=2000 30#options CPURESET_DELAY=2000
31 31
32# This option allows you to force a serial console at the specified 32# This option allows you to force a serial console at the specified
33# I/O address. see console(4) for details. 33# I/O address. see console(4) for details.
34#options CONSDEVNAME="\"com\"",CONADDR=0x2f8,CONSPEED=57600 34#options CONSDEVNAME="\"com\"",CONADDR=0x2f8,CONSPEED=57600
35# you don't want the option below ON iff you are using the 35# you don't want the option below ON iff you are using the
36# serial console option of the new boot strap code. 36# serial console option of the new boot strap code.
37#options CONS_OVERRIDE # Always use above! independent of boot info 37#options CONS_OVERRIDE # Always use above! independent of boot info
38 38
39# The following options override the memory sizes passed in from the boot 39# The following options override the memory sizes passed in from the boot
40# block. Use them *only* if the boot block is unable to determine the correct 40# block. Use them *only* if the boot block is unable to determine the correct
41# values. Note that the BIOS may *correctly* report less than 640k of base 41# values. Note that the BIOS may *correctly* report less than 640k of base
42# memory if the extended BIOS data area is located at the top of base memory 42# memory if the extended BIOS data area is located at the top of base memory
43# (as is the case on most recent systems). 43# (as is the case on most recent systems).
44#options REALBASEMEM=639 # size of base memory (in KB) 44#options REALBASEMEM=639 # size of base memory (in KB)
45#options REALEXTMEM=15360 # size of extended memory (in KB) 45#options REALEXTMEM=15360 # size of extended memory (in KB)
46 46
47# The following options limit the overall size of physical memory 47# The following options limit the overall size of physical memory
48# and/or the maximum address used by the system. 48# and/or the maximum address used by the system.
49# Contrary to REALBASEMEM and REALEXTMEM, they still use the BIOS memory map 49# Contrary to REALBASEMEM and REALEXTMEM, they still use the BIOS memory map
50# and can deal with holes in the memory layout. 50# and can deal with holes in the memory layout.
51#options PHYSMEM_MAX_SIZE=64 # max size of physical memory (in MB) 51#options PHYSMEM_MAX_SIZE=64 # max size of physical memory (in MB)
52#options PHYSMEM_MAX_ADDR=2048 # don't use memory above this (in MB) 52#options PHYSMEM_MAX_ADDR=2048 # don't use memory above this (in MB)
53 53
54# Standard system options 54# Standard system options
55 55
56options INSECURE # disable kernel security levels - X needs this 56options INSECURE # disable kernel security levels - X needs this
57 57
58options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT 58options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT
59options NTP # NTP phase/frequency locked loop 59options NTP # NTP phase/frequency locked loop
60 60
61options KTRACE # system call tracing via ktrace(1) 61options KTRACE # system call tracing via ktrace(1)
62 62
63options CPU_UCODE # cpu ucode loading support 63options CPU_UCODE # cpu ucode loading support
64 64
65# Note: SysV IPC parameters could be changed dynamically, see sysctl(8). 65# Note: SysV IPC parameters could be changed dynamically, see sysctl(8).
66options SYSVMSG # System V-like message queues 66options SYSVMSG # System V-like message queues
67options SYSVSEM # System V-like semaphores 67options SYSVSEM # System V-like semaphores
68options SYSVSHM # System V-like memory sharing 68options SYSVSHM # System V-like memory sharing
69 69
70options MODULAR # new style module(7) framework 70options MODULAR # new style module(7) framework
71options MODULAR_DEFAULT_AUTOLOAD 71options MODULAR_DEFAULT_AUTOLOAD
72options USERCONF # userconf(4) support 72options USERCONF # userconf(4) support
73#options PIPE_SOCKETPAIR # smaller, but slower pipe(2) 73#options PIPE_SOCKETPAIR # smaller, but slower pipe(2)
74options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel 74options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel
75 75
76# CPU-related options 76# CPU-related options
77options USER_LDT # User-settable LDT, used by Wine 77options USER_LDT # User-settable LDT, used by Wine
78options SVS # Separate Virtual Space 78options SVS # Separate Virtual Space
79options PCPU_IDT # Per CPU IDTs 79options PCPU_IDT # Per CPU IDTs
80 80
81# GCC Spectre variant 2 mitigation 81# GCC Spectre variant 2 mitigation
82makeoptions SPECTRE_V2_GCC_MITIGATION=1 82makeoptions SPECTRE_V2_GCC_MITIGATION=1
83options SPECTRE_V2_GCC_MITIGATION 83options SPECTRE_V2_GCC_MITIGATION
84 84
85# CPU features 85# CPU features
86acpicpu* at cpu? # ACPI CPU (including frequency scaling) 86acpicpu* at cpu? # ACPI CPU (including frequency scaling)
87coretemp* at cpu? # Intel on-die thermal sensor 87coretemp* at cpu? # Intel on-die thermal sensor
88est0 at cpu0 # Intel Enhanced SpeedStep (non-ACPI) 88est0 at cpu0 # Intel Enhanced SpeedStep (non-ACPI)
89hyperv0 at cpu0 # Microsoft Hyper-V 89hyperv0 at cpu0 # Microsoft Hyper-V
90#odcm0 at cpu0 # On-demand clock modulation 90#odcm0 at cpu0 # On-demand clock modulation
91powernow0 at cpu0 # AMD PowerNow! and Cool'n'Quiet (non-ACPI) 91powernow0 at cpu0 # AMD PowerNow! and Cool'n'Quiet (non-ACPI)
92vmt0 at cpu0 # VMware Tools 92vmt0 at cpu0 # VMware Tools
93 93
94#Xen PV support for HVM guests 94#Xen PV support for HVM guests
95options XENPVHVM 95options XENPVHVM
96options XEN 96options XEN
97hypervisor* at mainbus? # Xen hypervisor 97hypervisor* at mainbus? # Xen hypervisor
98xenbus* at hypervisor? # Xen virtual bus 98xenbus* at hypervisor? # Xen virtual bus
99xencons* at hypervisor? # Xen virtual console 99xencons* at hypervisor? # Xen virtual console
100xennet* at xenbus? # Xen virtual network interface 100xennet* at xenbus? # Xen virtual network interface
101xbd* at xenbus? # Xen virtual block device 101xbd* at xenbus? # Xen virtual block device
102 102
103# Alternate buffer queue strategies for better responsiveness under high 103# Alternate buffer queue strategies for better responsiveness under high
104# disk I/O load. 104# disk I/O load.
105#options BUFQ_READPRIO 105#options BUFQ_READPRIO
106options BUFQ_PRIOCSCAN 106options BUFQ_PRIOCSCAN
107 107
108# Diagnostic/debugging support options 108# Diagnostic/debugging support options
109options DIAGNOSTIC # inexpensive kernel consistency checks 109options DIAGNOSTIC # inexpensive kernel consistency checks
110 # XXX to be commented out on release branch 110 # XXX to be commented out on release branch
111#options DEBUG # expensive debugging checks/support 111#options DEBUG # expensive debugging checks/support
112#options LOCKDEBUG # expensive locking checks/support 112#options LOCKDEBUG # expensive locking checks/support
113 113
114# 114#
115# Because gcc omits the frame pointer for any -O level, the line below 115# Because gcc omits the frame pointer for any -O level, the line below
116# is needed to make backtraces in DDB work. 116# is needed to make backtraces in DDB work.
117# 117#
118makeoptions COPTS="-O2 -fno-omit-frame-pointer" 118makeoptions COPTS="-O2 -fno-omit-frame-pointer"
119options DDB # in-kernel debugger 119options DDB # in-kernel debugger
120#options DDB_COMMANDONENTER="bt" # execute command when ddb is entered 120#options DDB_COMMANDONENTER="bt" # execute command when ddb is entered
121#options DDB_ONPANIC=1 # see also sysctl(7): `ddb.onpanic' 121#options DDB_ONPANIC=1 # see also sysctl(7): `ddb.onpanic'
122options DDB_HISTORY_SIZE=512 # enable history editing in DDB 122options DDB_HISTORY_SIZE=512 # enable history editing in DDB
123#options KGDB # remote debugger 123#options KGDB # remote debugger
124#options KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600 124#options KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
125makeoptions DEBUG="-g" # compile full symbol table for CTF 125makeoptions DEBUG="-g" # compile full symbol table for CTF
126options DDB_COMMANDONENTER="trace;show registers" 126options DDB_COMMANDONENTER="trace;show registers"
127#options SYSCALL_STATS # per syscall counts 127#options SYSCALL_STATS # per syscall counts
128#options SYSCALL_TIMES # per syscall times 128#options SYSCALL_TIMES # per syscall times
129#options SYSCALL_TIMES_HASCOUNTER # use 'broken' rdtsc (soekris) 129#options SYSCALL_TIMES_HASCOUNTER # use 'broken' rdtsc (soekris)
130options KDTRACE_HOOKS # kernel DTrace hooks 130options KDTRACE_HOOKS # kernel DTrace hooks
131 131
132# Kernel Undefined Behavior Sanitizer (kUBSan). 132# Kernel Undefined Behavior Sanitizer (kUBSan).
133#options KUBSAN # mandatory 133#options KUBSAN # mandatory
134#options UBSAN_ALWAYS_FATAL # optional: panic on all kUBSan reports 134#options UBSAN_ALWAYS_FATAL # optional: panic on all kUBSan reports
135 135
136# Kernel Address Sanitizer (kASan). You need to disable SVS to use it. 136# Kernel Address Sanitizer (kASan). You need to disable SVS to use it.
137# The quarantine is optional and can help KASAN find more use-after-frees. 137# The quarantine is optional and can help KASAN find more use-after-frees.
138# Use KASAN_PANIC if you want panics instead of warnings. 138# Use KASAN_PANIC if you want panics instead of warnings.
139#makeoptions KASAN=1 # mandatory 139#makeoptions KASAN=1 # mandatory
140#options KASAN # mandatory 140#options KASAN # mandatory
141#no options SVS # mandatory 141#no options SVS # mandatory
142#options POOL_QUARANTINE # optional 142#options POOL_QUARANTINE # optional
143#options KASAN_PANIC # optional 143#options KASAN_PANIC # optional
144 144
145# Kernel Concurrency Sanitizer (kCSan). 145# Kernel Concurrency Sanitizer (kCSan).
146#makeoptions KCSAN=1 # mandatory 146#makeoptions KCSAN=1 # mandatory
147#options KCSAN # mandatory 147#options KCSAN # mandatory
148#options KCSAN_PANIC # optional 148#options KCSAN_PANIC # optional
149 149
150# Kernel Memory Sanitizer (kMSan). You need to disable SVS and kernel modules 150# Kernel Memory Sanitizer (kMSan). You need to disable SVS and kernel modules
151# to use it. POOL_NOCACHE is optional and can help KMSAN find uninitialized 151# to use it. POOL_NOCACHE is optional and can help KMSAN find uninitialized
152# memory in pool caches. Note that KMSAN requires at least 4GB of RAM. 152# memory in pool caches. Note that KMSAN requires at least 4GB of RAM.
153#makeoptions KMSAN=1 # mandatory 153#makeoptions KMSAN=1 # mandatory
154#options KMSAN # mandatory 154#options KMSAN # mandatory
155#no options SVS # mandatory 155#no options SVS # mandatory
156#no options MODULAR # mandatory 156#no options MODULAR # mandatory
157#no options MODULAR_DEFAULT_AUTOLOAD # mandatory 157#no options MODULAR_DEFAULT_AUTOLOAD # mandatory
158#options POOL_NOCACHE # optional 158#options POOL_NOCACHE # optional
159#options KMSAN_PANIC # optional 159#options KMSAN_PANIC # optional
160 160
161# Kernel Code Coverage Driver. 161# Kernel Code Coverage Driver.
162#makeoptions KCOV=1 162#makeoptions KCOV=1
163#options KCOV 163#options KCOV
164 164
165# Fault Injection Driver. 165# Fault Injection Driver.
166#options FAULT 166#options FAULT
167 167
168# Compatibility options 168# Compatibility options
169# x86_64 never shipped with a.out binaries; the two options below are 169# x86_64 never shipped with a.out binaries; the two options below are
170# only relevant to 32-bit i386 binaries 170# only relevant to 32-bit i386 binaries
171#options EXEC_AOUT # required by binaries from before 1.5 171#options EXEC_AOUT # required by binaries from before 1.5
172#options COMPAT_NOMID # NetBSD 0.8, 386BSD, and BSDI 172#options COMPAT_NOMID # NetBSD 0.8, 386BSD, and BSDI
173 173
174# NetBSD backward compatibility. Support goes from COMPAT_15 up until 174# NetBSD backward compatibility. Support goes from COMPAT_15 up until
175# the latest release. Note that really old compat (< COMPAT_16) is only 175# the latest release. Note that really old compat (< COMPAT_16) is only
176# useful for 32-bit i386 binaries. 176# useful for 32-bit i386 binaries.
177include "conf/compat_netbsd15.config" 177include "conf/compat_netbsd15.config"
178 178
179#options COMPAT_386BSD_MBRPART # recognize old partition ID 179#options COMPAT_386BSD_MBRPART # recognize old partition ID
180 180
181options COMPAT_NETBSD32 181options COMPAT_NETBSD32
182options EXEC_ELF32 182options EXEC_ELF32
183 183
184# Wedge support 184# Wedge support
185options DKWEDGE_AUTODISCOVER # Automatically add dk(4) instances 185options DKWEDGE_AUTODISCOVER # Automatically add dk(4) instances
186options DKWEDGE_METHOD_GPT # Supports GPT partitions as wedges 186options DKWEDGE_METHOD_GPT # Supports GPT partitions as wedges
187#options DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges 187#options DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
188#options DKWEDGE_METHOD_MBR # Support MBR partitions as wedges 188#options DKWEDGE_METHOD_MBR # Support MBR partitions as wedges
189options DKWEDGE_METHOD_APPLE # Support Apple partitions as wedges 189options DKWEDGE_METHOD_APPLE # Support Apple partitions as wedges
190#options DKWEDGE_METHOD_RDB # Support RDB partitions as wedges 190#options DKWEDGE_METHOD_RDB # Support RDB partitions as wedges
191 191
192# File systems 192# File systems
193include "conf/filesystems.config" 193include "conf/filesystems.config"
194 194
195# File system options 195# File system options
196# ffs 196# ffs
197options QUOTA # legacy UFS quotas 197options QUOTA # legacy UFS quotas
198options QUOTA2 # new, in-filesystem UFS quotas 198options QUOTA2 # new, in-filesystem UFS quotas
199options FFS_EI # FFS Endian Independent support 199options FFS_EI # FFS Endian Independent support
200options WAPBL # File system journaling support 200options WAPBL # File system journaling support
201# Note that UFS_DIRHASH is suspected of causing kernel memory corruption. 201# Note that UFS_DIRHASH is suspected of causing kernel memory corruption.
202# It is not recommended for general use. 202# It is not recommended for general use.
203#options UFS_DIRHASH # UFS Large Directory Hashing - Experimental 203#options UFS_DIRHASH # UFS Large Directory Hashing - Experimental
204options UFS_ACL # UFS Access Control Lists 204options UFS_ACL # UFS Access Control Lists
205#options FFS_NO_SNAPSHOT # No FFS snapshot support 205#options FFS_NO_SNAPSHOT # No FFS snapshot support
206options UFS_EXTATTR # Extended attribute support for UFS1 206options UFS_EXTATTR # Extended attribute support for UFS1
207# ext2fs 207# ext2fs
208#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and 208#options EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
209 # immutable) behave as system flags. 209 # immutable) behave as system flags.
210# other 210# other
211options DISKLABEL_EI # disklabel Endian Independent support 211options DISKLABEL_EI # disklabel Endian Independent support
212options NFSSERVER # Network File System server 212options NFSSERVER # Network File System server
213 213
214# Networking options 214# Networking options
215#options GATEWAY # packet forwarding 215#options GATEWAY # packet forwarding
216options INET # IP + ICMP + TCP + UDP 216options INET # IP + ICMP + TCP + UDP
217options INET6 # IPV6 217options INET6 # IPV6
218options IPSEC # IP security 218options IPSEC # IP security
219#options IPSEC_DEBUG # debug for IP security 219#options IPSEC_DEBUG # debug for IP security
220#options MPLS # MultiProtocol Label Switching (needs mpls) 220#options MPLS # MultiProtocol Label Switching (needs mpls)
221#options MROUTING # IP multicast routing 221#options MROUTING # IP multicast routing
222#options PIM # Protocol Independent Multicast 222#options PIM # Protocol Independent Multicast
223options NETATALK # AppleTalk networking protocols 223options NETATALK # AppleTalk networking protocols
224#options CAN # Controller Area Network protocol 224#options CAN # Controller Area Network protocol
225options PPP_BSDCOMP # BSD-Compress compression support for PPP 225options PPP_BSDCOMP # BSD-Compress compression support for PPP
226options PPP_DEFLATE # Deflate compression support for PPP 226options PPP_DEFLATE # Deflate compression support for PPP
227options PPP_FILTER # Active filter support for PPP (requires bpf) 227options PPP_FILTER # Active filter support for PPP (requires bpf)
228#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG 228#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
229#options TCP_SIGNATURE # Enable RFC-2385 TCP md5 signatures 229#options TCP_SIGNATURE # Enable RFC-2385 TCP md5 signatures
230 230
231#options ALTQ # Manipulate network interfaces' output queues 231#options ALTQ # Manipulate network interfaces' output queues
232#options ALTQ_BLUE # Stochastic Fair Blue 232#options ALTQ_BLUE # Stochastic Fair Blue
233#options ALTQ_CBQ # Class-Based Queueing 233#options ALTQ_CBQ # Class-Based Queueing
234#options ALTQ_CDNR # Diffserv Traffic Conditioner 234#options ALTQ_CDNR # Diffserv Traffic Conditioner
235#options ALTQ_FIFOQ # First-In First-Out Queue 235#options ALTQ_FIFOQ # First-In First-Out Queue
236#options ALTQ_FLOWVALVE # RED/flow-valve (red-penalty-box) 236#options ALTQ_FLOWVALVE # RED/flow-valve (red-penalty-box)
237#options ALTQ_HFSC # Hierarchical Fair Service Curve 237#options ALTQ_HFSC # Hierarchical Fair Service Curve
238#options ALTQ_LOCALQ # Local queueing discipline 238#options ALTQ_LOCALQ # Local queueing discipline
239#options ALTQ_PRIQ # Priority Queueing 239#options ALTQ_PRIQ # Priority Queueing
240#options ALTQ_RED # Random Early Detection 240#options ALTQ_RED # Random Early Detection
241#options ALTQ_RIO # RED with IN/OUT 241#options ALTQ_RIO # RED with IN/OUT
242#options ALTQ_WFQ # Weighted Fair Queueing 242#options ALTQ_WFQ # Weighted Fair Queueing
243 243
244# These options enable verbose messages for several subsystems. 244# These options enable verbose messages for several subsystems.
245# Warning, these may compile large string tables into the kernel! 245# Warning, these may compile large string tables into the kernel!
246#options ACPIVERBOSE # verbose ACPI configuration messages 246#options ACPIVERBOSE # verbose ACPI configuration messages
247#options MIIVERBOSE # verbose PHY autoconfig messages 247#options MIIVERBOSE # verbose PHY autoconfig messages
248options PCIVERBOSE # verbose PCI device autoconfig messages 248options PCIVERBOSE # verbose PCI device autoconfig messages
249#options PCI_CONFIG_DUMP # verbosely dump PCI config space 249#options PCI_CONFIG_DUMP # verbosely dump PCI config space
250#options PCMCIAVERBOSE # verbose PCMCIA configuration messages 250#options PCMCIAVERBOSE # verbose PCMCIA configuration messages
251options SCSIVERBOSE # human readable SCSI error messages 251options SCSIVERBOSE # human readable SCSI error messages
252#options USBVERBOSE # verbose USB device autoconfig messages 252#options USBVERBOSE # verbose USB device autoconfig messages
253#options HDAUDIOVERBOSE # verbose HDAUDIO driver messages 253#options HDAUDIOVERBOSE # verbose HDAUDIO driver messages
254 254
255options NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM 255options NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM
256 256
257# 257#
258# wscons options 258# wscons options
259# 259#
260# builtin terminal emulations 260# builtin terminal emulations
261options WSEMUL_VT100 # VT100 / VT220 emulation 261options WSEMUL_VT100 # VT100 / VT220 emulation
262#options WSEMUL_SUN # sun terminal emulation 262#options WSEMUL_SUN # sun terminal emulation
263#options WSEMUL_DEFAULT="\"vt100\"" # NB: default is "sun" if enabled 263#options WSEMUL_DEFAULT="\"vt100\"" # NB: default is "sun" if enabled
264# different kernel output - see dev/wscons/wsdisplayvar.h 264# different kernel output - see dev/wscons/wsdisplayvar.h
265options WS_KERNEL_FG=WSCOL_GREEN 265options WS_KERNEL_FG=WSCOL_GREEN
266#options WS_KERNEL_BG=WSCOL_BLACK 266#options WS_KERNEL_BG=WSCOL_BLACK
267# compatibility to other console drivers 267# compatibility to other console drivers
268options WSDISPLAY_COMPAT_PCVT # emulate some ioctls 268options WSDISPLAY_COMPAT_PCVT # emulate some ioctls
269options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls 269options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls
270options WSDISPLAY_COMPAT_USL # wsconscfg VT handling 270options WSDISPLAY_COMPAT_USL # wsconscfg VT handling
271options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes 271options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes
272# don't attach pckbd as the console if no PS/2 keyboard is found 272# don't attach pckbd as the console if no PS/2 keyboard is found
273options PCKBD_CNATTACH_MAY_FAIL 273options PCKBD_CNATTACH_MAY_FAIL
274# see dev/pckbport/wskbdmap_mfii.c for implemented layouts 274# see dev/pckbport/wskbdmap_mfii.c for implemented layouts
275#options PCKBD_LAYOUT="(KB_DE | KB_NODEAD)" 275#options PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"
276# allocate a number of virtual screens at autoconfiguration time 276# allocate a number of virtual screens at autoconfiguration time
277#options WSDISPLAY_DEFAULTSCREENS=4 277#options WSDISPLAY_DEFAULTSCREENS=4
278# use a large software cursor that doesn't blink 278# use a large software cursor that doesn't blink
279options PCDISPLAY_SOFTCURSOR 279options PCDISPLAY_SOFTCURSOR
280# modify the screen type of the console; defaults to "80x25" 280# modify the screen type of the console; defaults to "80x25"
281#options VGA_CONSOLE_SCREENTYPE="\"80x24\"" 281#options VGA_CONSOLE_SCREENTYPE="\"80x24\""
282# work around a hardware bug that loaded fonts don't work; found on ATI cards 282# work around a hardware bug that loaded fonts don't work; found on ATI cards
283#options VGA_CONSOLE_ATI_BROKEN_FONTSEL 283#options VGA_CONSOLE_ATI_BROKEN_FONTSEL
284# console scrolling support. 284# console scrolling support.
285options WSDISPLAY_SCROLLSUPPORT 285options WSDISPLAY_SCROLLSUPPORT
286# enable VGA raster mode capable of displaying multilingual text on console 286# enable VGA raster mode capable of displaying multilingual text on console
287#options VGA_RASTERCONSOLE 287#options VGA_RASTERCONSOLE
288# enable splash screen support; requires genfb or radeonfb 288# enable splash screen support; requires genfb or radeonfb
289#options SPLASHSCREEN 289#options SPLASHSCREEN
290 290
291# Kernel root file system and dump configuration. 291# Kernel root file system and dump configuration.
292config netbsd root on ? type ? 292config netbsd root on ? type ?
293#config netbsd root on sd0a type ffs 293#config netbsd root on sd0a type ffs
294#config netbsd root on ? type nfs 294#config netbsd root on ? type nfs
295 295
296# 296#
297# Device configuration 297# Device configuration
298# 298#
299 299
300#IPMI support 300#IPMI support
301ipmi0 at mainbus? 301ipmi0 at mainbus?
302ipmi_acpi* at acpi? 302ipmi_acpi* at acpi?
303ipmi0 at ipmi_acpi? 303ipmi0 at ipmi_acpi?
304 304
305# ACPI will be used if present. If not it will fall back to MPBIOS 305# ACPI will be used if present. If not it will fall back to MPBIOS
306acpi0 at mainbus0 306acpi0 at mainbus0
307options ACPI_SCANPCI # find PCI roots using ACPI 307options ACPI_SCANPCI # find PCI roots using ACPI
308options MPBIOS # configure CPUs and APICs using MPBIOS 308options MPBIOS # configure CPUs and APICs using MPBIOS
309options MPBIOS_SCANPCI # MPBIOS configures PCI roots 309options MPBIOS_SCANPCI # MPBIOS configures PCI roots
310#options PCI_INTR_FIXUP # PCI interrupt routing via ACPI 310#options PCI_INTR_FIXUP # PCI interrupt routing via ACPI
311#options PCI_BUS_FIXUP # fixup PCI bus numbering 311#options PCI_BUS_FIXUP # fixup PCI bus numbering
312#options PCI_ADDR_FIXUP # fixup PCI I/O addresses 312#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
313#options ACPI_ACTIVATE_DEV # If set, activate inactive devices 313#options ACPI_ACTIVATE_DEV # If set, activate inactive devices
314options VGA_POST # in-kernel support for VGA POST 314options VGA_POST # in-kernel support for VGA POST
315 315
316# ACPI devices 316# ACPI devices
317acpiacad* at acpi? # ACPI AC Adapter 317acpiacad* at acpi? # ACPI AC Adapter
318acpibat* at acpi? # ACPI Battery 318acpibat* at acpi? # ACPI Battery
319acpibut* at acpi? # ACPI Button 319acpibut* at acpi? # ACPI Button
320acpidalb* at acpi? # Direct Application Launch Button 320acpidalb* at acpi? # Direct Application Launch Button
321acpiec* at acpi? # ACPI Embedded Controller (late) 321acpiec* at acpi? # ACPI Embedded Controller (late)
322acpiecdt* at acpi? # ACPI Embedded Controller (early) 322acpiecdt* at acpi? # ACPI Embedded Controller (early)
323acpifan* at acpi? # ACPI Fan 323acpifan* at acpi? # ACPI Fan
324acpilid* at acpi? # ACPI Lid Switch 324acpilid* at acpi? # ACPI Lid Switch
325#acpipmtr* at acpi? # ACPI Power Meter (experimental) 325#acpipmtr* at acpi? # ACPI Power Meter (experimental)
326#acpismbus* at acpi? # ACPI SMBus CMI (experimental) 326#acpismbus* at acpi? # ACPI SMBus CMI (experimental)
327acpitz* at acpi? # ACPI Thermal Zone 327acpitz* at acpi? # ACPI Thermal Zone
328acpivga* at acpi? # ACPI Display Adapter 328acpivga* at acpi? # ACPI Display Adapter
329acpiout* at acpivga? # ACPI Display Output Device 329acpiout* at acpivga? # ACPI Display Output Device
330acpiwdrt* at acpi? # ACPI Watchdog Resource Table 330acpiwdrt* at acpi? # ACPI Watchdog Resource Table
331acpiwmi* at acpi? # ACPI WMI Mapper 331acpiwmi* at acpi? # ACPI WMI Mapper
332 332
333# Mainboard devices 333# Mainboard devices
334aibs* at acpi? # ASUSTeK AI Booster hardware monitor 334aibs* at acpi? # ASUSTeK AI Booster hardware monitor
335asus* at acpi? # ASUS hotkeys 335asus* at acpi? # ASUS hotkeys
336attimer* at acpi? # AT Timer 336attimer* at acpi? # AT Timer
337#com* at acpi? # Serial communications interface 337#com* at acpi? # Serial communications interface
338#fdc* at acpi? # Floppy disk controller 338#fdc* at acpi? # Floppy disk controller
339fujbp* at acpi? # Fujitsu Brightness & Pointer 339fujbp* at acpi? # Fujitsu Brightness & Pointer
340fujhk* at acpi? # Fujitsu Hotkeys 340fujhk* at acpi? # Fujitsu Hotkeys
341#hpacel* at acpi? # HP 3D DriveGuard accelerometer 341#hpacel* at acpi? # HP 3D DriveGuard accelerometer
342#hpqlb* at acpi? # HP Quick Launch Buttons 342#hpqlb* at acpi? # HP Quick Launch Buttons
343hpet* at acpihpetbus? # High Precision Event Timer (table) 343hpet* at acpihpetbus? # High Precision Event Timer (table)
344hpet* at acpinodebus? # High Precision Event Timer (device) 344hpet* at acpinodebus? # High Precision Event Timer (device)
345joy* at acpi? # Joystick/Game port 345joy* at acpi? # Joystick/Game port
346#lpt* at acpi? # Parallel port 346#lpt* at acpi? # Parallel port
347mpu* at acpi? # Roland MPU-401 MIDI UART 347mpu* at acpi? # Roland MPU-401 MIDI UART
348pckbc* at acpi? # PC keyboard controller 348pckbc* at acpi? # PC keyboard controller
349pcppi* at acpi? # AT-style speaker sound 349pcppi* at acpi? # AT-style speaker sound
350qemufwcfg* at acpi? # QEMU Firmware Configuration device 350qemufwcfg* at acpi? # QEMU Firmware Configuration device
351sdhc* at acpi? # SD Host Controller 351sdhc* at acpi? # SD Host Controller
352sony* at acpi? # Sony Notebook Controller 352sony* at acpi? # Sony Notebook Controller
353spic* at acpi? # Sony Programmable I/O Controller 353spic* at acpi? # Sony Programmable I/O Controller
354wsmouse* at spic? # mouse 354wsmouse* at spic? # mouse
355thinkpad* at acpi? # IBM/Lenovo Thinkpad hotkeys 355thinkpad* at acpi? # IBM/Lenovo Thinkpad hotkeys
356tpm* at acpi? # ACPI TPM (Experimental) 356tpm* at acpi? # ACPI TPM (Experimental)
357ug* at acpi? # Abit uGuru Hardware monitor 357ug* at acpi? # Abit uGuru Hardware monitor
358valz* at acpi? # Toshiba Dynabook hotkeys 358valz* at acpi? # Toshiba Dynabook hotkeys
359wb* at acpi? # Winbond W83L518D SD/MMC reader 359wb* at acpi? # Winbond W83L518D SD/MMC reader
360sdmmc* at wb? # SD/MMC bus 360sdmmc* at wb? # SD/MMC bus
361wmidell* at acpiwmibus? # Dell WMI mappings 361wmidell* at acpiwmibus? # Dell WMI mappings
362wmieeepc* at acpiwmibus? # Asus Eee PC WMI mappings 362wmieeepc* at acpiwmibus? # Asus Eee PC WMI mappings
363wmihp* at acpiwmibus? # HP WMI mappings 363wmihp* at acpiwmibus? # HP WMI mappings
364wmimsi* at acpiwmibus? # MSI WMI mappings 364wmimsi* at acpiwmibus? # MSI WMI mappings
365 365
366# Basic Bus Support 366# Basic Bus Support
367 367
368# PCI bus support 368# PCI bus support
369pci* at mainbus? bus ? 369pci* at mainbus? bus ?
370pci* at pchb? bus ? 370pci* at pchb? bus ?
371pci* at ppb? bus ? 371pci* at ppb? bus ?
372 372
373# PCI bridges 373# PCI bridges
374pchb* at pci? dev ? function ? # PCI-Host bridges 374pchb* at pci? dev ? function ? # PCI-Host bridges
375options AGP_X86 375options AGP_X86
376pcib* at pci? dev ? function ? # PCI-ISA bridges 376pcib* at pci? dev ? function ? # PCI-ISA bridges
377ppb* at pci? dev ? function ? # PCI-PCI bridges 377ppb* at pci? dev ? function ? # PCI-PCI bridges
378# XXX 'puc's aren't really bridges, but there's no better place for them here 378# XXX 'puc's aren't really bridges, but there's no better place for them here
379puc* at pci? dev ? function ? # PCI "universal" comm. cards 379puc* at pci? dev ? function ? # PCI "universal" comm. cards
380 380
381amdpcib* at pci? dev ? function ? # AMD 8111 PCI-ISA w/ HPET 381amdpcib* at pci? dev ? function ? # AMD 8111 PCI-ISA w/ HPET
382hpet* at amdpcib? 382hpet* at amdpcib?
383 383
384pwdog* at pci? dev ? function ? # QUANCOM PWDOG1 384pwdog* at pci? dev ? function ? # QUANCOM PWDOG1
385 385
386ichlpcib* at pci? dev ? function ? # Intel ICH PCI-LPC w/ timecounter, 386ichlpcib* at pci? dev ? function ? # Intel ICH PCI-LPC w/ timecounter,
387 # watchdog, gpio, Speedstep and HPET 387 # watchdog, gpio, Speedstep and HPET
388fwhrng* at ichlpcib? # Intel 82802 FWH Random Number Generator 388fwhrng* at ichlpcib? # Intel 82802 FWH Random Number Generator
389#hpet* at ichlpcib? 389#hpet* at ichlpcib?
390tco* at ichlpcib? # TCO watch dog timer 390tco* at ichlpcib? # TCO watch dog timer
391 391
392aapic* at pci? dev ? function ? # AMD 8131 IO apic 392aapic* at pci? dev ? function ? # AMD 8131 IO apic
393 393
394agp* at pchb? 394agp* at pchb?
395 395
396# ISA bus support 396# ISA bus support
397isa0 at mainbus? 397isa0 at mainbus?
398isa0 at pcib? 398isa0 at pcib?
399#isa0 at amdpcib? 399#isa0 at amdpcib?
400isa0 at ichlpcib? 400isa0 at ichlpcib?
401 401
402# CardBus bridge support 402# CardBus bridge support
403cbb* at pci? dev ? function ? 403cbb* at pci? dev ? function ?
404cardslot* at cbb? 404cardslot* at cbb?
405 405
406# CardBus bus support 406# CardBus bus support
407cardbus* at cardslot? 407cardbus* at cardslot?
408pcmcia* at cardslot? 408pcmcia* at cardslot?
409 409
410# Console Devices 410# Console Devices
411 411
412# wscons 412# wscons
413pckbc0 at isa? # pc keyboard controller 413pckbc0 at isa? # pc keyboard controller
414pckbd* at pckbc? # PC keyboard 414pckbd* at pckbc? # PC keyboard
415pms* at pckbc? # PS/2 mouse for wsmouse 415pms* at pckbc? # PS/2 mouse for wsmouse
416#options PMS_DISABLE_POWERHOOK # Disable PS/2 reset on resume 416#options PMS_DISABLE_POWERHOOK # Disable PS/2 reset on resume
417options PMS_SYNAPTICS_TOUCHPAD # Enable support for Synaptics Touchpads 417options PMS_SYNAPTICS_TOUCHPAD # Enable support for Synaptics Touchpads
418options PMS_ELANTECH_TOUCHPAD # Enable support for Elantech Touchpads 418options PMS_ELANTECH_TOUCHPAD # Enable support for Elantech Touchpads
419options PMS_ALPS_TOUCHPAD # Enable support for Alps Touchpads 419options PMS_ALPS_TOUCHPAD # Enable support for Alps Touchpads
420vga* at pci? dev ? function ? 420vga* at pci? dev ? function ?
421genfb* at pci? dev ? function ? 421genfb* at pci? dev ? function ?
422options VCONS_DRAW_INTR 422options VCONS_DRAW_INTR
423wsdisplay* at vga? console ? 423wsdisplay* at vga? console ?
424wsdisplay* at wsemuldisplaydev? 424wsdisplay* at wsemuldisplaydev?
425wskbd* at pckbd? console ? 425wskbd* at pckbd? console ?
426wsmouse* at pms? mux 0 426wsmouse* at pms? mux 0
427wsmouse* at wsmousedev? 427wsmouse* at wsmousedev?
428 428
429attimer0 at isa? 429attimer0 at isa?
430pcppi0 at isa? 430pcppi0 at isa?
431sysbeep0 at pcppi? 431sysbeep0 at pcppi?
432 432
433# DRI legacy drivers 433# DRI legacy drivers
434#i915drm* at drm? # Intel i915, i945 DRM driver 434#i915drm* at drm? # Intel i915, i945 DRM driver
435#mach64drm* at drm? # mach64 (3D Rage Pro, Rage) DRM driver 435#mach64drm* at drm? # mach64 (3D Rage Pro, Rage) DRM driver
436#mgadrm* at drm? # Matrox G[24]00, G[45]50 DRM driver 436#mgadrm* at drm? # Matrox G[24]00, G[45]50 DRM driver
437#r128drm* at drm? # ATI Rage 128 DRM driver 437#r128drm* at drm? # ATI Rage 128 DRM driver
438#radeondrm* at drm? # ATI Radeon DRM driver 438#radeondrm* at drm? # ATI Radeon DRM driver
439#savagedrm* at drm? # S3 Savage DRM driver 439#savagedrm* at drm? # S3 Savage DRM driver
440#sisdrm* at drm? # SiS DRM driver 440#sisdrm* at drm? # SiS DRM driver
441#tdfxdrm* at drm? # 3dfx (voodoo) DRM driver 441#tdfxdrm* at drm? # 3dfx (voodoo) DRM driver
442 442
443# DRMKMS drivers 443# DRMKMS drivers
444i915drmkms* at pci? dev ? function ? 444i915drmkms* at pci? dev ? function ?
445intelfb* at intelfbbus? 445intelfb* at intelfbbus?
446 446
447radeon* at pci? dev ? function ? 447radeon* at pci? dev ? function ?
448radeondrmkmsfb* at radeonfbbus? 448radeondrmkmsfb* at radeonfbbus?
449 449
450#amdgpu* at pci? dev ? function ? 450#amdgpu* at pci? dev ? function ?
451#amdgpufb* at amdgpufbbus? 451#amdgpufb* at amdgpufbbus?
452 452
453nouveau* at pci? dev ? function ? 453nouveau* at pci? dev ? function ?
454nouveaufb* at nouveaufbbus? 454nouveaufb* at nouveaufbbus?
455 455
456# DRMUMS drivers 456# DRMUMS drivers
457#viadrmums* at drm? 457#viadrmums* at drm?
458 458
459# Cryptographic Devices 459# Cryptographic Devices
460 460
461# PCI cryptographic devices 461# PCI cryptographic devices
462amdccp* at pci? dev ? function ? # AMD Cryptographic Coprocessor 462amdccp* at pci? dev ? function ? # AMD Cryptographic Coprocessor
463hifn* at pci? dev ? function ? # Hifn 7755/7811/795x 463hifn* at pci? dev ? function ? # Hifn 7755/7811/795x
464#qat* at pci? dev ? function ? # Intel QuickAssist 464#qat* at pci? dev ? function ? # Intel QuickAssist
465ubsec* at pci? dev ? function ? # Broadcom 5501/5601/580x/582x 465ubsec* at pci? dev ? function ? # Broadcom 5501/5601/580x/582x
466 466
467# Trusted Platform Module 467# Trusted Platform Module
468tpm* at isa? iomem 0xfed40000 irq 7 468tpm* at isa? iomem 0xfed40000 irq 7
469 469
470# Serial Devices 470# Serial Devices
471 471
472# PCI serial interfaces 472# PCI serial interfaces
473com* at puc? port ? # 16x50s on "universal" comm boards 473com* at puc? port ? # 16x50s on "universal" comm boards
474cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards 474cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards
475cz* at pci? dev ? function ? # Cyclades-Z multi-port serial boards 475cz* at pci? dev ? function ? # Cyclades-Z multi-port serial boards
476 476
477# PCMCIA serial interfaces 477# PCMCIA serial interfaces
478com* at pcmcia? function ? # Modems and serial cards 478com* at pcmcia? function ? # Modems and serial cards
479 479
480pcmcom* at pcmcia? function ? # PCMCIA multi-port serial cards 480pcmcom* at pcmcia? function ? # PCMCIA multi-port serial cards
481com* at pcmcom? slave ? # ...and the slave devices 481com* at pcmcom? slave ? # ...and the slave devices
482 482
483# CardBus serial interfaces 483# CardBus serial interfaces
484com* at cardbus? function ? # Modems and serial cards 484com* at cardbus? function ? # Modems and serial cards
485 485
486# ISA serial interfaces 486# ISA serial interfaces
487#options COM_HAYESP # adds Hayes ESP serial board support 487#options COM_HAYESP # adds Hayes ESP serial board support
488com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports 488com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports
489com1 at isa? port 0x2f8 irq 3 489com1 at isa? port 0x2f8 irq 3
490 490
491# Parallel Printer Interfaces 491# Parallel Printer Interfaces
492 492
493# PCI parallel printer interfaces 493# PCI parallel printer interfaces
494lpt* at puc? port ? # || ports on "universal" comm boards 494lpt* at puc? port ? # || ports on "universal" comm boards
495 495
496# ISA parallel printer interfaces 496# ISA parallel printer interfaces
497lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports 497lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
498lpt1 at isa? port 0x278 498lpt1 at isa? port 0x278
499 499
500# Hardware monitors 500# Hardware monitors
501 501
502amdnb_misc* at pci? # AMD NB Misc Configuration 502amdnb_misc* at pci? # AMD NB Misc Configuration
503amdtemp* at amdnb_misc? # AMD CPU Temperature sensors 503amdtemp* at amdnb_misc? # AMD CPU Temperature sensors
504 504
505amdsmn* at pci? # AMD SMN Configuration 505amdsmn* at pci? # AMD SMN Configuration
506amdzentemp* at amdsmnbus? # AMD Ryzen Family 17h CPU temp sensors 506amdzentemp* at amdsmnbus? # AMD Ryzen Family 17h CPU temp sensors
507 507
508# Winbond LPC Super I/O 508# Winbond LPC Super I/O
509#wbsio* at isa? port 0x2e 509#wbsio* at isa? port 0x2e
510#wbsio* at isa? port 0x4e 510#wbsio* at isa? port 0x4e
511 511
512# IBM Hawk Integrated Systems Management Processor 512# IBM Hawk Integrated Systems Management Processor
513#ibmhawk0 at iic? addr 0x37 513#ibmhawk0 at iic? addr 0x37
514 514
515# LM7[89] and compatible hardware monitors 515# LM7[89] and compatible hardware monitors
516# Use flags to select temp sensor type (see lm(4) man page for details) 516# Use flags to select temp sensor type (see lm(4) man page for details)
517#lm0 at isa? port 0x290 flags 0x0 # other common ports: 0x280, 0x310 517#lm0 at isa? port 0x290 flags 0x0 # other common ports: 0x280, 0x310
518#lm* at wbsio? 518#lm* at wbsio?
519 519
520# SMSC LPC47B397 hardware monitor functions 520# SMSC LPC47B397 hardware monitor functions
521#smsc0 at isa? port 0x02e 521#smsc0 at isa? port 0x02e
522 522
523# SMSC LPC47M192 hardware monitor 523# SMSC LPC47M192 hardware monitor
524#smscmon* at iic? addr 0x2c 524#smscmon* at iic? addr 0x2c
525#smscmon* at iic? addr 0x2d # (alternate address) 525#smscmon* at iic? addr 0x2d # (alternate address)
526 526
527# AMD 768 and 8111 power/ACPI controllers 527# AMD 768 and 8111 power/ACPI controllers
528amdpm* at pci? dev ? function ? # RNG and SMBus 1.0 interface 528amdpm* at pci? dev ? function ? # RNG and SMBus 1.0 interface
529#iic* at amdpm? # sensors below are on this bus 529#iic* at amdpm? # sensors below are on this bus
530 530
531# NVIDIA nForce2/3/4 SMBus controller 531# NVIDIA nForce2/3/4 SMBus controller
532nfsmbc* at pci? dev ? function ? 532nfsmbc* at pci? dev ? function ?
533nfsmb* at nfsmbc? 533nfsmb* at nfsmbc?
534iic* at nfsmb? 534iic* at nfsmb?
535 535
536# Intel PIIX4 power management controllers 536# Intel PIIX4 power management controllers
537piixpm* at pci? dev ? function ? # PIIX4 compatible PM controller 537piixpm* at pci? dev ? function ? # PIIX4 compatible PM controller
538iic* at piixpm? # SMBus on PIIX4 538iic* at piixpm? # SMBus on PIIX4
539 539
540# Intel ICH SMBus controller 540# Intel ICH SMBus controller
541ichsmb* at pci? dev ? function ? 541ichsmb* at pci? dev ? function ?
542iic* at ichsmb? 542iic* at ichsmb?
543 543
544# Intel S1200,C2000 (non-pch) SMBus controller 544# Intel S1200,C2000 (non-pch) SMBus controller
545ismt* at pci? dev ? function ? 545ismt* at pci? dev ? function ?
546iic* at ismt? 546iic* at ismt?
547 547
548# I2C controller as found in some Intel PCH devices. 548# DesignWare I2C controller as found in some Intel PCH and AMD FCH devices.
549dwiic* at pci? # I2C controller 549dwiic* at acpi? # DesignWare I2C controller
 550dwiic* at pci? # DesignWare I2C controller
550iic* at dwiic? 551iic* at dwiic?
551 552
552# Thermal monitor and fan controller 553# Thermal monitor and fan controller
553#dbcool* at iic? addr 0x2C # Unknown other motherboard(s) 554#dbcool* at iic? addr 0x2C # Unknown other motherboard(s)
554#dbcool* at iic? addr 0x2D # Tyan S2881 555#dbcool* at iic? addr 0x2D # Tyan S2881
555#dbcool* at iic? addr 0x2E # Tyan S2882-D 556#dbcool* at iic? addr 0x2E # Tyan S2882-D
556 557
557# IBM Thinkpad Active Protection System 558# IBM Thinkpad Active Protection System
558#aps0 at isa? port 0x1600 559#aps0 at isa? port 0x1600
559 560
560# Fintek Super I/O with hardware monitor 561# Fintek Super I/O with hardware monitor
561#finsio0 at isa? port 0x4e 562#finsio0 at isa? port 0x4e
562 563
563# iTE IT87xxF Super I/O with watchdog and sensors support 564# iTE IT87xxF Super I/O with watchdog and sensors support
564#itesio0 at isa? port 0x2e 565#itesio0 at isa? port 0x2e
565 566
566# Abit uGuru Hardware system monitor 567# Abit uGuru Hardware system monitor
567#ug0 at isa? port 0xe0 568#ug0 at isa? port 0xe0
568 569
569# Serial Presence Detect capable memory modules 570# Serial Presence Detect capable memory modules
570#spdmem* at iic? addr 0x50 571#spdmem* at iic? addr 0x50
571#spdmem* at iic? addr 0x51 572#spdmem* at iic? addr 0x51
572#spdmem* at iic? addr 0x52 573#spdmem* at iic? addr 0x52
573#spdmem* at iic? addr 0x53 574#spdmem* at iic? addr 0x53
574#spdmem* at iic? addr 0x54 575#spdmem* at iic? addr 0x54
575#spdmem* at iic? addr 0x55 576#spdmem* at iic? addr 0x55
576#spdmem* at iic? addr 0x56 577#spdmem* at iic? addr 0x56
577#spdmem* at iic? addr 0x57 578#spdmem* at iic? addr 0x57
578#sdtemp* at iic? addr 0x18 579#sdtemp* at iic? addr 0x18
579#sdtemp* at iic? addr 0x19 580#sdtemp* at iic? addr 0x19
580#sdtemp* at iic? addr 0x1a 581#sdtemp* at iic? addr 0x1a
581#sdtemp* at iic? addr 0x1b 582#sdtemp* at iic? addr 0x1b
582#sdtemp* at iic? addr 0x1c 583#sdtemp* at iic? addr 0x1c
583#sdtemp* at iic? addr 0x1d 584#sdtemp* at iic? addr 0x1d
584#sdtemp* at iic? addr 0x1e 585#sdtemp* at iic? addr 0x1e
585#sdtemp* at iic? addr 0x1f 586#sdtemp* at iic? addr 0x1f
586 587
587# I2C HID devices 588# I2C HID devices
588ihidev* at iic? 589ihidev* at iic?
589 590
590# I2C Mice 591# I2C Mice
591ims* at ihidev? reportid ? 592ims* at ihidev? reportid ?
592wsmouse* at ims? mux 0 593wsmouse* at ims? mux 0
593 594
594# I2O devices 595# I2O devices
595iop* at pci? dev ? function ? # I/O processor 596iop* at pci? dev ? function ? # I/O processor
596iopsp* at iop? tid ? # SCSI/FC-AL ports 597iopsp* at iop? tid ? # SCSI/FC-AL ports
597ld* at iop? tid ? # block devices 598ld* at iop? tid ? # block devices
598# XXX dpti.c wants a processor type that is not assigned for x86-64 599# XXX dpti.c wants a processor type that is not assigned for x86-64
599#dpti* at iop? tid 0 # DPT/Adaptec control interface 600#dpti* at iop? tid 0 # DPT/Adaptec control interface
600 601
601# GPIO devices 602# GPIO devices
602gpio* at gpiobus? 603gpio* at gpiobus?
603 604
604# 1- Wire support 605# 1- Wire support
605#gpioow* at gpio? offset ? mask ? # 1-wire bitbanging via gpio 606#gpioow* at gpio? offset ? mask ? # 1-wire bitbanging via gpio
606gpioow* at gpio? 607gpioow* at gpio?
607onewire* at gpioow? 608onewire* at gpioow?
608 609
609# 1-Wire devices 610# 1-Wire devices
610owtemp* at onewire? # Temperature sensors 611owtemp* at onewire? # Temperature sensors
611 612
612# I2C support 613# I2C support
613#gpioiic* at gpio? 614#gpioiic* at gpio?
614#iic* at gpioiic? 615#iic* at gpioiic?
615 616
616# Keylock support 617# Keylock support
617#gpiolock* at gpio? 618#gpiolock* at gpio?
618 619
619# Pulsing GPIO pins in software 620# Pulsing GPIO pins in software
620#gpiopwm* at gpio? 621#gpiopwm* at gpio?
621 622
622# Soekris 6501 GPIO/LED driver (provides gpiobus, needs gpio) 623# Soekris 6501 GPIO/LED driver (provides gpiobus, needs gpio)
623#soekrisgpio0 at isa? port 0x680 624#soekrisgpio0 at isa? port 0x680
624 625
625# Nuvoton NCT5104D SuperIO providing GPIO 626# Nuvoton NCT5104D SuperIO providing GPIO
626nct0 at isa? port ? 627nct0 at isa? port ?
627 628
628# SCSI Controllers and Devices 629# SCSI Controllers and Devices
629 630
630# PCI SCSI controllers 631# PCI SCSI controllers
631adv* at pci? dev ? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI 632adv* at pci? dev ? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI
632adw* at pci? dev ? function ? # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI 633adw* at pci? dev ? function ? # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
633ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI 634ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI
634ahd* at pci? dev ? function ? # Adaptec aic790x SCSI 635ahd* at pci? dev ? function ? # Adaptec aic790x SCSI
635bha* at pci? dev ? function ? # BusLogic 9xx SCSI 636bha* at pci? dev ? function ? # BusLogic 9xx SCSI
636dpt* at pci? dev ? function ? # DPT SmartCache/SmartRAID 637dpt* at pci? dev ? function ? # DPT SmartCache/SmartRAID
637iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI 638iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI
638isp* at pci? dev ? function ? # Qlogic ISP [12]0x0 SCSI/FibreChannel 639isp* at pci? dev ? function ? # Qlogic ISP [12]0x0 SCSI/FibreChannel
639mfi* at pci? dev ? function ? # LSI MegaRAID SAS 640mfi* at pci? dev ? function ? # LSI MegaRAID SAS
640mfii* at pci? dev ? function ? # LSI MegaRAID SAS (Fusion and newer) 641mfii* at pci? dev ? function ? # LSI MegaRAID SAS (Fusion and newer)
641mly* at pci? dev ? function ? # Mylex AcceleRAID and eXtremeRAID 642mly* at pci? dev ? function ? # Mylex AcceleRAID and eXtremeRAID
642mpt* at pci? dev ? function ? # LSILogic 9x9 and 53c1030 (Fusion-MPT) 643mpt* at pci? dev ? function ? # LSILogic 9x9 and 53c1030 (Fusion-MPT)
643mpii* at pci? dev ? function ? # LSI Logic Fusion-MPT II 644mpii* at pci? dev ? function ? # LSI Logic Fusion-MPT II
644njs* at pci? dev ? function ? # Workbit NinjaSCSI-32 645njs* at pci? dev ? function ? # Workbit NinjaSCSI-32
645pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI 646pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI
646siop* at pci? dev ? function ? # Symbios 53c8xx SCSI 647siop* at pci? dev ? function ? # Symbios 53c8xx SCSI
647esiop* at pci? dev ? function ? # Symbios 53c875 and newer SCSI 648esiop* at pci? dev ? function ? # Symbios 53c875 and newer SCSI
648#options SIOP_SYMLED # drive the act. LED in software 649#options SIOP_SYMLED # drive the act. LED in software
649trm* at pci? dev ? function ? # Tekram DC-395U/UW/F, DC-315/U SCSI 650trm* at pci? dev ? function ? # Tekram DC-395U/UW/F, DC-315/U SCSI
650 651
651# PCMCIA SCSI controllers 652# PCMCIA SCSI controllers
652aic* at pcmcia? function ? # Adaptec APA-1460 SCSI 653aic* at pcmcia? function ? # Adaptec APA-1460 SCSI
653esp* at pcmcia? function ? # Qlogic ESP406/FAS408 SCSI 654esp* at pcmcia? function ? # Qlogic ESP406/FAS408 SCSI
654spc* at pcmcia? function ? # Fujitsu MB87030/MB89352 SCSI 655spc* at pcmcia? function ? # Fujitsu MB87030/MB89352 SCSI
655 656
656# CardBus SCSI cards 657# CardBus SCSI cards
657adv* at cardbus? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI 658adv* at cardbus? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI
658ahc* at cardbus? function ? # Adaptec ADP-1480 659ahc* at cardbus? function ? # Adaptec ADP-1480
659njs* at cardbus? function ? # Workbit NinjaSCSI-32 660njs* at cardbus? function ? # Workbit NinjaSCSI-32
660 661
661# SCSI bus support 662# SCSI bus support
662scsibus* at scsi? 663scsibus* at scsi?
663 664
664# SCSI devices 665# SCSI devices
665sd* at scsibus? target ? lun ? # SCSI disk drives 666sd* at scsibus? target ? lun ? # SCSI disk drives
666st* at scsibus? target ? lun ? # SCSI tape drives 667st* at scsibus? target ? lun ? # SCSI tape drives
667cd* at scsibus? target ? lun ? # SCSI CD-ROM drives 668cd* at scsibus? target ? lun ? # SCSI CD-ROM drives
668ch* at scsibus? target ? lun ? # SCSI autochangers 669ch* at scsibus? target ? lun ? # SCSI autochangers
669ses* at scsibus? target ? lun ? # SCSI Enclosure Services devices 670ses* at scsibus? target ? lun ? # SCSI Enclosure Services devices
670ss* at scsibus? target ? lun ? # SCSI scanners 671ss* at scsibus? target ? lun ? # SCSI scanners
671uk* at scsibus? target ? lun ? # SCSI unknown 672uk* at scsibus? target ? lun ? # SCSI unknown
672 673
673 674
674# RAID controllers and devices 675# RAID controllers and devices
675aac* at pci? dev ? function ? # Adaptec AAC family 676aac* at pci? dev ? function ? # Adaptec AAC family
676amr* at pci? dev ? function ? # AMI/LSI Logic MegaRAID 677amr* at pci? dev ? function ? # AMI/LSI Logic MegaRAID
677arcmsr* at pci? dev ? function ? # Areca SATA RAID controllers 678arcmsr* at pci? dev ? function ? # Areca SATA RAID controllers
678cac* at pci? dev ? function ? # Compaq PCI array controllers 679cac* at pci? dev ? function ? # Compaq PCI array controllers
679ciss* at pci? dev ? function ? # HP Smart Array controllers 680ciss* at pci? dev ? function ? # HP Smart Array controllers
680icp* at pci? dev ? function ? # ICP-Vortex GDT & Intel RAID 681icp* at pci? dev ? function ? # ICP-Vortex GDT & Intel RAID
681mlx* at pci? dev ? function ? # Mylex DAC960 & DEC SWXCR family 682mlx* at pci? dev ? function ? # Mylex DAC960 & DEC SWXCR family
682twe* at pci? dev ? function ? # 3ware Escalade RAID controllers 683twe* at pci? dev ? function ? # 3ware Escalade RAID controllers
683twa* at pci? dev ? function ? # 3ware Escalade 9xxx RAID controllers 684twa* at pci? dev ? function ? # 3ware Escalade 9xxx RAID controllers
684 685
685ld* at aac? unit ? 686ld* at aac? unit ?
686ld* at amr? unit ? 687ld* at amr? unit ?
687ld* at cac? unit ? 688ld* at cac? unit ?
688ld* at icp? unit ? 689ld* at icp? unit ?
689ld* at twe? unit ? 690ld* at twe? unit ?
690ld* at twa? unit ? 691ld* at twa? unit ?
691ld* at mlx? unit ? 692ld* at mlx? unit ?
692 693
693icpsp* at icp? unit ? # SCSI pass-through 694icpsp* at icp? unit ? # SCSI pass-through
694 695
695# IDE and related devices 696# IDE and related devices
696# PCI IDE controllers - see pciide(4) for supported hardware. 697# PCI IDE controllers - see pciide(4) for supported hardware.
697# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know 698# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
698# how to set up DMA modes for this chip. This may work, or may cause 699# how to set up DMA modes for this chip. This may work, or may cause
699# a machine hang with some controllers. 700# a machine hang with some controllers.
700pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver 701pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver
701acardide* at pci? dev ? function ? # Acard IDE controllers 702acardide* at pci? dev ? function ? # Acard IDE controllers
702aceride* at pci? dev ? function ? # Acer Lab IDE controllers 703aceride* at pci? dev ? function ? # Acer Lab IDE controllers
703ahcisata* at pci? dev ? function ? # AHCI SATA controllers 704ahcisata* at pci? dev ? function ? # AHCI SATA controllers
704artsata* at pci? dev ? function ? # Intel i31244 SATA controller 705artsata* at pci? dev ? function ? # Intel i31244 SATA controller
705cmdide* at pci? dev ? function ? # CMD tech IDE controllers 706cmdide* at pci? dev ? function ? # CMD tech IDE controllers
706cypide* at pci? dev ? function ? # Cypress IDE controllers 707cypide* at pci? dev ? function ? # Cypress IDE controllers
707hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers 708hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers
708iteide* at pci? dev ? function ? # IT Express IDE controllers 709iteide* at pci? dev ? function ? # IT Express IDE controllers
709ixpide* at pci? dev ? function ? # ATI IXP IDE controllers 710ixpide* at pci? dev ? function ? # ATI IXP IDE controllers
710jmide* at pci? dev ? function ? # JMicron PCI-e PATA/SATA controllers 711jmide* at pci? dev ? function ? # JMicron PCI-e PATA/SATA controllers
711ahcisata* at jmide? 712ahcisata* at jmide?
712mvsata* at pci? dev ? function ? # Marvell Hercules-I/II 713mvsata* at pci? dev ? function ? # Marvell Hercules-I/II
713optiide* at pci? dev ? function ? # Opti IDE controllers 714optiide* at pci? dev ? function ? # Opti IDE controllers
714piixide* at pci? dev ? function ? # Intel IDE controllers 715piixide* at pci? dev ? function ? # Intel IDE controllers
715pdcide* at pci? dev ? function ? # Promise IDE controllers 716pdcide* at pci? dev ? function ? # Promise IDE controllers
716pdcsata* at pci? dev ? function ? # Promise SATA150 controllers 717pdcsata* at pci? dev ? function ? # Promise SATA150 controllers
717satalink* at pci? dev ? function ? # SiI SATALink controllers 718satalink* at pci? dev ? function ? # SiI SATALink controllers
718siisata* at pci? dev ? function ? # SiI SteelVine controllers 719siisata* at pci? dev ? function ? # SiI SteelVine controllers
719siside* at pci? dev ? function ? # SiS IDE controllers 720siside* at pci? dev ? function ? # SiS IDE controllers
720slide* at pci? dev ? function ? # Symphony Labs IDE controllers 721slide* at pci? dev ? function ? # Symphony Labs IDE controllers
721svwsata* at pci? dev ? function ? # ServerWorks SATA controllers 722svwsata* at pci? dev ? function ? # ServerWorks SATA controllers
722toshide* at pci? dev ? function ? # TOSHIBA PICCOLO controllers 723toshide* at pci? dev ? function ? # TOSHIBA PICCOLO controllers
723viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers 724viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers
724 725
725# PCMCIA IDE controllers 726# PCMCIA IDE controllers
726wdc* at pcmcia? function ? 727wdc* at pcmcia? function ?
727 728
728# CardBus IDE controllers 729# CardBus IDE controllers
729njata* at cardbus? function ? flags 0x01 # Workbit NinjaATA-32 730njata* at cardbus? function ? flags 0x01 # Workbit NinjaATA-32
730siisata* at cardbus? function ? # SiI SteelVine controllers 731siisata* at cardbus? function ? # SiI SteelVine controllers
731 732
732# ISA ST506, ESDI, and IDE controllers 733# ISA ST506, ESDI, and IDE controllers
733# Use flags 0x01 if you want to try to use 32bits data I/O (the driver will 734# Use flags 0x01 if you want to try to use 32bits data I/O (the driver will
734# fall back to 16bits I/O if 32bits I/O are not functional). 735# fall back to 16bits I/O if 32bits I/O are not functional).
735# Some controllers pass the initial 32bit test, but will fail later. 736# Some controllers pass the initial 32bit test, but will fail later.
736wdc0 at isa? port 0x1f0 irq 14 flags 0x00 737wdc0 at isa? port 0x1f0 irq 14 flags 0x00
737wdc1 at isa? port 0x170 irq 15 flags 0x00 738wdc1 at isa? port 0x170 irq 15 flags 0x00
738 739
739# ATA (IDE) bus support 740# ATA (IDE) bus support
740atabus* at ata? 741atabus* at ata?
741options ATADEBUG 742options ATADEBUG
742 743
743# IDE drives 744# IDE drives
744# Flags are used only with controllers that support DMA operations 745# Flags are used only with controllers that support DMA operations
745# and mode settings (e.g. some pciide controllers) 746# and mode settings (e.g. some pciide controllers)
746# The lowest order four bits (rightmost digit) of the flags define the PIO 747# The lowest order four bits (rightmost digit) of the flags define the PIO
747# mode to use, the next set of four bits the DMA mode and the third set the 748# mode to use, the next set of four bits the DMA mode and the third set the
748# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode 749# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
749# to use, and the last bit must be 1 for this setting to be used. 750# to use, and the last bit must be 1 for this setting to be used.
750# For DMA and UDMA, 0xf (1111) means 'disable'. 751# For DMA and UDMA, 0xf (1111) means 'disable'.
751# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'. 752# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
752# (0xc=1100, 0xa=1010, 0xf=1111) 753# (0xc=1100, 0xa=1010, 0xf=1111)
753# 0x0000 means "use whatever the drive claims to support". 754# 0x0000 means "use whatever the drive claims to support".
754wd* at atabus? drive ? flags 0x0000 755wd* at atabus? drive ? flags 0x0000
755 756
756# ATAPI bus support 757# ATAPI bus support
757atapibus* at atapi? 758atapibus* at atapi?
758 759
759 760
760# ATA RAID configuration support, as found on some Promise controllers. 761# ATA RAID configuration support, as found on some Promise controllers.
761pseudo-device ataraid 762pseudo-device ataraid
762ld* at ataraid? vendtype ? unit ? 763ld* at ataraid? vendtype ? unit ?
763 764
764# ATAPI devices 765# ATAPI devices
765# flags have the same meaning as for IDE drives. 766# flags have the same meaning as for IDE drives.
766cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives 767cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives
767sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives 768sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives
768st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives 769st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives
769uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown 770uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown
770 771
771 772
772# NVM Express controllers and devices 773# NVM Express controllers and devices
773nvme* at pci? dev ? function ? 774nvme* at pci? dev ? function ?
774ld* at nvme? nsid ? 775ld* at nvme? nsid ?
775 776
776 777
777# Miscellaneous mass storage devices 778# Miscellaneous mass storage devices
778 779
779# ISA floppy 780# ISA floppy
780fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers 781fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers
781#fdc1 at isa? port 0x370 irq ? drq ? 782#fdc1 at isa? port 0x370 irq ? drq ?
782fd* at fdc? drive ? # the drives themselves 783fd* at fdc? drive ? # the drives themselves
783# some machines need you to do this instead of fd* 784# some machines need you to do this instead of fd*
784#fd0 at fdc0 drive 0 785#fd0 at fdc0 drive 0
785 786
786# Network Interfaces 787# Network Interfaces
787 788
788# PCI network interfaces 789# PCI network interfaces
789age* at pci? dev ? function ? # Attansic/Atheros L1 Gigabit Ethernet 790age* at pci? dev ? function ? # Attansic/Atheros L1 Gigabit Ethernet
790alc* at pci? dev ? function ? # Attansic/Atheros L1C/L2C Ethernet 791alc* at pci? dev ? function ? # Attansic/Atheros L1C/L2C Ethernet
791ale* at pci? dev ? function ? # Attansic/Atheros L1E Ethernet 792ale* at pci? dev ? function ? # Attansic/Atheros L1E Ethernet
792an* at pci? dev ? function ? # Aironet PC4500/PC4800 (802.11) 793an* at pci? dev ? function ? # Aironet PC4500/PC4800 (802.11)
793aq* at pci? dev ? function ? # Aquantia AQC 10 gigabit 794aq* at pci? dev ? function ? # Aquantia AQC 10 gigabit
794ath* at pci? dev ? function ? # Atheros 5210/5211/5212 802.11 795ath* at pci? dev ? function ? # Atheros 5210/5211/5212 802.11
795athn* at pci? dev ? function ? # Atheros AR9k (802.11a/g/n) 796athn* at pci? dev ? function ? # Atheros AR9k (802.11a/g/n)
796atw* at pci? dev ? function ? # ADMtek ADM8211 (802.11) 797atw* at pci? dev ? function ? # ADMtek ADM8211 (802.11)
797bce* at pci? dev ? function ? # Broadcom 440x 10/100 Ethernet 798bce* at pci? dev ? function ? # Broadcom 440x 10/100 Ethernet
798bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet 799bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet
799bnx* at pci? dev ? function ? # Broadcom NetXtremeII gigabit Ethernet 800bnx* at pci? dev ? function ? # Broadcom NetXtremeII gigabit Ethernet
800bwi* at pci? dev ? function ? # Broadcom BCM43xx wireless 801bwi* at pci? dev ? function ? # Broadcom BCM43xx wireless
801bwfm* at pci? dev ? function ? # Broadcom FullMAC 802bwfm* at pci? dev ? function ? # Broadcom FullMAC
802cas* at pci? dev ? function ? # Sun Cassini/Cassini+ Ethernet 803cas* at pci? dev ? function ? # Sun Cassini/Cassini+ Ethernet
803dge* at pci? dev ? function ? # Intel 82597 10GbE LR 804dge* at pci? dev ? function ? # Intel 82597 10GbE LR
804ena* at pci? dev ? function ? # Amazon.com Elastic Network Adapter 805ena* at pci? dev ? function ? # Amazon.com Elastic Network Adapter
805ep* at pci? dev ? function ? # 3Com 3c59x 806ep* at pci? dev ? function ? # 3Com 3c59x
806epic* at pci? dev ? function ? # SMC EPIC/100 Ethernet 807epic* at pci? dev ? function ? # SMC EPIC/100 Ethernet
807et* at pci? dev ? function ? # Agere/LSI ET1310/ET1301 Gigabit 808et* at pci? dev ? function ? # Agere/LSI ET1310/ET1301 Gigabit
808ex* at pci? dev ? function ? # 3Com 90x[BC] 809ex* at pci? dev ? function ? # 3Com 90x[BC]
809fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B 810fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B
810gem* at pci? dev ? function ? # Apple GMAC and Sun ERI gigabit enet 811gem* at pci? dev ? function ? # Apple GMAC and Sun ERI gigabit enet
811gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet 812gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
812hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ 813hme* at pci? dev ? function ? # Sun Microelectronics STP2002-STQ
813iavf* at pci? dev ? function ? # Intel Adaptive Virtual Function 814iavf* at pci? dev ? function ? # Intel Adaptive Virtual Function
814ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100 815ipw* at pci? dev ? function ? # Intel PRO/Wireless 2100
815iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG 816iwi* at pci? dev ? function ? # Intel PRO/Wireless 2200BG
816iwm* at pci? dev ? function ? # Intel Centrino 7260 817iwm* at pci? dev ? function ? # Intel Centrino 7260
817iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN 818iwn* at pci? dev ? function ? # Intel PRO/Wireless 4965AGN
818ixg* at pci? dev ? function ? # Intel 8259x 10 gigabit 819ixg* at pci? dev ? function ? # Intel 8259x 10 gigabit
819ixl* at pci? dev ? function ? # Intel Ethernet 700 Series 820ixl* at pci? dev ? function ? # Intel Ethernet 700 Series
820ixv* at pci? dev ? function ? # Intel 8259x 10G virtual function 821ixv* at pci? dev ? function ? # Intel 8259x 10G virtual function
821jme* at pci? dev ? function ? # JMicron JMC2[56]0 ethernet 822jme* at pci? dev ? function ? # JMicron JMC2[56]0 ethernet
822kse* at pci? dev ? function ? # Micrel KSZ8841/8842 ethernet 823kse* at pci? dev ? function ? # Micrel KSZ8841/8842 ethernet
823lii* at pci? dev ? function ? # Atheros L2 Fast-Ethernet 824lii* at pci? dev ? function ? # Atheros L2 Fast-Ethernet
824malo* at pci? dev ? function ? # Marvell Libertas Wireless 825malo* at pci? dev ? function ? # Marvell Libertas Wireless
825mcx* at pci? dev ? function ? # Mellanox 5th generation Ethernet 826mcx* at pci? dev ? function ? # Mellanox 5th generation Ethernet
826mskc* at pci? dev ? function ? # Marvell Yukon 2 Gigabit Ethernet 827mskc* at pci? dev ? function ? # Marvell Yukon 2 Gigabit Ethernet
827msk* at mskc? # Marvell Yukon 2 Gigabit Ethernet 828msk* at mskc? # Marvell Yukon 2 Gigabit Ethernet
828mtd* at pci? dev ? function ? # Myson MTD803 3-in-1 Ethernet 829mtd* at pci? dev ? function ? # Myson MTD803 3-in-1 Ethernet
829ne* at pci? dev ? function ? # NE2000-compatible Ethernet 830ne* at pci? dev ? function ? # NE2000-compatible Ethernet
830nfe* at pci? dev ? function ? # NVIDIA nForce Ethernet 831nfe* at pci? dev ? function ? # NVIDIA nForce Ethernet
831ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial 832ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial
832pcn* at pci? dev ? function ? # AMD PCnet-PCI Ethernet 833pcn* at pci? dev ? function ? # AMD PCnet-PCI Ethernet
833ral* at pci? dev ? function ? # Ralink Technology RT25x0 802.11a/b/g 834ral* at pci? dev ? function ? # Ralink Technology RT25x0 802.11a/b/g
834re* at pci? dev ? function ? # Realtek 8139C+/8169/8169S/8110S 835re* at pci? dev ? function ? # Realtek 8139C+/8169/8169S/8110S
835rtk* at pci? dev ? function ? # Realtek 8129/8139 836rtk* at pci? dev ? function ? # Realtek 8129/8139
836rtw* at pci? dev ? function ? # Realtek 8180L (802.11) 837rtw* at pci? dev ? function ? # Realtek 8180L (802.11)
837rtwn* at pci? dev ? function ? # Realtek 8188CE/8192CE 802.11b/g/n 838rtwn* at pci? dev ? function ? # Realtek 8188CE/8192CE 802.11b/g/n
838sf* at pci? dev ? function ? # Adaptec AIC-6915 Ethernet 839sf* at pci? dev ? function ? # Adaptec AIC-6915 Ethernet
839sip* at pci? dev ? function ? # SiS 900/DP83815 Ethernet 840sip* at pci? dev ? function ? # SiS 900/DP83815 Ethernet
840skc* at pci? dev ? function ? # SysKonnect SK9821 Gigabit Ethernet 841skc* at pci? dev ? function ? # SysKonnect SK9821 Gigabit Ethernet
841sk* at skc? # SysKonnect SK9821 Gigabit Ethernet 842sk* at skc? # SysKonnect SK9821 Gigabit Ethernet
842ste* at pci? dev ? function ? # Sundance ST-201 Ethernet 843ste* at pci? dev ? function ? # Sundance ST-201 Ethernet
843stge* at pci? dev ? function ? # Sundance/Tamarack TC9021 Gigabit 844stge* at pci? dev ? function ? # Sundance/Tamarack TC9021 Gigabit
844ti* at pci? dev ? function ? # Alteon ACEnic gigabit Ethernet 845ti* at pci? dev ? function ? # Alteon ACEnic gigabit Ethernet
845tl* at pci? dev ? function ? # ThunderLAN-based Ethernet 846tl* at pci? dev ? function ? # ThunderLAN-based Ethernet
846tlp* at pci? dev ? function ? # DECchip 21x4x and clones 847tlp* at pci? dev ? function ? # DECchip 21x4x and clones
847txp* at pci? dev ? function ? # 3com 3cr990 848txp* at pci? dev ? function ? # 3com 3cr990
848vge* at pci? dev ? function ? # VIATech VT612X Gigabit Ethernet 849vge* at pci? dev ? function ? # VIATech VT612X Gigabit Ethernet
849vmx* at pci? dev ? function ? # VMware VMXNET3 850vmx* at pci? dev ? function ? # VMware VMXNET3
850vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet 851vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet
851wi* at pci? dev ? function ? # Intersil Prism Mini-PCI (802.11b) 852wi* at pci? dev ? function ? # Intersil Prism Mini-PCI (802.11b)
852wm* at pci? dev ? function ? # Intel 82543/82544 gigabit 853wm* at pci? dev ? function ? # Intel 82543/82544 gigabit
853wpi* at pci? dev ? function ? # Intel PRO/Wireless 3945ABG 854wpi* at pci? dev ? function ? # Intel PRO/Wireless 3945ABG
854xge* at pci? dev ? function ? # Neterion (S2io) Xframe-I 10GbE 855xge* at pci? dev ? function ? # Neterion (S2io) Xframe-I 10GbE
855 856
856# PCMCIA network interfaces 857# PCMCIA network interfaces
857an* at pcmcia? function ? # Aironet PC4500/PC4800 (802.11) 858an* at pcmcia? function ? # Aironet PC4500/PC4800 (802.11)
858awi* at pcmcia? function ? # BayStack 650/660 (802.11FH/DS) 859awi* at pcmcia? function ? # BayStack 650/660 (802.11FH/DS)
859cnw* at pcmcia? function ? # Xircom/Netwave AirSurfer 860cnw* at pcmcia? function ? # Xircom/Netwave AirSurfer
860cs* at pcmcia? function ? # CS89xx Ethernet 861cs* at pcmcia? function ? # CS89xx Ethernet
861ep* at pcmcia? function ? # 3Com 3c589 and 3c562 Ethernet 862ep* at pcmcia? function ? # 3Com 3c589 and 3c562 Ethernet
862malo* at pcmcia? function ? # Marvell Libertas 863malo* at pcmcia? function ? # Marvell Libertas
863mbe* at pcmcia? function ? # MB8696x based Ethernet 864mbe* at pcmcia? function ? # MB8696x based Ethernet
864ne* at pcmcia? function ? # NE2000-compatible Ethernet 865ne* at pcmcia? function ? # NE2000-compatible Ethernet
865ray* at pcmcia? function ? # Raytheon Raylink (802.11) 866ray* at pcmcia? function ? # Raytheon Raylink (802.11)
866sm* at pcmcia? function ? # Megahertz Ethernet 867sm* at pcmcia? function ? # Megahertz Ethernet
867wi* at pcmcia? function ? # Lucent/Intersil WaveLan IEEE (802.11) 868wi* at pcmcia? function ? # Lucent/Intersil WaveLan IEEE (802.11)
868xirc* at pcmcia? function ? # Xircom CreditCard Ethernet 869xirc* at pcmcia? function ? # Xircom CreditCard Ethernet
869com* at xirc? 870com* at xirc?
870xi* at xirc? 871xi* at xirc?
871 872
872mhzc* at pcmcia? function ? # Megahertz Ethernet/Modem combo cards 873mhzc* at pcmcia? function ? # Megahertz Ethernet/Modem combo cards
873com* at mhzc? 874com* at mhzc?
874sm* at mhzc? 875sm* at mhzc?
875 876
876# CardBus network cards 877# CardBus network cards
877ath* at cardbus? function ? # Atheros 5210/5211/5212 802.11 878ath* at cardbus? function ? # Atheros 5210/5211/5212 802.11
878athn* at cardbus? function ? # Atheros AR9k (802.11a/g/n) - UNTESTED 879athn* at cardbus? function ? # Atheros AR9k (802.11a/g/n) - UNTESTED
879atw* at cardbus? function ? # ADMtek ADM8211 (802.11) 880atw* at cardbus? function ? # ADMtek ADM8211 (802.11)
880ex* at cardbus? function ? # 3Com 3C575TX 881ex* at cardbus? function ? # 3Com 3C575TX
881fxp* at cardbus? function ? # Intel i8255x 882fxp* at cardbus? function ? # Intel i8255x
882malo* at cardbus? function ? # Marvell Libertas Wireless 883malo* at cardbus? function ? # Marvell Libertas Wireless
883ral* at cardbus? function ? # Ralink Technology RT25x0 802.11a/b/g 884ral* at cardbus? function ? # Ralink Technology RT25x0 802.11a/b/g
884re* at cardbus? function ? # Realtek 8139C+/8169/8169S/8110S 885re* at cardbus? function ? # Realtek 8139C+/8169/8169S/8110S
885rtk* at cardbus? function ? # Realtek 8129/8139 886rtk* at cardbus? function ? # Realtek 8129/8139
886rtw* at cardbus? function ? # Realtek 8180L (802.11) 887rtw* at cardbus? function ? # Realtek 8180L (802.11)
887tlp* at cardbus? function ? # DECchip 21143 888tlp* at cardbus? function ? # DECchip 21143
888 889
889# MII/PHY support 890# MII/PHY support
890acphy* at mii? phy ? # DAltima AC101 and AMD Am79c874 PHYs 891acphy* at mii? phy ? # DAltima AC101 and AMD Am79c874 PHYs
891amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs 892amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs
892atphy* at mii? phy ? # Attansic/Atheros PHYs 893atphy* at mii? phy ? # Attansic/Atheros PHYs
893bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs 894bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs
894brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs 895brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs
895ciphy* at mii? phy ? # Cicada CS8201 Gig-E PHYs 896ciphy* at mii? phy ? # Cicada CS8201 Gig-E PHYs
896dmphy* at mii? phy ? # Davicom DM9101 PHYs 897dmphy* at mii? phy ? # Davicom DM9101 PHYs
897etphy* at mii? phy ? # Agere/LSI ET1011 TruePHY Gig-E PHYs 898etphy* at mii? phy ? # Agere/LSI ET1011 TruePHY Gig-E PHYs
898exphy* at mii? phy ? # 3Com internal PHYs 899exphy* at mii? phy ? # 3Com internal PHYs
899gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs 900gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs
900glxtphy* at mii? phy ? # Level One LXT-1000 PHYs 901glxtphy* at mii? phy ? # Level One LXT-1000 PHYs
901gphyter* at mii? phy ? # NS83861 Gig-E PHY 902gphyter* at mii? phy ? # NS83861 Gig-E PHY
902icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x 903icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x
903igphy* at mii? phy ? # Intel IGP01E1000 904igphy* at mii? phy ? # Intel IGP01E1000
904ihphy* at mii? phy ? # Intel 82577 PHYs 905ihphy* at mii? phy ? # Intel 82577 PHYs
905ikphy* at mii? phy ? # Intel 82563 PHYs 906ikphy* at mii? phy ? # Intel 82563 PHYs
906inphy* at mii? phy ? # Intel 82555 PHYs 907inphy* at mii? phy ? # Intel 82555 PHYs
907iophy* at mii? phy ? # Intel 82553 PHYs 908iophy* at mii? phy ? # Intel 82553 PHYs
908ipgphy* at mii? phy ? # IC PLUS IP1000A/IP1001 PHYs 909ipgphy* at mii? phy ? # IC PLUS IP1000A/IP1001 PHYs
909jmphy* at mii? phy ? # Jmicron JMP202/211 PHYs 910jmphy* at mii? phy ? # Jmicron JMP202/211 PHYs
910lxtphy* at mii? phy ? # Level One LXT-970 PHYs 911lxtphy* at mii? phy ? # Level One LXT-970 PHYs
911makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs 912makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs
912nsphy* at mii? phy ? # NS83840 PHYs 913nsphy* at mii? phy ? # NS83840 PHYs
913nsphyter* at mii? phy ? # NS83843 PHYs 914nsphyter* at mii? phy ? # NS83843 PHYs
914pnaphy* at mii? phy ? # generic HomePNA PHYs 915pnaphy* at mii? phy ? # generic HomePNA PHYs
915qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs 916qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs
916rgephy* at mii? phy ? # Realtek 8169S/8110 internal PHYs 917rgephy* at mii? phy ? # Realtek 8169S/8110 internal PHYs
917rlphy* at mii? phy ? # Realtek 8139/8201L PHYs 918rlphy* at mii? phy ? # Realtek 8139/8201L PHYs
918smscphy* at mii? phy ? # SMSC LAN87xx PHYs 919smscphy* at mii? phy ? # SMSC LAN87xx PHYs
919sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs 920sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs
920tlphy* at mii? phy ? # ThunderLAN PHYs 921tlphy* at mii? phy ? # ThunderLAN PHYs
921tqphy* at mii? phy ? # TDK Semiconductor PHYs 922tqphy* at mii? phy ? # TDK Semiconductor PHYs
922ukphy* at mii? phy ? # generic unknown PHYs 923ukphy* at mii? phy ? # generic unknown PHYs
923urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs 924urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs
924 925
925 926
926# USB Controller and Devices 927# USB Controller and Devices
927 928
928# Virtual USB controller 929# Virtual USB controller
929#pseudo-device vhci 930#pseudo-device vhci
930 931
931# PCI USB controllers 932# PCI USB controllers
932xhci* at pci? dev ? function ? # eXtensible Host Controller 933xhci* at pci? dev ? function ? # eXtensible Host Controller
933ehci* at pci? dev ? function ? # Enhanced Host Controller 934ehci* at pci? dev ? function ? # Enhanced Host Controller
934ohci* at pci? dev ? function ? # Open Host Controller 935ohci* at pci? dev ? function ? # Open Host Controller
935uhci* at pci? dev ? function ? # Universal Host Controller (Intel) 936uhci* at pci? dev ? function ? # Universal Host Controller (Intel)
936 937
937# CardBus USB controllers 938# CardBus USB controllers
938ehci* at cardbus? function ? # Enhanced Host Controller 939ehci* at cardbus? function ? # Enhanced Host Controller
939ohci* at cardbus? function ? # Open Host Controller 940ohci* at cardbus? function ? # Open Host Controller
940uhci* at cardbus? function ? # Universal Host Controller (Intel) 941uhci* at cardbus? function ? # Universal Host Controller (Intel)
941 942
942# ISA USB controllers 943# ISA USB controllers
943#slhci0 at isa? port 0x300 irq 5 # ScanLogic SL811HS 944#slhci0 at isa? port 0x300 irq 5 # ScanLogic SL811HS
944 945
945# PCMCIA USB controllers 946# PCMCIA USB controllers
946slhci* at pcmcia? function ? # ScanLogic SL811HS 947slhci* at pcmcia? function ? # ScanLogic SL811HS
947 948
948# USB bus support 949# USB bus support
949#usb* at vhci? 950#usb* at vhci?
950usb* at xhci? 951usb* at xhci?
951usb* at ehci? 952usb* at ehci?
952usb* at ohci? 953usb* at ohci?
953usb* at uhci? 954usb* at uhci?
954usb* at slhci? 955usb* at slhci?
955 956
956include "dev/usb/usbdevices.config" 957include "dev/usb/usbdevices.config"
957 958
958# PCI IEEE1394 controllers 959# PCI IEEE1394 controllers
959fwohci* at pci? dev ? function ? # IEEE1394 Open Host Controller 960fwohci* at pci? dev ? function ? # IEEE1394 Open Host Controller
960 961
961# CardBus IEEE1394 controllers 962# CardBus IEEE1394 controllers
962fwohci* at cardbus? function ? # IEEE1394 Open Host Controller 963fwohci* at cardbus? function ? # IEEE1394 Open Host Controller
963 964
964ieee1394if* at fwohci? 965ieee1394if* at fwohci?
965fwip* at ieee1394if? # IP over IEEE1394 966fwip* at ieee1394if? # IP over IEEE1394
966sbp* at ieee1394if? euihi ? euilo ? 967sbp* at ieee1394if? euihi ? euilo ?
967 968
968# Audio Devices 969# Audio Devices
969 970
970# PCI audio devices 971# PCI audio devices
971auacer* at pci? dev ? function ? # ALi M5455 integrated AC'97 Audio 972auacer* at pci? dev ? function ? # ALi M5455 integrated AC'97 Audio
972auich* at pci? dev ? function ? # Intel/AMD/nVidia AC'97 Audio 973auich* at pci? dev ? function ? # Intel/AMD/nVidia AC'97 Audio
973auixp* at pci? dev ? function ? # ATI IXP AC'97 Audio 974auixp* at pci? dev ? function ? # ATI IXP AC'97 Audio
974autri* at pci? dev ? function ? # Trident 4DWAVE based AC'97 Audio 975autri* at pci? dev ? function ? # Trident 4DWAVE based AC'97 Audio
975auvia* at pci? dev ? function ? # VIA AC'97 audio 976auvia* at pci? dev ? function ? # VIA AC'97 audio
976clcs* at pci? dev ? function ? # Cirrus Logic CS4280 977clcs* at pci? dev ? function ? # Cirrus Logic CS4280
977clct* at pci? dev ? function ? # Cirrus Logic CS4281 978clct* at pci? dev ? function ? # Cirrus Logic CS4281
978cmpci* at pci? dev ? function ? # C-Media CMI8338/8738 979cmpci* at pci? dev ? function ? # C-Media CMI8338/8738
979eap* at pci? dev ? function ? # Ensoniq AudioPCI 980eap* at pci? dev ? function ? # Ensoniq AudioPCI
980emuxki* at pci? dev ? function ? # Creative SBLive! and PCI512 981emuxki* at pci? dev ? function ? # Creative SBLive! and PCI512
981esa* at pci? dev ? function ? # ESS Allegro-1 / Maestro-3 PCI Audio 982esa* at pci? dev ? function ? # ESS Allegro-1 / Maestro-3 PCI Audio
982esm* at pci? dev ? function ? # ESS Maestro-1/2/2e PCI Audio Accelerator 983esm* at pci? dev ? function ? # ESS Maestro-1/2/2e PCI Audio Accelerator
983eso* at pci? dev ? function ? # ESS Solo-1 PCI AudioDrive 984eso* at pci? dev ? function ? # ESS Solo-1 PCI AudioDrive
984fms* at pci? dev ? function ? # Forte Media FM801 985fms* at pci? dev ? function ? # Forte Media FM801
985neo* at pci? dev ? function ? # NeoMagic 256 AC'97 Audio 986neo* at pci? dev ? function ? # NeoMagic 256 AC'97 Audio
986sv* at pci? dev ? function ? # S3 SonicVibes 987sv* at pci? dev ? function ? # S3 SonicVibes
987yds* at pci? dev ? function ? # Yamaha DS-1 PCI Audio 988yds* at pci? dev ? function ? # Yamaha DS-1 PCI Audio
988 989
989# OPL[23] FM synthesizers 990# OPL[23] FM synthesizers
990#opl0 at isa? port 0x388 # use only if not attached to sound card 991#opl0 at isa? port 0x388 # use only if not attached to sound card
991opl* at cmpci? flags 1 992opl* at cmpci? flags 1
992opl* at eso? 993opl* at eso?
993opl* at fms? 994opl* at fms?
994opl* at sv? 995opl* at sv?
995 996
996# High Definition Audio 997# High Definition Audio
997hdaudio* at pci? dev ? function ? # High Definition Audio 998hdaudio* at pci? dev ? function ? # High Definition Audio
998hdafg* at hdaudiobus? 999hdafg* at hdaudiobus?
999 1000
1000# Audio support 1001# Audio support
1001audio* at audiobus? 1002audio* at audiobus?
1002 1003
1003# The spkr driver provides a simple tone interface to the built in speaker. 1004# The spkr driver provides a simple tone interface to the built in speaker.
1004spkr* at pcppi? # PC speaker 1005spkr* at pcppi? # PC speaker
1005spkr* at audio? # PC speaker (synthesized) 1006spkr* at audio? # PC speaker (synthesized)
1006#wsbell* at spkr? # Bell for wscons display (module by default) 1007#wsbell* at spkr? # Bell for wscons display (module by default)
1007 1008
1008# MPU 401 UARTs 1009# MPU 401 UARTs
1009#mpu* at isa? port 0x330 irq 9 # MPU401 or compatible card 1010#mpu* at isa? port 0x330 irq 9 # MPU401 or compatible card
1010mpu* at cmpci? 1011mpu* at cmpci?
1011mpu* at eso? 1012mpu* at eso?
1012mpu* at yds? 1013mpu* at yds?
1013 1014
1014# MIDI support 1015# MIDI support
1015midi* at midibus? 1016midi* at midibus?
1016midi* at pcppi? # MIDI interface to the PC speaker 1017midi* at pcppi? # MIDI interface to the PC speaker
1017 1018
1018# FM-Radio devices 1019# FM-Radio devices
1019# PCI radio devices 1020# PCI radio devices
1020#gtp* at pci? dev ? function ? # Guillemot Maxi Radio FM 2000 Radio Card 1021#gtp* at pci? dev ? function ? # Guillemot Maxi Radio FM 2000 Radio Card
1021 1022
1022# Radio support 1023# Radio support
1023#radio* at gtp? 1024#radio* at gtp?
1024 1025
1025 1026
1026# Video capture devices 1027# Video capture devices
1027 1028
1028coram* at pci? dev ? function ? # Conexant CX23885 PCI-E TV 1029coram* at pci? dev ? function ? # Conexant CX23885 PCI-E TV
1029cxdtv* at pci? dev ? function ? # Conexant CX2388[0-3] PCI TV 1030cxdtv* at pci? dev ? function ? # Conexant CX2388[0-3] PCI TV
1030 1031
1031video* at videobus? # Analog capture interface 1032video* at videobus? # Analog capture interface
1032dtv* at dtvbus? # Digital capture interface 1033dtv* at dtvbus? # Digital capture interface
1033 1034
1034 1035
1035# TV cards 1036# TV cards
1036 1037
1037# Brooktree 848/849/878/879 based TV cards 1038# Brooktree 848/849/878/879 based TV cards
1038bktr* at pci? dev ? function ? 1039bktr* at pci? dev ? function ?
1039radio* at bktr? 1040radio* at bktr?
1040 1041
1041 1042
1042# Bluetooth Controller and Device support 1043# Bluetooth Controller and Device support
1043 1044
1044# Bluetooth PCMCIA Controllers 1045# Bluetooth PCMCIA Controllers
1045bt3c* at pcmcia? function ? # 3Com 3CRWB6096-A 1046bt3c* at pcmcia? function ? # 3Com 3CRWB6096-A
1046btbc* at pcmcia? function ? # AnyCom BlueCard LSE041/039/139 1047btbc* at pcmcia? function ? # AnyCom BlueCard LSE041/039/139
1047 1048
1048# Bluetooth SDIO Controllers 1049# Bluetooth SDIO Controllers
1049sbt* at sdmmc? 1050sbt* at sdmmc?
1050 1051
1051# Bluetooth USB Controllers 1052# Bluetooth USB Controllers
1052ubt* at uhub? port ? 1053ubt* at uhub? port ?
1053aubtfwl* at uhub? port ? 1054aubtfwl* at uhub? port ?
1054 1055
1055# Bluetooth Device Hub 1056# Bluetooth Device Hub
1056bthub* at bcsp? 1057bthub* at bcsp?
1057bthub* at bt3c? 1058bthub* at bt3c?
1058bthub* at btbc? 1059bthub* at btbc?
1059bthub* at btuart? 1060bthub* at btuart?
1060bthub* at sbt? 1061bthub* at sbt?
1061bthub* at ubt? 1062bthub* at ubt?
1062 1063
1063# Bluetooth HID support 1064# Bluetooth HID support
1064bthidev* at bthub? 1065bthidev* at bthub?
1065 1066
1066# Bluetooth Mouse 1067# Bluetooth Mouse
1067btms* at bthidev? reportid ? 1068btms* at bthidev? reportid ?
1068wsmouse* at btms? mux 0 1069wsmouse* at btms? mux 0
1069 1070
1070# Bluetooth Keyboard 1071# Bluetooth Keyboard
1071btkbd* at bthidev? reportid ? 1072btkbd* at bthidev? reportid ?
1072wskbd* at btkbd? console ? mux 1 1073wskbd* at btkbd? console ? mux 1
1073 1074
1074# Bluetooth Apple Magic Mouse 1075# Bluetooth Apple Magic Mouse
1075btmagic* at bthub? 1076btmagic* at bthub?
1076wsmouse* at btmagic? mux 0 1077wsmouse* at btmagic? mux 0
1077 1078
1078# Bluetooth Audio support 1079# Bluetooth Audio support
1079btsco* at bthub? 1080btsco* at bthub?
1080 1081
1081 1082
1082# SD/MMC/SDIO Controller and Device support 1083# SD/MMC/SDIO Controller and Device support
1083 1084
1084# SD/MMC controller 1085# SD/MMC controller
1085sdhc* at pci? # SD Host Controller 1086sdhc* at pci? # SD Host Controller
1086rtsx* at pci? # Realtek RTS5209/RTS5229 Card Reader 1087rtsx* at pci? # Realtek RTS5209/RTS5229 Card Reader
1087sdhc* at cardbus? # SD Host Controller 1088sdhc* at cardbus? # SD Host Controller
1088sdmmc* at sdhc? # SD/MMC bus 1089sdmmc* at sdhc? # SD/MMC bus
1089sdmmc* at rtsx? # SD/MMC bus 1090sdmmc* at rtsx? # SD/MMC bus
1090 1091
1091ld* at sdmmc? 1092ld* at sdmmc?
1092 1093
1093 1094
1094# Middle Digital, Inc. PCI-Weasel serial console board control 1095# Middle Digital, Inc. PCI-Weasel serial console board control
1095# devices (watchdog timer, etc.) 1096# devices (watchdog timer, etc.)
1096weasel* at pci? 1097weasel* at pci?
1097 1098
1098# Virtio devices 1099# Virtio devices
1099virtio* at pci? dev ? function ? # Virtio PCI device 1100virtio* at pci? dev ? function ? # Virtio PCI device
1100viomb* at virtio? # Virtio memory balloon device 1101viomb* at virtio? # Virtio memory balloon device
1101ld* at virtio? # Virtio disk device 1102ld* at virtio? # Virtio disk device
1102vioif* at virtio? # Virtio network device 1103vioif* at virtio? # Virtio network device
1103viornd* at virtio? # Virtio entropy device 1104viornd* at virtio? # Virtio entropy device
1104vioscsi* at virtio? # Virtio SCSI device 1105vioscsi* at virtio? # Virtio SCSI device
1105#vio9p* at virtio? # Virtio 9P device 1106#vio9p* at virtio? # Virtio 9P device
1106 1107
1107# Hyper-V devices 1108# Hyper-V devices
1108vmbus* at acpi? # Hyper-V VMBus 1109vmbus* at acpi? # Hyper-V VMBus
1109genfb* at vmbus? # Hyper-V Synthetic Video Framebuffer 1110genfb* at vmbus? # Hyper-V Synthetic Video Framebuffer
1110hvkbd* at vmbus? # Hyper-V Synthetic Keyboard 1111hvkbd* at vmbus? # Hyper-V Synthetic Keyboard
1111wskbd* at hvkbd? console ? mux 1 1112wskbd* at hvkbd? console ? mux 1
1112hvn* at vmbus? # Hyper-V NetVSC 1113hvn* at vmbus? # Hyper-V NetVSC
1113hvs* at vmbus? # Hyper-V StorVSC 1114hvs* at vmbus? # Hyper-V StorVSC
1114hvheartbeat* at vmbus? # Hyper-V Heartbeat Service 1115hvheartbeat* at vmbus? # Hyper-V Heartbeat Service
1115hvshutdown* at vmbus? # Hyper-V Guest Shutdown Service 1116hvshutdown* at vmbus? # Hyper-V Guest Shutdown Service
1116hvtimesync* at vmbus? # Hyper-V Time Synchronization Service 1117hvtimesync* at vmbus? # Hyper-V Time Synchronization Service
1117#hvkvp* at vmbus? # Hyper-V Data Exchange Service 1118#hvkvp* at vmbus? # Hyper-V Data Exchange Service
1118 1119
1119# Pull in optional local configuration 1120# Pull in optional local configuration
1120cinclude "arch/amd64/conf/GENERIC.local" 1121cinclude "arch/amd64/conf/GENERIC.local"
1121 1122
1122 1123
1123# Pseudo-Devices 1124# Pseudo-Devices
1124 1125
1125pseudo-device crypto # /dev/crypto device 1126pseudo-device crypto # /dev/crypto device
1126pseudo-device swcrypto # software crypto implementation 1127pseudo-device swcrypto # software crypto implementation
1127 1128
1128# disk/mass storage pseudo-devices 1129# disk/mass storage pseudo-devices
1129pseudo-device bio # RAID control device driver 1130pseudo-device bio # RAID control device driver
1130pseudo-device ccd # concatenated/striped disk devices 1131pseudo-device ccd # concatenated/striped disk devices
1131pseudo-device cgd # cryptographic disk devices 1132pseudo-device cgd # cryptographic disk devices
1132pseudo-device raid # RAIDframe disk driver 1133pseudo-device raid # RAIDframe disk driver
1133options RAID_AUTOCONFIG # auto-configuration of RAID components 1134options RAID_AUTOCONFIG # auto-configuration of RAID components
1134#Options to enable various other RAIDframe RAID types. 1135#Options to enable various other RAIDframe RAID types.
1135#options RF_INCLUDE_EVENODD=1 1136#options RF_INCLUDE_EVENODD=1
1136#options RF_INCLUDE_RAID5_RS=1 1137#options RF_INCLUDE_RAID5_RS=1
1137#options RF_INCLUDE_PARITYLOGGING=1 1138#options RF_INCLUDE_PARITYLOGGING=1
1138#options RF_INCLUDE_CHAINDECLUSTER=1 1139#options RF_INCLUDE_CHAINDECLUSTER=1
1139#options RF_INCLUDE_INTERDECLUSTER=1 1140#options RF_INCLUDE_INTERDECLUSTER=1
1140#options RF_INCLUDE_PARITY_DECLUSTERING=1 1141#options RF_INCLUDE_PARITY_DECLUSTERING=1
1141#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1 1142#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1
1142pseudo-device fss # file system snapshot device 1143pseudo-device fss # file system snapshot device
1143 1144
1144pseudo-device md # memory disk device (ramdisk) 1145pseudo-device md # memory disk device (ramdisk)
1145options MEMORY_DISK_HOOKS # enable md specific hooks 1146options MEMORY_DISK_HOOKS # enable md specific hooks
1146options MEMORY_DISK_DYNAMIC # enable dynamic resizing 1147options MEMORY_DISK_DYNAMIC # enable dynamic resizing
1147 1148
1148pseudo-device vnd # disk-like interface to files 1149pseudo-device vnd # disk-like interface to files
1149options VND_COMPRESSION # compressed vnd(4) 1150options VND_COMPRESSION # compressed vnd(4)
1150 1151
1151 1152
1152# network pseudo-devices 1153# network pseudo-devices
1153pseudo-device bpfilter # Berkeley packet filter 1154pseudo-device bpfilter # Berkeley packet filter
1154pseudo-device carp # Common Address Redundancy Protocol 1155pseudo-device carp # Common Address Redundancy Protocol
1155pseudo-device loop # network loopback 1156pseudo-device loop # network loopback
1156#pseudo-device mpls # MPLS pseudo-interface 1157#pseudo-device mpls # MPLS pseudo-interface
1157pseudo-device ppp # Point-to-Point Protocol 1158pseudo-device ppp # Point-to-Point Protocol
1158pseudo-device pppoe # PPP over Ethernet (RFC 2516) 1159pseudo-device pppoe # PPP over Ethernet (RFC 2516)
1159pseudo-device sl # Serial Line IP 1160pseudo-device sl # Serial Line IP
1160pseudo-device irframetty # IrDA frame line discipline 1161pseudo-device irframetty # IrDA frame line discipline
1161pseudo-device tun # network tunneling over tty 1162pseudo-device tun # network tunneling over tty
1162pseudo-device tap # virtual Ethernet 1163pseudo-device tap # virtual Ethernet
1163pseudo-device gre # generic L3 over IP tunnel 1164pseudo-device gre # generic L3 over IP tunnel
1164pseudo-device gif # IPv[46] over IPv[46] tunnel (RFC1933) 1165pseudo-device gif # IPv[46] over IPv[46] tunnel (RFC1933)
1165pseudo-device ipsecif # tunnel interface for routing based ipsec 1166pseudo-device ipsecif # tunnel interface for routing based ipsec
1166#pseudo-device faith # IPv[46] tcp relay translation i/f 1167#pseudo-device faith # IPv[46] tcp relay translation i/f
1167pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation 1168pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation
1168pseudo-device vlan # IEEE 802.1q encapsulation 1169pseudo-device vlan # IEEE 802.1q encapsulation
1169pseudo-device bridge # simple inter-network bridging 1170pseudo-device bridge # simple inter-network bridging
1170pseudo-device vether # Virtual Ethernet for bridge 1171pseudo-device vether # Virtual Ethernet for bridge
1171pseudo-device agr # IEEE 802.3ad link aggregation 1172pseudo-device agr # IEEE 802.3ad link aggregation
1172pseudo-device l2tp # L2TPv3 interface 1173pseudo-device l2tp # L2TPv3 interface
1173pseudo-device npf # NPF packet filter 1174pseudo-device npf # NPF packet filter
1174 1175
1175#pseudo-device canloop # CAN loopback interface 1176#pseudo-device canloop # CAN loopback interface
1176 1177
1177# 1178#
1178# accept filters 1179# accept filters
1179pseudo-device accf_data # "dataready" accept filter 1180pseudo-device accf_data # "dataready" accept filter
1180pseudo-device accf_http # "httpready" accept filter 1181pseudo-device accf_http # "httpready" accept filter
1181 1182
1182# miscellaneous pseudo-devices 1183# miscellaneous pseudo-devices
1183pseudo-device pty # pseudo-terminals 1184pseudo-device pty # pseudo-terminals
1184pseudo-device sequencer # MIDI sequencer 1185pseudo-device sequencer # MIDI sequencer
1185# rnd works; RND_COM does not on port i386 yet. 1186# rnd works; RND_COM does not on port i386 yet.
1186#options RND_COM # use "com" randomness as well (BROKEN) 1187#options RND_COM # use "com" randomness as well (BROKEN)
1187pseudo-device clockctl # user control of clock subsystem 1188pseudo-device clockctl # user control of clock subsystem
1188pseudo-device ksyms # /dev/ksyms 1189pseudo-device ksyms # /dev/ksyms
1189pseudo-device lockstat # lock profiling 1190pseudo-device lockstat # lock profiling
1190pseudo-device bcsp # BlueCore Serial Protocol 1191pseudo-device bcsp # BlueCore Serial Protocol
1191pseudo-device btuart # Bluetooth HCI UART (H4) 1192pseudo-device btuart # Bluetooth HCI UART (H4)
1192#pseudo-device nvmm # NetBSD Virtual Machine Monitor 1193#pseudo-device nvmm # NetBSD Virtual Machine Monitor
1193 1194
1194# wscons pseudo-devices 1195# wscons pseudo-devices
1195pseudo-device wsmux # mouse & keyboard multiplexor 1196pseudo-device wsmux # mouse & keyboard multiplexor
1196pseudo-device wsfont 1197pseudo-device wsfont
1197# Give us a choice of fonts based on monitor size 1198# Give us a choice of fonts based on monitor size
1198options FONT_BOLD8x16 1199options FONT_BOLD8x16
1199options FONT_BOLD16x32 1200options FONT_BOLD16x32
1200 1201
1201# pseudo audio device driver 1202# pseudo audio device driver
1202pseudo-device pad 1203pseudo-device pad
1203 1204
1204# userland interface to drivers, including autoconf and properties retrieval 1205# userland interface to drivers, including autoconf and properties retrieval
1205pseudo-device drvctl 1206pseudo-device drvctl
1206 1207
1207include "dev/veriexec.config" 1208include "dev/veriexec.config"
1208 1209
1209options PAX_SEGVGUARD=0 # PaX Segmentation fault guard 1210options PAX_SEGVGUARD=0 # PaX Segmentation fault guard
1210options PAX_MPROTECT=1 # PaX mprotect(2) restrictions 1211options PAX_MPROTECT=1 # PaX mprotect(2) restrictions
1211options PAX_MPROTECT_DEBUG=1 # PaX mprotect debug 1212options PAX_MPROTECT_DEBUG=1 # PaX mprotect debug
1212options PAX_ASLR=1 # PaX Address Space Layout Randomization 1213options PAX_ASLR=1 # PaX Address Space Layout Randomization
1213options PAX_ASLR_DEBUG=1 # PaX ASLR debug 1214options PAX_ASLR_DEBUG=1 # PaX ASLR debug

cvs diff -r1.4 -r1.5 src/sys/dev/acpi/dwiic_acpi.c (switch to unified diff)

--- src/sys/dev/acpi/dwiic_acpi.c 2020/12/07 10:02:51 1.4
+++ src/sys/dev/acpi/dwiic_acpi.c 2021/01/24 16:33:48 1.5
@@ -1,180 +1,182 @@ @@ -1,180 +1,182 @@
1/* $NetBSD: dwiic_acpi.c,v 1.4 2020/12/07 10:02:51 jmcneill Exp $ */ 1/* $NetBSD: dwiic_acpi.c,v 1.5 2021/01/24 16:33:48 jmcneill Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2018 The NetBSD Foundation, Inc. 4 * Copyright (c) 2018 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 Jared McNeill <jmcneill@invisible.ca>. 8 * by Jared McNeill <jmcneill@invisible.ca>.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright 15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the 16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution. 17 * documentation and/or other materials provided with the distribution.
18 * 18 *
19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE. 29 * POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32#include <sys/cdefs.h> 32#include <sys/cdefs.h>
33__KERNEL_RCSID(0, "$NetBSD: dwiic_acpi.c,v 1.4 2020/12/07 10:02:51 jmcneill Exp $"); 33__KERNEL_RCSID(0, "$NetBSD: dwiic_acpi.c,v 1.5 2021/01/24 16:33:48 jmcneill Exp $");
34 34
35#include <sys/param.h> 35#include <sys/param.h>
36#include <sys/bus.h> 36#include <sys/bus.h>
37#include <sys/cpu.h> 37#include <sys/cpu.h>
38#include <sys/device.h> 38#include <sys/device.h>
39 39
40#include <dev/acpi/acpireg.h> 40#include <dev/acpi/acpireg.h>
41#include <dev/acpi/acpivar.h> 41#include <dev/acpi/acpivar.h>
42#include <dev/acpi/acpi_intr.h> 42#include <dev/acpi/acpi_intr.h>
43#include <dev/acpi/acpi_i2c.h> 43#include <dev/acpi/acpi_i2c.h>
44 44
45#include <dev/ic/dwiic_var.h> 45#include <dev/ic/dwiic_var.h>
46 46
47struct dwiic_acpi_param { 47struct dwiic_acpi_param {
48 uint16_t hcnt; 48 uint16_t hcnt;
49 uint16_t lcnt; 49 uint16_t lcnt;
50 uint32_t ht; 50 uint32_t ht;
51}; 51};
52 52
53static int dwiic_acpi_match(device_t, cfdata_t, void *); 53static int dwiic_acpi_match(device_t, cfdata_t, void *);
54static void dwiic_acpi_attach(device_t, device_t, void *); 54static void dwiic_acpi_attach(device_t, device_t, void *);
55 55
56static void dwiic_acpi_parse_param(struct dwiic_softc *, ACPI_HANDLE, 56static void dwiic_acpi_parse_param(struct dwiic_softc *, ACPI_HANDLE,
57 const char *, struct dwiic_acpi_param *); 57 const char *, struct dwiic_acpi_param *);
58static void dwiic_acpi_configure(struct dwiic_softc *, ACPI_HANDLE); 58static void dwiic_acpi_configure(struct dwiic_softc *, ACPI_HANDLE);
59 59
60CFATTACH_DECL_NEW(dwiic_acpi, sizeof(struct dwiic_softc), dwiic_acpi_match, dwiic_acpi_attach, NULL, NULL); 60CFATTACH_DECL_NEW(dwiic_acpi, sizeof(struct dwiic_softc), dwiic_acpi_match, dwiic_acpi_attach, NULL, NULL);
61 61
62static const char * const compatible[] = { 62static const char * const compatible[] = {
 63 "AMD0010", /* AMD FCH */
 64 "AMDI0010", /* AMD FCH */
63 "AMDI0510", /* AMD Seattle */ 65 "AMDI0510", /* AMD Seattle */
64 "APMC0D0F", /* Ampere eMAG */ 66 "APMC0D0F", /* Ampere eMAG */
65 NULL 67 NULL
66}; 68};
67 69
68static int 70static int
69dwiic_acpi_match(device_t parent, cfdata_t cf, void *aux) 71dwiic_acpi_match(device_t parent, cfdata_t cf, void *aux)
70{ 72{
71 struct acpi_attach_args *aa = aux; 73 struct acpi_attach_args *aa = aux;
72 74
73 if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE) 75 if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
74 return 0; 76 return 0;
75 77
76 return acpi_match_hid(aa->aa_node->ad_devinfo, compatible); 78 return acpi_match_hid(aa->aa_node->ad_devinfo, compatible);
77} 79}
78 80
79static void 81static void
80dwiic_acpi_attach(device_t parent, device_t self, void *aux) 82dwiic_acpi_attach(device_t parent, device_t self, void *aux)
81{ 83{
82 struct dwiic_softc * const sc = device_private(self); 84 struct dwiic_softc * const sc = device_private(self);
83 struct acpi_attach_args *aa = aux; 85 struct acpi_attach_args *aa = aux;
84 struct acpi_resources res; 86 struct acpi_resources res;
85 struct acpi_mem *mem; 87 struct acpi_mem *mem;
86 struct acpi_irq *irq; 88 struct acpi_irq *irq;
87 ACPI_STATUS rv; 89 ACPI_STATUS rv;
88 int error; 90 int error;
89 void *ih; 91 void *ih;
90 92
91 sc->sc_dev = self; 93 sc->sc_dev = self;
92 sc->sc_type = dwiic_type_generic; 94 sc->sc_type = dwiic_type_generic;
93 sc->sc_iot = aa->aa_memt; 95 sc->sc_iot = aa->aa_memt;
94 96
95 rv = acpi_resource_parse(sc->sc_dev, aa->aa_node->ad_handle, "_CRS", 97 rv = acpi_resource_parse(sc->sc_dev, aa->aa_node->ad_handle, "_CRS",
96 &res, &acpi_resource_parse_ops_default); 98 &res, &acpi_resource_parse_ops_default);
97 if (ACPI_FAILURE(rv)) 99 if (ACPI_FAILURE(rv))
98 return; 100 return;
99 101
100 mem = acpi_res_mem(&res, 0); 102 mem = acpi_res_mem(&res, 0);
101 if (mem == NULL) { 103 if (mem == NULL) {
102 aprint_error_dev(self, "couldn't find mem resource\n"); 104 aprint_error_dev(self, "couldn't find mem resource\n");
103 goto done; 105 goto done;
104 } 106 }
105 107
106 irq = acpi_res_irq(&res, 0); 108 irq = acpi_res_irq(&res, 0);
107 if (irq == NULL) { 109 if (irq == NULL) {
108 aprint_error_dev(self, "couldn't find irq resource\n"); 110 aprint_error_dev(self, "couldn't find irq resource\n");
109 goto done; 111 goto done;
110 } 112 }
111 113
112 error = bus_space_map(sc->sc_iot, mem->ar_base, mem->ar_length, 0, &sc->sc_ioh); 114 error = bus_space_map(sc->sc_iot, mem->ar_base, mem->ar_length, 0, &sc->sc_ioh);
113 if (error) { 115 if (error) {
114 aprint_error_dev(self, "couldn't map registers\n"); 116 aprint_error_dev(self, "couldn't map registers\n");
115 return; 117 return;
116 } 118 }
117 119
118 ih = acpi_intr_establish(self, 120 ih = acpi_intr_establish(self,
119 (uint64_t)(uintptr_t)aa->aa_node->ad_handle, 121 (uint64_t)(uintptr_t)aa->aa_node->ad_handle,
120 IPL_VM, true, dwiic_intr, sc, device_xname(self)); 122 IPL_VM, true, dwiic_intr, sc, device_xname(self));
121 if (ih == NULL) { 123 if (ih == NULL) {
122 aprint_error_dev(self, "couldn't install interrupt handler\n"); 124 aprint_error_dev(self, "couldn't install interrupt handler\n");
123 bus_space_unmap(sc->sc_iot, sc->sc_ioh, mem->ar_length); 125 bus_space_unmap(sc->sc_iot, sc->sc_ioh, mem->ar_length);
124 goto done; 126 goto done;
125 } 127 }
126 128
127 dwiic_acpi_configure(sc, aa->aa_node->ad_handle); 129 dwiic_acpi_configure(sc, aa->aa_node->ad_handle);
128 130
129 sc->sc_iba.iba_child_devices = acpi_enter_i2c_devs(aa->aa_node); 131 sc->sc_iba.iba_child_devices = acpi_enter_i2c_devs(aa->aa_node);
130 132
131 dwiic_attach(sc); 133 dwiic_attach(sc);
132 134
133 config_found_ia(self, "i2cbus", &sc->sc_iba, iicbus_print); 135 config_found_ia(self, "i2cbus", &sc->sc_iba, iicbus_print);
134 136
135 pmf_device_register(self, dwiic_suspend, dwiic_resume); 137 pmf_device_register(self, dwiic_suspend, dwiic_resume);
136 138
137done: 139done:
138 acpi_resource_cleanup(&res); 140 acpi_resource_cleanup(&res);
139} 141}
140 142
141static void 143static void
142dwiic_acpi_parse_param(struct dwiic_softc *sc, ACPI_HANDLE handle, const char *path, 144dwiic_acpi_parse_param(struct dwiic_softc *sc, ACPI_HANDLE handle, const char *path,
143 struct dwiic_acpi_param *param) 145 struct dwiic_acpi_param *param)
144{ 146{
145 ACPI_BUFFER buf; 147 ACPI_BUFFER buf;
146 ACPI_OBJECT *obj; 148 ACPI_OBJECT *obj;
147 149
148 memset(param, 0, sizeof(*param)); 150 memset(param, 0, sizeof(*param));
149 151
150 if (ACPI_FAILURE(acpi_eval_struct(handle, path, &buf))) 152 if (ACPI_FAILURE(acpi_eval_struct(handle, path, &buf)))
151 return; 153 return;
152 154
153 obj = buf.Pointer; 155 obj = buf.Pointer;
154 if (obj->Type != ACPI_TYPE_PACKAGE || obj->Package.Count != 3) 156 if (obj->Type != ACPI_TYPE_PACKAGE || obj->Package.Count != 3)
155 goto done; 157 goto done;
156 158
157 param->hcnt = (uint16_t)obj->Package.Elements[0].Integer.Value; 159 param->hcnt = (uint16_t)obj->Package.Elements[0].Integer.Value;
158 param->lcnt = (uint16_t)obj->Package.Elements[1].Integer.Value; 160 param->lcnt = (uint16_t)obj->Package.Elements[1].Integer.Value;
159 param->ht = (uint32_t)obj->Package.Elements[2].Integer.Value; 161 param->ht = (uint32_t)obj->Package.Elements[2].Integer.Value;
160 162
161done: 163done:
162 ACPI_FREE(buf.Pointer); 164 ACPI_FREE(buf.Pointer);
163} 165}
164 166
165static void 167static void
166dwiic_acpi_configure(struct dwiic_softc *sc, ACPI_HANDLE handle) 168dwiic_acpi_configure(struct dwiic_softc *sc, ACPI_HANDLE handle)
167{ 169{
168 struct dwiic_acpi_param sscn, fmcn; 170 struct dwiic_acpi_param sscn, fmcn;
169 171
170 dwiic_acpi_parse_param(sc, handle, "SSCN", &sscn); 172 dwiic_acpi_parse_param(sc, handle, "SSCN", &sscn);
171 sc->ss_hcnt = sscn.hcnt; 173 sc->ss_hcnt = sscn.hcnt;
172 sc->ss_lcnt = sscn.lcnt; 174 sc->ss_lcnt = sscn.lcnt;
173 175
174 dwiic_acpi_parse_param(sc, handle, "FMCN", &fmcn); 176 dwiic_acpi_parse_param(sc, handle, "FMCN", &fmcn);
175 sc->fs_hcnt = fmcn.hcnt; 177 sc->fs_hcnt = fmcn.hcnt;
176 sc->fs_lcnt = fmcn.lcnt; 178 sc->fs_lcnt = fmcn.lcnt;
177 179
178 /* XXX */ 180 /* XXX */
179 sc->sda_hold_time = fmcn.ht; 181 sc->sda_hold_time = fmcn.ht;
180} 182}