Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/pcscp.c
RevisionDateAuthorComments
 1.50  17-May-2023  tsutsui Update URL of the technical manual.
 1.49  09-Dec-2018  jdolecek use pci_intr_establish_xname() everywhere
 1.48  22-Dec-2017  tsutsui branches: 1.48.2; 1.48.4;
Update a URL of Am53c974A technical manual.
 1.47  29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.46  30-Jan-2012  drochner branches: 1.46.6; 1.46.10;
Use pci_aprint_devinfo(9) instead of pci_devinfo+aprint_{normal,naive}
where it looks straightforward, and pci_aprint_devinfo_fancy in a few
others where drivers want to supply their own device names instead
of the pcidevs generated one. More complicated cases, where names
are composed at runtime, are left alone for now. It certainly makes
sense to simplify the drivers here rather than inventing a catch-all API.
This should serve as as example for new drivers, and also ensure
consistent output in the AB_QUIET ("boot -q") case. Also, it avoids
excessive stack usage where drivers attach child devices because the
buffer for the device name is not kept on the local stack anymore.
 1.45  13-Nov-2010  uebayasi branches: 1.45.8; 1.45.12;
Don't pull in the whole uvm(9) API to access only PAGE_SIZE and
some other constants. These are provided by sys/param.h now.
 1.44  28-Aug-2008  tsutsui branches: 1.44.16;
Restore Technical manual's URL.
 1.43  28-Apr-2008  martin branches: 1.43.2; 1.43.6;
Remove clause 3 and 4 from TNF licenses
 1.42  13-Apr-2008  tsutsui branches: 1.42.2; 1.42.4;
Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
 1.41  10-Apr-2008  cegger use aprint_*_dev and device_xname
 1.40  19-Oct-2007  ad branches: 1.40.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.39  04-Mar-2007  christos branches: 1.39.2; 1.39.14; 1.39.16; 1.39.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.38  16-Nov-2006  christos branches: 1.38.4;
__unused removal on arguments; approved by core.
 1.37  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.36  28-Apr-2006  tsutsui branches: 1.36.8; 1.36.10;
Free one more resource on attach failure.
 1.35  11-Apr-2006  tsutsui Free resources if attach fails.
 1.34  11-Dec-2005  christos branches: 1.34.4; 1.34.6; 1.34.8; 1.34.10; 1.34.12;
merge ktrace-lwp.
 1.33  28-Jun-2005  thorpej branches: 1.33.2;
Use ANSI function decls and static.
 1.32  21-Jan-2005  tsutsui Unload xfer dmamap in pscsp_dma_stop().
 1.31  02-Jan-2005  tsutsui branches: 1.31.2;
u_intNN_t -> uintNN_t
 1.30  25-Sep-2004  tsutsui Use ANSI function decls.
 1.29  23-Apr-2004  itojun pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
 1.28  23-Nov-2003  tsutsui Call bus_space_{read,write}_1() directly to access ncr53c9x common registers.
 1.27  16-Nov-2003  tsutsui Misc cleanup:
- tweak some attach messages
- establish interrupt after all dma resouces are successfully allocated
- wrap an assertion with #ifdef DIAGNOSTIC
- assume NCRCFG2_FE bit is always enabled
- call bus_dmamap_sync for mdldmap at POSTWRITE for consistency
- pass proper dmamapsize for mdldmap
 1.26  19-Oct-2003  tsutsui Utilize bus_dma(9) functions more efficiently.

pcscp(4) is the first device driver I wrote about five years ago,
but I still have to learn about bus_dma(9) implementation...
 1.25  12-Oct-2003  tsutsui - Update technical manual's URL.
- Remove __P().
- Remove trailing whitespace.
 1.24  03-May-2003  wiz branches: 1.24.2;
DMA, not dma nor Dma.
 1.23  28-Dec-2002  tsutsui sparc/tab cosmetics.
 1.22  25-Nov-2002  tsutsui - Remove code to map PCI_MAPREG_TYPE_MEM, which is not supported by 53c974.
- Print PCI devinfo in the attachment message.
 1.21  15-Nov-2002  tsutsui Remove an entry for AMD PCNETS_PCI.

AMD Am79C974 PCnet-SCSI Ethernet and SCSI conrtoller is
a multi-function PCI device which has two device IDs
of Am53C974(PCscsi-PCI) and Am79C970(PCnet-PCI),
and there is no its own ID.
 1.20  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.19  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.18  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.17  13-Nov-2001  lukem add RCSID
 1.16  19-Jul-2001  thorpej Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places.
 1.15  25-Apr-2001  bouyer branches: 1.15.2;
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
 1.14  29-Mar-2001  petrov use NCR_F_DMASELECT instead ncr53c9x_dmaselect
 1.13  08-Mar-2001  thorpej Add BUS_DMA_STREAMING to data transfer map loads.
 1.12  28-Dec-2000  sommerfeld branches: 1.12.2;
Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
 1.11  14-Nov-2000  thorpej NBPG -> PAGE_SIZE
 1.10  05-Jun-2000  tsutsui Adapt MI ncr53c9x changes.
 1.9  02-Jun-2000  tsutsui KNF some lines.
 1.8  20-Mar-2000  tsutsui branches: 1.8.2;
