Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/amiga/dev/siop2.c
RevisionDateAuthorComments
 1.44  10-Nov-2019  chs in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.43  21-Sep-2014  christos branches: 1.43.20;
remove dead code
 1.42  22-Jan-2014  christos branches: 1.42.4;
gcc-4.8.x unused variable fixes
 1.41  27-Oct-2012  chs branches: 1.41.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.40  20-Dec-2010  matt branches: 1.40.8; 1.40.18;
Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
 1.39  22-May-2010  phx Disabled DEBUG_SYNC. Reenable when needed.
 1.38  05-Feb-2010  phx branches: 1.38.2; 1.38.4;
Added two new macros to device.h:
amiga_membarrier() enforces a reorder protection on memory read/writes.
amiga_cpu_sync() makes sure the instruction pipelines are flushed.
Both macros may be used in all amiga device drivers for compatibility with
amigappc. For the start I fixed some SCSI drivers.
cbiiisc and ahsc were tested and seem to work really fast with DMA now.
Some stability problems with amigappc remain nevertheless (spontaneous
kernel DSI traps with high CPU/SCSI load).
 1.37  29-Jan-2010  phx Define DCIAS() for amigappc.
 1.36  26-Oct-2009  cegger kill extra whitespaces
reviewed by tsutsui@
 1.35  18-Mar-2009  cegger bcopy -> memcpy
 1.34  18-Mar-2009  cegger bzero -> memset
 1.33  10-Jan-2009  mhitch branches: 1.33.2;
For some reason lost in obscurity and time, I did not ever implement a
timeout capability to these drivers. Apparently no one has ever had
scsi devices that failed to complete a scsi operation in some fashion,
or at least no one has reported it as best I can remember. I've just
run into this situation and figured out that one disk would fail to
complete an I/O transaction and never timed out. Add the appropriate
timeout function to reset the controller and restart things.
 1.32  17-Dec-2008  cegger kill MALLOC and FREE macros.
 1.31  08-Dec-2008  mhitch Deal with unrecognized SCSI message byte - restart script to clear the
ACK. No longer hangs the driver when an unhandled message byte is seen.
 1.30  17-Oct-2007  garbled branches: 1.30.16; 1.30.20; 1.30.26; 1.30.28; 1.30.30;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.29  20-Aug-2007  is branches: 1.29.2;
First part of amigappc support patches by Frank Wille.
 1.28  13-May-2007  mhitch branches: 1.28.4; 1.28.8;
Fix warnings with DEBUG enabled.
 1.27  04-Mar-2007  christos branches: 1.27.2; 1.27.4; 1.27.10;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.26  08-Mar-2006  lukem branches: 1.26.14; 1.26.16; 1.26.20;
Use the SI capitalization for "Hz", "kHz", and "MHz" in comments and strings.
Add a space between numbers and Hz unit.
 1.25  11-Dec-2005  christos branches: 1.25.4; 1.25.6; 1.25.8; 1.25.10;
merge ktrace-lwp.
 1.24  13-Jun-2005  jmc branches: 1.24.2;
Fix a ton of const/volatile issues shown with new warning flags
 1.23  28-Mar-2004  mhitch Remove license clauses 3 and 4 in my licenses.
 1.22  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.21  18-Jun-2003  drochner branches: 1.21.2;
don't #include <sys/dkstat.h> where it is (appearently) unused
 1.20  01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.19  24-Feb-2002  is remove unused prototype (a duplicate with a typing error)
 1.18  28-Jan-2002  aymeric add __KERNEL_RCSID as suggested by Luke Mewburn
 1.17  26-Jan-2002  aymeric - ANSIfy
- remove some trailing spaces/tabs
- minor style nits
 1.16  08-Oct-2001  is branches: 1.16.4;
