NetBSD/sys/dev/pci
dyoung 0d1ba3e899 During shutdown, detach devices in an orderly fashion.
Call the detach routine for every device in the device tree, starting
with the leaves and moving toward the root, expecting that each
(pseudo-)device driver will use the opportunity to gracefully commit
outstandings transactions to the underlying (pseudo-)device and to
relinquish control of the hardware to the system BIOS.

Detaching devices is not suitable for every shutdown: in an emergency,
or if the system state is inconsistent, we should resort to a fast,
simple shutdown that uses only the pmf(9) shutdown hooks and the
(deprecated) shutdownhooks.  For now, if the flag RB_NOSYNC is set in
boothowto, opt for the fast, simple shutdown.

Add a device flag, DVF_DETACH_SHUTDOWN, that indicates by its presence
that it is safe to detach a device during shutdown.  Introduce macros
CFATTACH_DECL3() and CFATTACH_DECL3_NEW() for creating autoconf
attachments with default device flags.  Add DVF_DETACH_SHUTDOWN
to configuration attachments for atabus(4), atw(4) at cardbus(4),
cardbus(4), cardslot(4), com(4) at isa(4), elanpar(4), elanpex(4),
elansc(4), gpio(4), npx(4) at isa(4), nsphyter(4), pci(4), pcib(4),
pcmcia(4), ppb(4), sip(4), wd(4), and wdc(4) at isa(4).

Add a device-detachment "reason" flag, DETACH_SHUTDOWN, that tells the
autoconf code and a device driver that the reason for detachment is
system shutdown.

Add a sysctl, kern.detachall, that tells the system to try to detach
every device at shutdown, regardless of any device's DVF_DETACH_SHUTDOWN
flag.  The default for kern.detachall is 0.  SET IT TO 1, PLEASE, TO
HELP TEST AND DEBUG DEVICE DETACHMENT AT SHUTDOWN.

This is a work in progress.  In future work, I aim to treat
pseudo-devices more thoroughly, and to gracefully tear down a stack of
(pseudo-)disk drivers and filesystems, including cgd(4), vnd(4), and
raid(4) instances at shutdown.

Also commit some changes that are not easily untangled from the rest:

(1) begin to simplify device_t locking: rename struct pmf_private to
device_lock, and incorporate device_lock into struct device.

