NetBSD/sys/dev/pci
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
..
bktr Sigh. 2001-03-16 19:32:35 +00:00
Makefile Only install headers which are actually used by our userland. This 2001-04-11 07:42:31 +00:00
Makefile.pcidevs
README
adv_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
adw_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
ahc_pci.c There was a stray debugging message "OptionMode = %x\n". Prefix it with 2001-03-24 02:04:40 +00:00
auich.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
auichreg.h
auvia.c Switch line in mute off by default. 2001-02-19 21:14:49 +00:00
auviavar.h
bha_pci.c Pull up the thorpej_scsipi branch to main branch. 2001-04-25 17:53:04 +00:00
btvmei.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
btvmeii.c
btvmeireg.h
btvmeivar.h
cac_pci.c Make this work with the SA 431 and 42xx series controllers. 2001-01-10 16:48:04 +00:00
cmpci.c some improvement for cmpci; SPDIF supports, etc. 2001-02-12 18:47:12 +00:00
cmpcireg.h some improvement for cmpci; SPDIF supports, etc. 2001-02-12 18:47:12 +00:00
cmpcivar.h some improvement for cmpci; SPDIF supports, etc. 2001-02-12 18:47:12 +00:00
com_puc.c Ops, forgot to commit this file along with the "variable com freq" support. 2001-03-16 16:43:54 +00:00
cs428x.c rewrite suspend/resume routine. If you suspend while playing audio, 2001-04-18 01:35:06 +00:00
cs428x.h rewrite suspend/resume routine. If you suspend while playing audio, 2001-04-18 01:35:06 +00:00
cs428xreg.h Clean up a little. 2001-01-22 01:44:56 +00:00
cs4280.c rewrite suspend/resume routine. If you suspend while playing audio, 2001-04-18 01:35:06 +00:00
cs4280_image.h constify 2001-01-18 20:28:15 +00:00
cs4280reg.h Split out common code to cs428x.c and cosmetic change to introduce 2001-02-07 14:41:10 +00:00
cs4281.c rewrite suspend/resume routine. If you suspend while playing audio, 2001-04-18 01:35:06 +00:00
cs4281reg.h Split out common code to cs428x.c and cosmetic change to introduce 2001-02-07 14:41:10 +00:00
cy82c693.c
cy82c693reg.h
cy82c693var.h
cy_pci.c Only need to pass a cy_softc * to cy_attach(). 2001-01-20 02:26:39 +00:00
cz.c Use device_lookup() in cztty_getttysoftc(). 2001-01-20 19:10:36 +00:00
czreg.h
devlist2h.awk make pci_knowndevs[] const 2001-01-18 13:03:22 +00:00
dpt_pci.c Pull up the thorpej_scsipi branch to main branch. 2001-04-25 17:53:04 +00:00
eap.c It appears there's a race condition when disabling a channel that causes us to 2001-04-24 21:03:33 +00:00
eapreg.h
ehci_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
esm.c Spell "portege" correctly - it's a computer, not a car. 2001-04-25 03:06:11 +00:00
esmreg.h No-op commit to force update to a non-"-kk" revision. 2001-01-18 17:47:58 +00:00
esmvar.h Power Management Hook 2001-02-12 23:56:40 +00:00
eso.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
esoreg.h
esovar.h
files.pci Yamaha YMF724/740/744/754 (DS-1) PCI audio driver. 2001-03-30 14:32:08 +00:00
fms.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
fmsvar.h
fwlynx_pci.c Add the PCI frontend for the TI LYNX firewire chip. Note that the 2001-03-06 07:38:32 +00:00
fwohci_pci.c Use IPL_NET for now -- the only use of 1394 right now is for network 2001-04-12 21:39:31 +00:00
hifn7751.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
hifn7751reg.h
hifn7751var.h
i82365_pci.c
i82365_pcivar.h
if_an_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_de.c Help messages appear each on their own line when 2001-03-04 00:01:06 +00:00
if_devar.h
if_en_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_ep_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_epic_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_esh_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_ex_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_fpa.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_fxp_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_hme_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_le_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_levar.h
if_lmc.c support T1 card (LMC1200) properly. PR 12331 (patch from openbsd). 2001-04-12 07:50:54 +00:00
if_lmc_common.c support T1 card (LMC1200) properly. PR 12331 (patch from openbsd). 2001-04-12 07:50:54 +00:00
if_lmc_media.c support T1 card (LMC1200) properly. PR 12331 (patch from openbsd). 2001-04-12 07:50:54 +00:00
if_lmc_nbsd.c support T1 card (LMC1200) properly. PR 12331 (patch from openbsd). 2001-04-12 07:50:54 +00:00
if_lmc_types.h support T1 card (LMC1200) properly. PR 12331 (patch from openbsd). 2001-04-12 07:50:54 +00:00
if_lmcioctl.h support T1 card (LMC1200) properly. PR 12331 (patch from openbsd). 2001-04-12 07:50:54 +00:00
if_lmcvar.h support T1 card (LMC1200) properly. PR 12331 (patch from openbsd). 2001-04-12 07:50:54 +00:00
if_ne_pci.c Adjust the way that media is initialized on DP8390-compatible 2001-02-12 18:49:03 +00:00
if_ntwoc_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_ntwoc_pcireg.h
if_rtk_pci.c Match the SEGA Dreamcast Broadband Adapter, and use PCI memory 2001-01-31 07:44:04 +00:00
if_sip.c There is no need to accept all ARP packets (regardless of destination 2001-03-24 19:40:51 +00:00
if_sipreg.h Goes along with rev. 1.25/1.26 of if_sip.c -- forgot to commit. 2001-03-09 16:12:29 +00:00
if_ti.c Handle allmulti case correctly as a NetBSD network driver; 2001-01-29 01:24:42 +00:00
if_tireg.h
if_tl.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
if_tlp_pci.c C requires that labels be followed by statements. 2001-02-24 00:01:22 +00:00
if_tlregs.h
if_tlvar.h
if_vr.c Use ether_crc32_be() for multicast hash calculation. 2001-01-29 12:04:10 +00:00
if_vrreg.h
iop_pci.c - Allocate any private space thats requested. 2001-04-01 15:06:22 +00:00
isic_pci.c First step to cleanup the hardware driver <-> upper layers interface. 2001-03-24 12:40:29 +00:00
isic_pci.h Filename cleanup police (per discussion with Soren S. Jorvang): 2001-02-18 09:37:19 +00:00
isic_pci_avm_fritz_pci.c First step to cleanup the hardware driver <-> upper layers interface. 2001-03-24 12:40:29 +00:00
isic_pci_elsa_qs1p.c Filename cleanup: remove i4b_ prefixes outside sys/netisdn, last round. 2001-02-20 22:24:31 +00:00
isp_pci.c Clean up licence a bit. ANSIfy. 2001-03-14 05:47:56 +00:00
ld_twe.c No need to submit before poll any more. 2001-01-26 19:53:15 +00:00
lpt_puc.c
mlx_pci.c Make it compile (for alpha). The porting author might want to look 2001-02-18 21:02:54 +00:00
mpu_eso.c
mpu_fms.c
mpu_yds.c Yamaha YMF724/740/744/754 (DS-1) PCI audio driver. 2001-03-30 14:32:08 +00:00
ncr.c Pull up the thorpej_scsipi branch to main branch. 2001-04-25 17:53:04 +00:00
ncrreg.h
ncrstat.c
neo-coeff.h
neo.c this driver doesn't work on my thinkpad, so disable the match for the 2001-03-14 11:38:55 +00:00
neoreg.h
ohci_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
opl_eso.c
opl_fms.c
opl_sv.c
opl_yds.c Yamaha YMF724/740/744/754 (DS-1) PCI audio driver. 2001-03-30 14:32:08 +00:00
pccbb.c splimp -> splvm (use IPL_IMP needs to be revisited). 2001-04-12 18:18:31 +00:00
pccbbreg.h
pccbbvar.h Re-initialize more registers after resuming from suspend. 2001-02-20 15:16:38 +00:00
pci.c allow pci_bus_maxdevs() to be replaced with pci_bus_devorder() and 2001-03-02 06:24:17 +00:00
pci_map.c
pci_quirks.c
pci_subr.c adapt to pci_knowndevs[] being const, make local constant arrays const 2001-01-18 13:12:13 +00:00
pciconf.c Deal with a lack of the proper type of memory. For example, if a bridge 2001-02-12 06:24:24 +00:00
pciconf.h Add an option (defopt) PCI_NETBSD_CONFIGURE that provides PCI bus 2001-02-09 14:33:15 +00:00
pcidevs Spell "portege" correctly - it's a computer, not a car. 2001-04-25 03:06:11 +00:00
pcidevs.h Regen. 2001-04-25 03:07:19 +00:00
pcidevs_data.h Regen. 2001-04-25 03:07:19 +00:00
pciide.c Preliminary support for Acard ATP850/860 UDMA PCI IDE controllers. 2001-04-21 16:36:37 +00:00
pciide_acard_reg.h Preliminary support for Acard ATP850/860 UDMA PCI IDE controllers. 2001-04-21 16:36:37 +00:00
pciide_acer_reg.h
pciide_amd_reg.h
pciide_apollo_reg.h Run at Ultra/66 on VIA controllers that can do it. PCI vendor/device/revision 2001-01-05 18:04:42 +00:00
pciide_cmd_reg.h
pciide_cy693_reg.h
pciide_hpt_reg.h Add support for Ultra/100 on the HPT370 2001-01-05 15:20:53 +00:00
pciide_opti_reg.h
pciide_pdc202xx_reg.h Correct definition of PDC262_U66_EN (from FreeBSD). 2001-03-12 09:51:21 +00:00
pciide_piix_reg.h Add support for Ultra/100 on intel ICH2; from Tomokazu HARADA in kern/11747. 2001-01-05 15:29:39 +00:00
pciide_sis_reg.h
pciidereg.h
pciidevar.h Fix bug which affects pciide controllers in native mode (found by 2001-01-12 16:03:59 +00:00
pcireg.h Deal with a lack of the proper type of memory. For example, if a bridge 2001-02-12 06:24:24 +00:00
pcivar.h Only include "locators.h" is _KERNEL is defined. 2001-03-05 23:50:02 +00:00
pcscp.c Pull up the thorpej_scsipi branch to main branch. 2001-04-25 17:53:04 +00:00
pcscpreg.h
plx9060reg.h
plx9060var.h
ppb.c
ppbreg.h
puc.c In the self-describing bogus code block, at least use plausible 2001-03-02 06:56:11 +00:00
puccn.c
puccn.h
pucdata.c Looks like "VSCom PCI-800H" should be in fact "Titan PCI-800H". 2001-03-13 17:23:52 +00:00
pucvar.h Add a 'flag' member to struct puc_attach_args and struct port. For 2001-01-03 15:13:15 +00:00
siop_pci.c
siop_pci_common.c 1010 has clock quadrupler but without PPL, so use SF_CHIP_DBLR. 2001-03-15 17:41:28 +00:00
siop_pci_common.h
sv.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
svreg.h
svvar.h
tga.c Make tga_rop_vtov deal with copies of <256 byte granularity, necessary 2001-02-11 19:34:58 +00:00
tga_conf.c
tgareg.h
tgavar.h
ti_fw.h add NetBSD RCS id 2001-03-28 17:08:29 +00:00
ti_fw2.h add NetBSD RCS id again 2001-03-28 17:22:51 +00:00
twe.c AEN 0x000c appears to mean `init started'. From lukem. 2001-03-30 16:48:57 +00:00
twereg.h - Complain if interrupt-driven retrieval of AENs fails somehow. 2001-01-22 17:32:11 +00:00
twevar.h Don't choke when we get lots of AENs all at once. 2001-03-04 17:50:51 +00:00
uhci_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
universe_pci.c Change pci_intr_map to get interrupt source information from a "struct 2000-12-28 22:59:06 +00:00
universe_pci_var.h
vga_pci.c
vga_pcivar.h
viaenv.c
viapm.c
viapmvar.h
yds.c Make this compile on alpha with DIAGNOSTIC. 2001-04-05 12:36:51 +00:00
ydsreg.h Yamaha YMF724/740/744/754 (DS-1) PCI audio driver. 2001-03-30 14:32:08 +00:00
ydsvar.h Yamaha YMF724/740/744/754 (DS-1) PCI audio driver. 2001-03-30 14:32:08 +00:00

README

$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