Make the Cyberstorm PPC/ Cyberstorm Mk. 3 driver drive the LED.
Actually, this is added to the siop2_script; should we ever support another
siopng board that does connect something else to GPREG bit 4, we'll have
to move this to C code and make it optional.
OTOH, by then we'll have switched to the MI driver by then.
 1.15  25-Apr-2001  bouyer branches: 1.15.2; 1.15.4;
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  30-Sep-1999  thorpej branches: 1.14.2; 1.14.14;
Update for SCSIPI changes.
 1.13  07-Sep-1999  is Oops. I forgot to add cachops here earlier.
 1.12  07-Jun-1999  is Check for an unterminated bus; if yes: complain and don't try to use this
bus. Without this, cbiiisc used to hang if nothing was connected.
Reported by Matthias Scheler. A similar method to avoid this was suggested
by Ralph Schmidt.
 1.11  01-Apr-1999  mhitch branches: 1.11.2; 1.11.4; 1.11.6;
Show 50ns period instead of 48ns for Ultra.
 1.10  28-Mar-1999  is Remove 20 lines of register dump from normal operation.
 1.9  28-Mar-1999  mhitch I had to have been asleep when I changed Ignatios's constants to register symbols.
Use the correct symbols for ODR full bits.
 1.8  28-Mar-1999  is Add back the "810" id string.
 1.7  28-Mar-1999  is Initialize all 16 elements. We're wide.
 1.6  26-Mar-1999  mhitch More 53c770 stuff: update 53c720/770 register defines and use them in
siop2.c. Add wide negotiation and Ultra support. Modify siop.c to match
the siop2.c sync negotiation changes. The CyberStorm MKIII driver now
supports 15 targets. Remove some old table-driven sync rate stuff from
the original Zeus driver.
 1.5  22-Mar-1999  is 53c810A identification
 1.4  13-Mar-1999  is Identify the chip type when attaching.
 1.3  13-Mar-1999  is The 53c720 and up are really different. For example, the method to determine,
when disconnecting etc., how much data were transferred, has changed.
Symptom: SIOP invalid instructions when doing data transfers to disks that
disconnect.
XXX The bits etc. need to be defined correctly in the siopreg.h file, and
symbolic values used.
 1.2  12-Mar-1999  is fix some typos introduced when integrating the driver
 1.1  07-Mar-1999  is Added very preliminary version of Symbios 53c7[27]0c driver and Cyberstorm
Mk. III SCSI backend, by Michael Hitch.
XXX No wide transfers supported at the moment.
 1.11.6.1  30-Nov-1999  itojun bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code). Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.
 1.11.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.11.2.1  22-Jun-1999  perry pullup 1.11->1.12 (is): disable adapter if completely unterminated
 1.14.14.1  21-Jun-2001  nathanw Catch up to -current.
 1.14.2.4  22-Apr-2001  is it's siopng, not sea.
 1.14.2.3  29-Mar-2001  bouyer Make these pass a compile test on i386.
 1.14.2.2  29-Mar-2001  bouyer Port to thorpej_scsipi.
 1.14.2.1  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.