(2) #include <sys/device.h> in sys/pmf.h in order to get some
definitions that it needs.  Stop unnecessarily #including <sys/device.h>
in sys/arch/x86/include/pic.h to keep the amd64, xen, and i386 releases
building.
2009-04-02 00:09:32 +00:00
..
bktr bzero -> memset 2009-03-18 16:00:08 +00:00
drm add a radeon-x1550 (works as well as other rv5xx i guess.) 2009-03-29 19:39:50 +00:00
n8 bzero -> memset 2009-03-18 16:00:08 +00:00
aac_pci.c Allocate enough space for the aac_pci_softc, not just the aac_softc. 2009-01-02 22:03:07 +00:00
acardide.c Normalize my licenses. 2008-05-14 13:29:27 +00:00
aceride.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
adv_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
adw_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
agp_ali.c o Split device_t/softc for agp(4). 2008-06-09 06:49:54 +00:00
agp_amd64.c Fix ugly format in aprint_normal{,_dev}. 2008-03-28 08:35:44 +00:00
agp_amd.c o Split device_t/softc for agp(4). 2008-06-09 06:49:54 +00:00
agp_apple.c o Split device_t/softc for agp(4). 2008-06-09 06:49:54 +00:00
agp_i810.c Add missing break. 2009-02-19 05:58:37 +00:00
agp_intel.c o Split device_t/softc for agp(4). 2008-06-09 06:49:54 +00:00
agp_sis.c o Split device_t/softc for agp(4). 2008-06-09 06:49:54 +00:00
agp_via.c o Split device_t/softc for agp(4). 2008-06-09 06:49:54 +00:00
agp.c Add some more Intel G4X class chipsets. Also fix gtt_size for G4X chipsets. 2009-01-27 08:39:33 +00:00
agpbusprint.c __unused removal on arguments; approved by core. 2006-11-16 01:32:37 +00:00
agpreg.h Add support for the Intel G45 AGP. From Arnaud Lacombe 2008-11-29 23:48:12 +00:00
agpvar.h o Split device_t/softc for agp(4). 2008-06-09 06:49:54 +00:00
ahc_pci.c remove extra semicolons. 2009-01-03 03:43:21 +00:00
ahcisata_pci.c Add the other three PCI ids for the nvidia MCP65 SATA controller to 2009-03-27 06:36:49 +00:00
ahd_pci.c Use aprint_*_dev(), and device_xname(). Constify a bit. 2008-03-21 08:17:30 +00:00
alipm.c bzero -> memset 2009-03-18 16:00:08 +00:00
amdpm_smbus.c Update the i2c_exec() functions to handle quick_read/quick_write protocol. 2009-02-03 16:27:13 +00:00
amdpm_smbusreg.h Update the i2c_exec() functions to handle quick_read/quick_write protocol. 2009-02-03 16:27:13 +00:00
amdpm.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
amdpmreg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
amdpmvar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
amr.c Replace device_lookup() with device_lookup_private() on getting softc 2008-06-08 12:43:51 +00:00
amrio.h Add a /dev/amr* control file for amr(4) devices, which allows sending raw 2006-07-23 12:01:25 +00:00
amrreg.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
amrvar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
arcmsr.c PR/39583: Brad du Plessis: acrmsr(4) driver doesn't report number of volumes correctly 2008-09-23 22:22:41 +00:00
arcmsrvar.h PR/39583: Brad du Plessis: acrmsr(4) driver doesn't report number of volumes correctly 2008-09-23 22:22:41 +00:00
artsata.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
atppc_puc.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
auacer.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
auacerreg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
auich.c Handle child-detachment by NULL'ing the child pointer so that 2009-03-17 19:38:34 +00:00
auichreg.h Make sure pci config space access only happens on 32bit aligned addresses. 2008-01-14 21:33:04 +00:00
auixp.c bzero -> memset 2009-03-18 16:00:08 +00:00
auixpreg.h
auixpvar.h Merge jmcneill-pm branch. 2007-12-09 20:27:42 +00:00
autri.c Revert the change of revision 1.37 - a driver must not blindly set the 2008-07-03 12:26:41 +00:00
autrireg.h
autrivar.h Merge jmcneill-pm branch. 2007-12-09 20:27:42 +00:00
auvia.c Print a message on two previously silent error paths in auvia_attach. 2008-10-11 20:08:15 +00:00
auviavar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
azalia_codec.c Add proper Realtek ALC268 support. While we're here, fix a comment in 2009-02-28 17:12:13 +00:00
azalia.c PR# port-i386/40143: Viewing an mpeg transport stream with mplayer causes crash 2009-02-25 15:46:34 +00:00
azalia.h PR#38860: azalia record does not work on Realtek ALC662-GR 2008-08-14 23:43:27 +00:00
bha_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
btvmei.c ANSIfy functions with function-pointer arguments 2009-03-16 23:11:09 +00:00
btvmeii.c ANSIfy functions with function-pointer arguments 2009-03-16 23:11:09 +00:00
btvmeireg.h
btvmeivar.h
cac_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
chipsfb.c nuke clause 3 2008-05-08 01:43:17 +00:00
chipsfbreg.h nuke clause 3 2008-05-08 01:43:17 +00:00
ciss_pci.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
cmdide.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
cmpci.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
cmpcireg.h
cmpcivar.h Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
com_puc.c Split device_t and softc for all com(4) devices (well, everything that 2008-03-14 15:09:09 +00:00
cs428x.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
cs428x.h Merge jmcneill-pm branch. 2007-12-09 20:27:42 +00:00
cs428xreg.h
cs4280_image.h
cs4280.c Use aprint_*_dev() instead of accessing struct device member dv_xname 2008-03-21 08:20:04 +00:00
cs4280reg.h Add support for the Turtle Beach Santa Cruz. Special thanks to Stephane 2006-04-15 21:20:47 +00:00
cs4281.c Use aprint_*_dev() instead of accessing struct device member dv_xname 2008-03-21 08:20:04 +00:00
cs4281reg.h
cxgb_adapter.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_ael1002.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_common.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_config.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_ctl_defs.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_firmware_exports.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_include.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_ioctl.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_jhash.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_l2t.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_l2t.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_lro.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_main.c bcopy -> memcpy 2009-03-18 17:06:41 +00:00
cxgb_mbuf.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_mc5.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_mv88e1xxx.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_mvec.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_offload.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_offload.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_osdep.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_osdep.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
cxgb_regs.h These files (cxgb*) are for the Chelsio T3 10 gigabit ethernet card from 2007-06-22 18:18:54 +00:00
cxgb_sge_defs.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_sge.c bzero -> memset 2009-03-18 16:00:08 +00:00
cxgb_t3_cpl.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_t3_hw.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_tcb.h These files (cxgb*) are for the Chelsio T3 10 gigabit ethernet card from 2007-06-22 18:18:54 +00:00
cxgb_toedev.h More Chelsio 10 gigabit driver files to complete the ones checked in 2008-01-17 15:54:35 +00:00
cxgb_version.h These files (cxgb*) are for the Chelsio T3 10 gigabit ethernet card from 2007-06-22 18:18:54 +00:00
cxgb_vsc7323.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_vsc8211.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cxgb_xgmac.c 10 gigabit Chelsio cards now compile and work, although not very well yet. 2008-01-17 06:03:21 +00:00
cy82c693.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
cy82c693reg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
cy82c693var.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
cy_pci.c split device_t/softc. Use aprint_*_dev and device_xname. 2008-03-26 17:50:32 +00:00
cyber.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
cyberreg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
cybervar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
cypide.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
cz.c Replace device_lookup() with device_lookup_private() on getting softc 2008-06-08 12:43:51 +00:00
czreg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
devlist2h.awk Store pcidevs in a more compact manner. Instead of many string with duplicate 2008-11-17 23:33:41 +00:00
dpt_pci.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
eap.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
eapreg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
eapvar.h
ehci_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
emuxki.c Backout unintended change. 2008-09-06 03:00:32 +00:00
emuxkireg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
emuxkivar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
esa.c Fix a couple of mistakes in the device_t/softc split that cause 2008-06-10 21:19:01 +00:00
esadsp.h
esareg.h
esavar.h Missed in previous device_t/softc split commit for esa, pointed out by 2008-03-27 14:13:34 +00:00
esiop_pci.c __unused removal on arguments; approved by core. 2006-11-16 01:32:37 +00:00
esm.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
esmreg.h
esmvar.h Detach self and children. Make some functions static. Use device_t 2008-02-23 02:17:16 +00:00
eso.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
esoreg.h
esovar.h Replace home-grown list management for DMA buffers with SLISTs, and refactor. 2007-01-12 00:47:51 +00:00
files.agp Add support agp_amd64. Imported from FreeBSD. 2007-08-04 09:34:43 +00:00
files.pci age driver needs mii_phy 2009-01-16 21:11:27 +00:00
fms.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
fmsvar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
fwlynx_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
fwohci_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
gcscaudio.c PR# port-i386/40284: add AMD Geode CS5536 audio driver; written by 2008-12-28 15:16:24 +00:00
gcscaudioreg.h PR# port-i386/40284: add AMD Geode CS5536 audio driver; written by 2008-12-28 15:16:24 +00:00
genfb_pci.c Turn "bogus parameters" aprint_error into aprint_debug, and change the 2009-02-23 23:45:56 +00:00
geodeide.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
gtp.c machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h 2007-10-19 11:59:34 +00:00
hifn7751.c bcopy -> memcpy 2009-03-18 17:06:41 +00:00
hifn7751reg.h
hifn7751var.h
hptide.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
i82365_pci.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
i82365_pcivar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
iavc_pci.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
ichsmb.c bzero -> memset 2009-03-18 16:00:08 +00:00
icp_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_age.c mimic fix from nfe(4): 2009-03-03 23:28:44 +00:00
if_agereg.h remove unused age_if_flags softc member 2009-02-23 07:33:58 +00:00
if_an_pci.c split device/softc (tested with an@pcmcia) 2008-07-03 18:10:07 +00:00
if_ath_pci.c Sync ath(4) with the new HAL, mostly based on <jmcneill>'s patches. 2008-12-11 05:45:29 +00:00
if_atw_pci.c - device/softc split 2008-07-09 20:07:19 +00:00
if_bce.c Enable flow control and poll the status appropriately. 2009-01-18 10:00:51 +00:00
if_bcereg.h
if_bge.c Take some code from FreeBSD and OpenBSD 2009-03-22 18:54:59 +00:00
if_bgereg.h Make bge(4) close to FreBSD and OpenBSD. 2009-03-22 16:20:06 +00:00
if_bnx.c bzero -> memset 2009-03-18 16:00:08 +00:00
if_bnxreg.h Replace gcc variadic macros with c99 variadic macros. 2008-06-24 10:17:45 +00:00
if_bwi_pci.c Attach on BCM4328. This chip supports 11n. 2009-01-10 12:55:45 +00:00
if_de.c Merge patch from PR 12605, which tidies up allocation of transmit DMA maps. 2009-03-29 05:26:43 +00:00
if_devar.h Merge patch from PR 12605, which tidies up allocation of transmit DMA maps. 2009-03-29 05:26:43 +00:00
if_dge.c avoid long/unsigned long printf warning on some platforms 2009-02-13 01:38:32 +00:00
if_dgereg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
if_en_pci.c ansify function definitions 2009-03-15 15:40:33 +00:00
if_ep_pci.c device_t changes, pmf, minor knf. 2008-08-27 05:33:47 +00:00
if_epic_pci.c Split device_t/softc with misc cosmetic changes. 2008-07-06 14:32:56 +00:00
if_esh_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_ex_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_fpa.c bcopy -> memcpy 2009-03-18 17:06:41 +00:00
if_fxp_pci.c Add braces missed on RX hardware cksum support. 2009-03-19 15:28:04 +00:00
if_gem_pci.c ANSIfy another 1261 function definitions. 2009-03-14 21:04:01 +00:00
if_hme_pci.c remove clause #3 from my license where there are no other 2008-05-29 14:51:25 +00:00
if_ipw.c Make the "EULA not accepted" message a bit more informative, now reads: 2009-01-09 21:14:36 +00:00
if_ipwreg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
if_ipwvar.h Match image name with upstream distfiles. 2008-11-07 14:58:27 +00:00
if_iwi.c Fixes in the iwi(4) driver to better handle errors: 2009-03-13 21:57:07 +00:00
if_iwireg.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
if_iwivar.h Merge jmcneill-pm branch. 2007-12-09 20:27:42 +00:00
if_iwn.c Pay more attention to the state of the RF kill switch, such as don't 2008-12-22 11:32:04 +00:00
if_iwnreg.h Actually declare the structures used in iwn_scan_hdr instead of using 2008-11-13 12:04:09 +00:00
if_iwnvar.h Pay more attention to the state of the RF kill switch, such as don't 2008-12-22 11:32:04 +00:00
if_jme.c bcopy -> memcpy 2009-03-18 17:06:41 +00:00
if_jmereg.h According to the latest datasheet I have (1.09), the transmitter and ckecksum 2009-01-16 19:56:06 +00:00
if_kse.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
if_le_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_levar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_lii.c Fix multicast (multicast hash table were calculated incorrectly). 2008-07-08 12:39:27 +00:00
if_liireg.h Convert to new 2 clause license 2008-04-29 06:53:00 +00:00
if_lmc.c Remove obsolete #if defined(LKM) block. PR kern/40513 2009-02-02 15:57:51 +00:00
if_lmc.h Remove LKMs and switch to the module framework, pass 1. 2008-11-12 12:35:50 +00:00
if_msk.c bzero -> memset 2009-03-18 16:00:08 +00:00
if_mskvar.h Apply a similar patch as what was just applied to sk(4): 2008-06-20 16:45:13 +00:00
if_mtd_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_ne_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_nfe.c bcmp -> memcmp 2009-03-18 15:14:29 +00:00
if_nfereg.h sync with openbsd; fixes observed corruption issues. 2008-04-17 19:12:26 +00:00
if_nfevar.h Restore jumbo frame support and protect access to the DMA space for 2008-04-20 08:57:37 +00:00
if_ntwoc_pci.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
if_ntwoc_pcireg.h
if_pcn.c Split device_t/softc with misc related changes. 2008-04-04 12:20:48 +00:00
if_pcnreg.h
if_ral_pci.c Pull in some more changes from OpenBSD: 2008-04-29 22:21:45 +00:00
if_re_pci.c Add support for the Realtek 8102E/8102EL PCIe 10/100 Ethernet devices. 2008-08-23 14:27:45 +00:00
if_rtk_pci.c Also match Realtek 8138, 8139D, and 8100. 2008-08-23 16:56:45 +00:00
if_rtw_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_sf_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_sip.c During shutdown, detach devices in an orderly fashion. 2009-04-02 00:09:32 +00:00
if_sipreg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_sk.c bzero -> memset 2009-03-18 16:00:08 +00:00
if_skreg.h Fix Yukon EC Ultra cold power up issue. 2008-11-18 09:30:43 +00:00
if_skvar.h cf_attach_decl_new 2008-09-08 21:20:03 +00:00
if_ste.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_stereg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_stge.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_stgereg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_ti.c *** Summary *** 2008-11-07 00:20:01 +00:00
if_tireg.h First part of ti(4) overhaul: 2007-09-07 23:05:27 +00:00
if_tl.c Fix tyop in #ifdef TLDEBUG part. 2008-11-16 02:11:29 +00:00
if_tlp_pci.c Use device_lookup_private() rather than using cd_devs[] directly to get softc. 2008-06-08 18:18:33 +00:00
if_tlregs.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
if_tlvar.h Split device_t/softc, with misc cosmetic changes. 2008-06-01 00:38:29 +00:00
if_txp.c bcopy -> memcpy 2009-03-18 17:06:41 +00:00
if_txpreg.h use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
if_vge.c fix comment. 2009-02-09 12:11:16 +00:00
if_vgereg.h Make vge(4) look a NetBSD native driver like pcn(4) or epic(4) etc: 2006-10-31 14:13:30 +00:00
if_vr.c - device/softc split 2008-07-09 16:14:57 +00:00
if_vrreg.h Use uintNN_t. 2006-11-05 13:05:18 +00:00
if_wi_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
if_wm.c Missed a small but important change to enable hardware VLAN support. 2009-03-31 06:58:55 +00:00
if_wmreg.h Examine the management mode and mark DRV_LOAD (for ICH{8,9,10},80003, 2009-03-20 07:29:15 +00:00
if_wpi.c Cache wpi firmware in memory, free it only on invalid content or when 2008-11-12 18:23:08 +00:00
if_wpireg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
if_wpivar.h Cache wpi firmware in memory, free it only on invalid content or when 2008-11-12 18:23:08 +00:00
if_xge.c replace bitmask_snprintf(9) with snprintb(3) 2008-12-16 22:35:21 +00:00
if_xgereg.h
ifpci2.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
ifpci.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
igsfb_pci.c machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h 2007-10-19 11:59:34 +00:00
igsfb_pcivar.h
iha_pci.c Normalize my licenses. 2008-05-14 13:29:27 +00:00
iop_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
isic_pci_elsa_qs1p.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
isic_pci.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
isic_pci.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
isp_pci.c use aprint_*_dev and device_xname and get rid of isp_name 2008-04-07 19:26:44 +00:00
iteide.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
iwic_bchan.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
iwic_dchan.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
iwic_fsm.c machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h 2007-10-19 11:59:34 +00:00
iwic_pci.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
iwicreg.h
iwicvar.h machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h 2007-10-19 11:59:34 +00:00
ixpide.c Implement powersave for ixpide(4). Tested it on an Asus IXP250 with IGP. 2008-11-04 16:05:29 +00:00
jmide_reg.h add jmide(4), a driver for the JMicron Technology JMB36x PCIe to SATA II/PATA 2007-05-15 17:53:41 +00:00
jmide.c Call ahci_intr() with the device's softc, not the device_t. 2008-06-05 18:22:02 +00:00
joy_eap.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
joy_eso.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
joy_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
ld_amr.c Complete device_t/softc split for the ld(4) attachments. This should 2008-09-09 12:45:39 +00:00
ld_twa.c Complete device_t/softc split for the ld(4) attachments. This should 2008-09-09 12:45:39 +00:00
ld_twe.c Complete device_t/softc split for the ld(4) attachments. This should 2008-09-09 12:45:39 +00:00
lpt_puc.c Split the softc from the device_t for all lpt(4) variants and attachments 2008-03-07 17:15:51 +00:00
machfb.c remove extra semicolons. 2009-01-03 03:43:21 +00:00
machfbreg.h
Makefile Add a /dev/amr* control file for amr(4) devices, which allows sending raw 2006-07-23 12:01:25 +00:00
Makefile.pcidevs Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands. 2008-10-19 22:05:19 +00:00
mfi_pci.c Make it follow the standard convention of autoconf printing: 2008-02-26 18:16:51 +00:00
mlx_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
mly_tables.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
mly.c Replace device_lookup() with device_lookup_private() on getting softc 2008-06-08 12:43:51 +00:00
mlyio.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
mlyreg.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
mlyvar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
mpt_pci.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
mpu_cmpci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
mpu_eso.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
mpu_fms.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
mpu_yds.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
neo-coeff.h
neo.c use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
neoreg.h
nfsmb.c Update the i2c_exec() functions to handle quick_read/quick_write protocol. 2009-02-03 16:27:13 +00:00
nfsmbreg.h Newer nForce MCP SMBus devices use different PCI BARs than the old ones 2007-12-04 15:58:11 +00:00
njs_pci.c - device/softc split 2008-07-09 19:08:44 +00:00
oboe.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
oboereg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
ohci_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
opl_cmpci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
opl_eso.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
opl_fms.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
opl_sv.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
opl_yds.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
optiide.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
pccbb.c During shutdown, detach devices in an orderly fashion. 2009-04-02 00:09:32 +00:00
pccbbreg.h On cardbus configuration reads, check for a master abort in the cbb 2008-07-03 13:37:34 +00:00
pccbbvar.h delete more dead code, remove use of pcic_handle except of some local 2008-06-26 20:57:10 +00:00
pci_map.c Add pci_mapreg_submap(): This function is pci_mapreg_map() with two 2008-07-22 04:52:19 +00:00
pci_quirks.c Sync with Xbox Host-PCI bridge name change. 2007-01-06 00:08:20 +00:00
pci_subr.c Decode and display PCI Power Management registers when available. 2009-01-20 13:54:43 +00:00
pci_usrreq.c remove unused variable 2008-06-11 19:27:03 +00:00
pci.c During shutdown, detach devices in an orderly fashion. 2009-04-02 00:09:32 +00:00
pcibusprint.c
pciconf.c The number of max_lat units in 1 sec is 4000000 instead of 40000000 (an 2007-05-24 15:57:58 +00:00
pciconf.h PCI_NETBSD_CONFIGURE should allocate (but not map) address space expansion 2006-02-10 20:52:56 +00:00
pcidevs add i82567LF-3 LAN Controller 2009-03-10 03:30:55 +00:00
pcidevs_data.h regen 2009-03-10 03:31:36 +00:00
pcidevs.h regen 2009-03-10 03:31:36 +00:00
pciide_acard_reg.h Normalize my licenses. 2008-05-14 13:29:27 +00:00
pciide_acer_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_apollo_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_cmd_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_common.c ansify function definitions 2009-03-15 21:23:31 +00:00
pciide_cy693_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_geode_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_hpt_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_i31244_reg.h
pciide_ite_reg.h
pciide_ixp_reg.h Convert to new 2 clause license 2008-04-29 06:53:00 +00:00
pciide_opti_reg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
pciide_pdc202xx_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_piix_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_sii3112_reg.h
pciide_sis_reg.h Convert many of the uses of __attribute__ to equivalent 2007-12-25 18:33:32 +00:00
pciide_sl82c105_reg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
pciide_svwsata_reg.h Add svwsata(4), a driver for Serverworks K2 SATA controllers. From 2006-03-06 18:35:24 +00:00
pciide.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
pciidereg.h s/independant/independent/, from Zafer. 2006-11-24 22:04:21 +00:00
pciidevar.h ansify function definitions 2009-03-15 15:40:33 +00:00
pciio.h
pcireg.h rename PCI_PMCSR_PME to PCI_PMCSR_PME_STS. 2009-01-16 23:23:34 +00:00
pcivar.h Add pci_mapreg_submap(): This function is pci_mapreg_map() with two 2008-07-22 04:52:19 +00:00
pcscp.c Restore Technical manual's URL. 2008-08-28 16:47:10 +00:00
pcscpreg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
pdcide.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
pdcsata.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
piixide.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
piixpm.c bzero -> memset 2009-03-18 16:00:08 +00:00
piixpmreg.h oops, need to commit the register definition for PM mapping too 2006-06-26 17:33:40 +00:00
plx9060reg.h
plx9060var.h
ppb.c During shutdown, detach devices in an orderly fashion. 2009-04-02 00:09:32 +00:00
ppbreg.h
puc.c - device/softc split 2008-07-09 14:46:15 +00:00
puccn.c Work around false-positives for gcc's detection of use of uninitialised 2007-01-13 18:59:31 +00:00
puccn.h
pucdata.c Distinguish the NetMos NM9845 Quad UART chip from the NetMos NM9845 2008-12-08 19:32:39 +00:00
pucvar.h
r128fb.c remove extra semicolons. 2009-01-03 03:43:21 +00:00
r128fbreg.h add preliminary driver for ATI Rage 128 graphics controllers 2007-11-07 19:09:09 +00:00
radeonfb_bios.c remove extra semicolons. 2009-01-03 03:43:21 +00:00
radeonfb_i2c.c machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h 2007-10-19 11:59:34 +00:00
radeonfb.c adjust virtual resolution to preferred mode if available 2008-06-01 16:43:53 +00:00
radeonfbreg.h add preliminary support for setting backlight levels via ioctl() 2007-01-03 19:47:17 +00:00
radeonfbvar.h unbork fallout from newlock2 merge: 2007-08-03 05:40:47 +00:00
rccide.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
README
satalink.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
siisata_pci.c In case the PCI command bits aren't already set, do so before performing 2008-12-16 02:46:47 +00:00
siop_pci_common.c Make sure PCI_COMMAND_MASTER_ENABLE is set in PCI_COMMAND_STATUS_REG. 2009-02-13 21:12:14 +00:00
siop_pci_common.h
siop_pci.c __unused removal on arguments; approved by core. 2006-11-16 01:32:37 +00:00
siside.c Turn off interrupt disable bit in command status reg. 2009-03-12 15:02:42 +00:00
slide.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
stpcide.c - assign 2 clause TNF license to the files cited as my ownership. 2008-05-26 10:31:22 +00:00
sv.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
svreg.h
svvar.h
svwsata.c Split device_t and softc for ATA devices, as well as wd(4). Other 2008-03-18 20:46:35 +00:00
tga_conf.c Change about 4500 of the K&R function definitions to ANSI ones. 2009-03-14 15:35:58 +00:00
tga.c ANSIfy functions with function-pointer arguments 2009-03-16 23:11:09 +00:00
tgareg.h
tgavar.h Implement the required ioctls for running Xorg through /dev/ttyE0. 2009-01-07 01:31:01 +00:00
trm.c Normalize my licenses. 2008-05-14 13:29:27 +00:00
trmreg.h
twa.c Unbreak twa after the last two commits. 2008-07-27 13:10:11 +00:00
twaio.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
twareg.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
twavar.h First part of twa(4) improvements: 2008-05-07 17:47:20 +00:00
twe.c Replace device_lookup() with device_lookup_private() on getting softc 2008-06-08 12:43:51 +00:00
tweio.h
twereg.h Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h 2008-09-08 23:36:53 +00:00
twevar.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
ubsec.c bcopy -> memcpy 2009-03-18 17:06:41 +00:00
ubsecreg.h
ubsecvar.h Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
uhci_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
unichromeaccel.h Acceleration definitions (missed in previous commit). 2006-08-13 20:26:55 +00:00
unichromeconfig.h Expose RGB palette tables. 2006-08-13 20:25:47 +00:00
unichromefb.c Change autoconf message 'direct rendering on dev unsupported' to 2008-05-05 11:42:45 +00:00
unichromehw.h Add work-in-progress framebuffer console driver for the VIA UniChrome 2006-08-02 01:44:09 +00:00
unichromemode.h Add work-in-progress framebuffer console driver for the VIA UniChrome 2006-08-02 01:44:09 +00:00
unichromereg.h Add work-in-progress framebuffer console driver for the VIA UniChrome 2006-08-02 01:44:09 +00:00
universe_pci_var.h
universe_pci.c ANSIfy functions with function-pointer arguments 2009-03-16 23:11:09 +00:00
usb_pci.c Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
usb_pci.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
vga_pci.c Allow using VGA_POST without ACPI again. 2008-08-03 02:12:22 +00:00
vga_pcivar.h Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11. 2007-03-20 18:05:25 +00:00
viaenv.c Make various bits of debug code compile again. 2008-04-30 14:07:13 +00:00
viaide.c Add VT8237S Integrated SATA Controller support. 2008-12-21 16:27:57 +00:00
voodoofb.c - device/softc split 2008-07-09 15:04:21 +00:00
voodoofbreg.h A driver for 3Dfx Voodoo3 graphics boards, may or may not work with Voodoo4, 2006-04-11 16:11:07 +00:00
weasel_pci.c bzero -> memset 2009-03-18 16:00:08 +00:00
weaselreg.h Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
yds.c make this compile with AUDIO_DEBUG 2008-12-17 15:47:35 +00:00
ydsreg.h
ydsvar.h - device/softc split 2008-07-09 15:42:37 +00:00

$NetBSD: README,v 1.3 1998/08/15 03:02:46 mycroft Exp $

This directory contains files which are used during PCI configuration
and PCI device drivers.  Eventually, most of the device drivers and
some of the configuration support should become machine-independent
and be moved to a more general location.

The configuration support was implemented according to the `PCI Local
Bus Specification, Production Version, Revision 2.0' dated April 30,
1993.  Section numbers referred to in the code may be specific to that
edition of the specification.

Some attempt has been made to insure that the code works on rogue
machines where the BIOS doesn't do its job, but in general I can't
guarantee that.

--
- Charles M. Hannum
  NetBSD group
  August 8, 1994