Use sc_cfg4 for the Am53c974.
 1.7  14-Jan-2000  tsutsui minor cosmetic
 1.6  12-Dec-1999  thorpej Use htole32().
 1.5  30-Sep-1999  thorpej branches: 1.5.2; 1.5.8;
Update for SCSPI changes.
 1.4  22-Sep-1999  mhitch Set sc_cfg3_fscsi for the AMD53C974 to match the change in ncr53c9x.c.
 1.3  25-Apr-1999  thorpej Fix a couple of problems in the PCscsi-PCI driver:
* resid in pcscp_dma_intr() should also be set in the data out phase.
* Don't set up DMA in the transfer pad operations.
* Change URL of the PDF technical manual to the index page.
* include <machine/bswap.h> on big endian machines.

Fixes timeouts writing large blocks to tapes. From Izumi Tsutsui,
PR 7252.
 1.2  08-Jan-1999  thorpej branches: 1.2.2;
One more cosmetic change, from Izumi Tsutsui.
 1.1  06-Jan-1999  thorpej Device driver for the AMD Am53c974 PCscsi-PCI SCSI chip (i.e. the chip used
on the Tekram DC-390 SCSI cards), from Izumi Tsutsui, PR#6654. Minor
cosmetic changes by me.
 1.2.2.2  04-Dec-1999  he Pull up revision 1.4 (requested by mhitch):
Fix the problems in detecting the clock speed on the TCDS Dual
SCSI Option cards, and correctly configure the Fast SCSI interfaces.
This allows installation on the 3000/500 -> 3000/900 Alphas which
have the Fast SCSI interface on the on-board SCSI adapters.
 1.2.2.1  26-Apr-1999  perry branches: 1.2.2.1.2;
pullup 1.2->1.3 (thorpej)
 1.2.2.1.2.1  21-Jun-1999  thorpej Sync w/ -current.
 1.5.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.5.2.8  21-Apr-2001  bouyer Sync with HEAD
 1.5.2.7  12-Mar-2001  bouyer Sync with HEAD.
 1.5.2.6  22-Jan-2001  bouyer make it compile
 1.5.2.5  05-Jan-2001  bouyer Sync with HEAD
 1.5.2.4  22-Nov-2000  bouyer Sync with HEAD.
 1.5.2.3  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.2.2  20-Oct-1999  thorpej Eliminate sleeping from adapter routines.
 1.5.2.1  19-Oct-1999  thorpej Adapt to scsipi API changes.
 1.8.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.12.2.7  29-Dec-2002  thorpej Sync with HEAD.
 1.12.2.6  11-Dec-2002  thorpej Sync with HEAD.
 1.12.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.12.2.4  14-Nov-2001  nathanw Catch up to -current.
 1.12.2.3  24-Aug-2001  nathanw Catch up with -current.
 1.12.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.12.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.15.2.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.15.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.15.2.1  03-Aug-2001  lukem update to -current
 1.24.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.24.2.6  24-Jan-2005  skrll Sync with HEAD.
 1.24.2.5  17-Jan-2005  skrll Sync with HEAD.
 1.24.2.4  19-Oct-2004  skrll Sync with HEAD
 1.24.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.24.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.24.2.1  03-Aug-2004  skrll Sync with HEAD
 1.31.2.1  29-Apr-2005  kent sync with -current
 1.33.2.4  27-Oct-2007  yamt sync with head.
 1.33.2.3  03-Sep-2007  yamt sync with head.
 1.33.2.2  30-Dec-2006  yamt sync with head.
 1.33.2.1  21-Jun-2006  yamt sync with head.
 1.34.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.34.10.2  11-May-2006  elad sync with head
 1.34.10.1  19-Apr-2006  elad sync with head.
 1.34.8.1  24-May-2006  yamt sync with head.
 1.34.6.2  01-Jun-2006  kardel Sync with head.
 1.34.6.1  22-Apr-2006  simonb Sync with head.
 1.34.4.1  09-Sep-2006  rpaulo sync with head
 1.36.10.2  10-Dec-2006  yamt sync with head.
 1.36.10.1  22-Oct-2006  yamt sync with head
 1.36.8.1  18-Nov-2006  ad Sync with head.
 1.38.4.1  12-Mar-2007  rmind Sync with HEAD.
 1.39.20.1  25-Oct-2007  bouyer Sync with HEAD.
 1.39.16.1  06-Nov-2007  matt sync with HEAD
 1.39.14.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.39.2.1  23-Oct-2007  ad Sync with head.
 1.40.16.2  28-Sep-2008  mjf Sync with HEAD.
 1.40.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.42.4.2  04-May-2009  yamt sync with head.
 1.42.4.1  16-May-2008  yamt sync with head.
 1.42.2.1  18-May-2008  yamt sync with head.
 1.43.6.1  19-Oct-2008  haad Sync with HEAD.
 1.43.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.44.16.1  05-Mar-2011  rmind sync with head
 1.45.12.1  18-Feb-2012  mrg merge to -current.
 1.45.8.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.45.8.1  17-Apr-2012  yamt sync with head
 1.46.10.1  18-May-2014  rmind sync with head
 1.46.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.48.4.1  10-Jun-2019  christos Sync with HEAD
 1.48.2.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts

RSS XML Feed