I updated the amiga SCSI drivers, but completely untested yet (may not even
compile)
 1.15.4.1  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.15.2.3  16-Mar-2002  jdolecek Catch up with -current.
 1.15.2.2  11-Feb-2002  jdolecek Sync w/ -current.
 1.15.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.16.4.2  28-Feb-2002  nathanw Catch up to -current.
 1.16.4.1  08-Oct-2001  nathanw file siop2.c was added on branch nathanw_sa on 2002-02-28 04:07:00 +0000
 1.21.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.21.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.21.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.21.2.1  03-Aug-2004  skrll Sync with HEAD
 1.24.2.2  03-Sep-2007  yamt sync with head.
 1.24.2.1  21-Jun-2006  yamt sync with head.
 1.25.10.1  19-Apr-2006  elad sync with head - hopefully this will work
 1.25.8.1  13-Mar-2006  yamt sync with head.
 1.25.6.1  22-Apr-2006  simonb Sync with head.
 1.25.4.1  09-Sep-2006  rpaulo sync with head
 1.26.20.1  04-Jun-2007  wrstuden Update to today's netbsd-4.
 1.26.16.2  17-May-2007  yamt sync with head.
 1.26.16.1  12-Mar-2007  rmind Sync with HEAD.
 1.26.14.2  13-Dec-2008  bouyer Pull up following revision(s) (requested by mhitch in ticket #1247):
sys/arch/amiga/dev/siop.c: revision 1.59
sys/arch/amiga/dev/siop2.c: revision 1.31
Deal with unrecognized SCSI message byte - restart script to clear the
ACK. No longer hangs the driver when an unhandled message byte is seen.
 1.26.14.1  23-May-2007  riz Pull up following revision(s) (requested by mhitch in ticket #658):
sys/arch/amiga/dev/siop2.c: revision 1.28
sys/arch/amiga/dev/siop.c: revision 1.56
Fix warnings with DEBUG enabled.
 1.27.10.2  03-Oct-2007  garbled Sync with HEAD
 1.27.10.1  22-May-2007  matt Update to HEAD.
 1.27.4.1  11-Jul-2007  mjf Sync with head.
 1.27.2.2  09-Oct-2007  ad Sync with head.
 1.27.2.1  27-May-2007  ad Sync with head.
 1.28.8.1  03-Sep-2007  jmcneill Sync with HEAD.
 1.28.4.1  03-Sep-2007  skrll Sync with HEAD.
 1.29.2.1  06-Nov-2007  matt sync with HEAD
 1.30.30.2  16-Jan-2009  bouyer Pull up following revision(s) (requested by mhitch in ticket #256):
sys/arch/amiga/dev/siop2.c: revision 1.33
sys/arch/amiga/dev/siop.c: revision 1.61
For some reason lost in obscurity and time, I did not ever implement a
timeout capability to these drivers. Apparently no one has ever had
scsi devices that failed to complete a scsi operation in some fashion,
or at least no one has reported it as best I can remember. I've just
run into this situation and figured out that one disk would fail to
complete an I/O transaction and never timed out. Add the appropriate
timeout function to reset the controller and restart things.
 1.30.30.1  13-Dec-2008  bouyer Pull up following revision(s) (requested by mhitch in ticket #175):
sys/arch/amiga/dev/siop.c: revision 1.59
sys/arch/amiga/dev/siop2.c: revision 1.31
Deal with unrecognized SCSI message byte - restart script to clear the
ACK. No longer hangs the driver when an unhandled message byte is seen.
 1.30.28.2  28-Apr-2009  skrll Sync with HEAD.
 1.30.28.1  19-Jan-2009  skrll Sync with HEAD.
 1.30.26.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.30.20.3  11-Aug-2010  yamt sync with head.
 1.30.20.2  11-Mar-2010  yamt sync with head
 1.30.20.1  04-May-2009  yamt sync with head.
 1.30.16.1  17-Jan-2009  mjf Sync with HEAD.
 1.33.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.38.4.2  05-Mar-2011  rmind sync with head
 1.38.4.1  30-May-2010  rmind sync with head
 1.38.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.40.18.3  03-Dec-2017  jdolecek update from HEAD
 1.40.18.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.40.18.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.40.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.40.8.1  30-Oct-2012  yamt sync with head
 1.41.2.1  18-May-2014  rmind sync with head
 1.42.4.1  30-Oct-2014  martin Pull up following revision(s) (requested by maxv in ticket #165):
sys/arch/newsmips/stand/boot/netif_news.c: revision 1.9
sys/arch/mvme68k/stand/installboot/installboot.c: revision 1.19
sys/arch/arm/arm32/pmap.c: revision 1.300
sys/arch/amiga/dev/siop2.c: revision 1.43
sys/arch/amiga/amiga/disksubr.c: revision 1.62
sys/arch/news68k/news68k/bus_space.c: revision 1.13
sys/arch/amiga/dev/siop.c: revision 1.69
sys/arch/x86/x86/x86_autoconf.c: revision 1.72
Remove dead code in various places under arch/.
 1.43.20.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411

RSS XML Feed