Commit Graph

444 Commits

Author SHA1 Message Date
gwr
50b0bafbbb Allow separate control over the "per-target trace" feature
via the NCR53C9X_DEBUG value.  Add some padding for m68k.
1997-04-01 22:08:18 +00:00
jonathan
c1f72bba37 Add ifmedia hooks: include <ifmedia.h> and add sc_media to softc. 1997-03-30 22:47:05 +00:00
mycroft
11117540d2 Use a temporary data structure for holding probe information, rather than a
full softc.
1997-03-29 02:32:30 +00:00
mycroft
080350dc0d Use a temporary data structure for holding probe information, rather than a
full softc.
1997-03-28 23:47:08 +00:00
veego
7ae296c7de - new hardware reset hook, mainly for PCnet-ISA cards (79c960)
- new MD variable: sc_initmodemedia, 79c960 cards can select
  between two ports, but this needs to be done in the MI init mode page
- new defines for PCnet-ISA cards (79c960)
1997-03-27 21:01:50 +00:00
veego
5aa9546783 - new hardware reset hook, mainly for PCnet-ISA cards (79c960)
- new MD variable: sc_initmodemedia, 79c960 cards can select
  between two ports, but this needs to be done in the MI init mode page
- new defines for PCnet-ISA cards (79c960)
1997-03-27 21:01:49 +00:00
veego
a715085e43 - new hardware reset hook, mainly for PCnet-ISA cards (79c960)
- new MD variable: sc_initmodemedia, 79c960 cards can select
  between two ports, but this needs to be done in the MI init mode page
- new defines for PCnet-ISA cards (79c960)
1997-03-27 21:01:47 +00:00
scottr
b316767c92 Work around an ambiguity in the SCSI spec. Some implementations,
particularly older ones, don't do a SAVE DATA POINTER before disconnecting.
When the driver reconnects, it does an implicit RESTORE POINTERS, and
restores the data pointer from *before* the last transfer.  If the driver
calculates the residual using the data pointer and doesn't account for
this, the residual will be wrong.

What we do is test for the SDEV_AUTOSAVE quirk when we see a disconnect
message, falling through to do a SAVE DATA POINTER if the quirk applies
to this target.

The workaround was suggested by Mycroft, who also provided the explanation
of the problem.  Actual code was (mostly) ripped off from the 53C9x driver.
1997-03-27 07:30:40 +00:00
gwr
8be7d1ef9e No longer need the hack that forced SCSI_POLL when cold. 1997-03-27 01:16:01 +00:00
pk
c5d5c54038 Add workaround for the "extraneous bytes after re-select" problem that
ESP100 chips may exhibit.
1997-03-27 00:29:57 +00:00
thorpej
66908db327 Resolve conflicts from merge. 1997-03-26 02:08:07 +00:00
gwr
5c88d15269 When cold!=0 force SCSI_POLL (otherwise swapconf will hang) 1997-03-24 17:16:45 +00:00
thorpej
4c03c2945d Resolve conflicts from merge. 1997-03-24 00:35:02 +00:00
cgd
da14b3d856 clean up isp_poll() so that it works more correctly. (Modeled on the version
in the BusLogic driver.)
1997-03-23 00:50:07 +00:00
chuck
63c14f2d75 MAJOR CHANGES: [contributed by Chuck Cranor <chuck@ccrc.wustl.edu> and
Anne Hutton <hutton@isi.edu>]:
   - add support for Adaptec 155 PCI ATM cards (e.g. ANA-5940)
          - add sc->is_adaptec to handle differences between cards.
          - break out MID_MK_TXQ/MID_MK_RXQ seperate macros to handle
                  the new Adaptec format TXQ/RXQ.
          - adjust en_dqneed to return 1 on ADP (since the Adaptec can
                  DMA anything in one DRQ/DTQ!)
          - add hook for a bus specific reset function (adaptec has
                  a seperate reset register that needs to be hit when
                  resettting the midway).
          - adjust DMA test to not worry about burst sizes on the
                  adaptec (since it handles it all for us!) and to handle
                  the new DTQ/DRQ format.
          - add Adaptec DMA support to en_txlaunch() and en_service()


BUG FIXES:
   - fixed receiver panic under heavy load ("lost mbuf in slot 0!").
          when the reassembly buffer overflows, the T-bit is set in
          the RDB and the data field is empty.  en_service() sets up
          a 4-byte (RDB size) dummy DMA without IF_ENQUEUE.  but the
          recv intr handling in en_intr() always does IF_DEQUEUE.
          as a result, a successive recv intr loses its mbuf and
          leads to a panic.  the solution is to only IF_DEQUEUE if
          the interrupt has non-zero length (indicating that there
          is an mbuf to get).   in order for this to work, EN_DQ_MK
          must always be non-zero.   we do this by or'ing in an unused
          bit (0x80000).
                  reported by: Kenjiro Cho <kjc@csl.sony.co.jp>

   - fix setting of transmit channel when txspeed[] is non-zero
          (e.g. traffic shaping).    the old scheme didn't work
          properly (it allowed the same VCI to use multiple tx channels
          thus defeating the txspeed[] parameter).   the new scheme
          statically assigns a VC to a channel when txspeed[] is set.
          [note that the code to set txspeed[] isn't in the driver right
          now since a MI interface to do this hasn't been made yet]
          we add sc->txvc2slot[] and sc->txslot[n].nref for this.
                  reported by: Kenjiro Cho <kjc@csl.sony.co.jp>,
                                  Milind M Buddihikot <milind@ccrc.wustl.edu>,
                                  Dong Lin <dong@eecs.harvard.edu>

   - when doing SRAM copies, be sure to round up the length to the next
          largest word (otherwise the driver will try to do a byte clean
          up DMA and then get an ID error interrupt).


MINOR CLEANUPS:
   - clean up loops in DMA test
                  contributed by: Kenjiro Cho <kjc@csl.sony.co.jp>

   - restructure and cleanup of en_read/en_write macros/inlines

   - clean up some byte ordering stuff so that we are consistant throughout
          the driver
1997-03-20 21:34:42 +00:00
mycroft
7a55cafeeb Implement set_format. 1997-03-20 16:51:38 +00:00
mikel
80a8a81608 normalize off-by-four ad1848 register offsets. 1997-03-19 06:45:21 +00:00
is
bde018355f Signed shifts are evil.
Thanks to Michael Smith for reporting, Jason Thorpe for pointing to the
report, doing a quick workaround which pointed me to the right code part and
for testing the final fix.
1997-03-17 18:29:56 +00:00
thorpej
0398318515 Resolve conflicts from merge. 1997-03-17 03:44:49 +00:00
thorpej
80e6765189 - Add support for media selection via if_media. If the front-end
does not supply media types, default to the "manual" type.
- Clean up the ETHER_CMP stuff slightly.
- Keep track of our carrier status, for media status requests.
1997-03-17 03:14:03 +00:00
is
07b064e02e New ARP system, supports IPv4 over any hardware link.
Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
1997-03-15 18:09:08 +00:00
mikel
8147d1718f fix various AD1848/PSS misfeatures; from Jason Baker in PR kern/2045.
also did some misc cleanup of my own.
1997-03-13 08:34:49 +00:00
mycroft
919efaeb60 Make the microcode table const. 1997-03-13 03:33:03 +00:00
mycroft
ac3b8b13b7 Don't share the silence block between devices. Make silence filling work for
more encodings, and make it device-independent.  From Lennart Augustsson, in
PR kern/3305.
1997-03-13 02:19:32 +00:00
cgd
4c654c0acf fixes from Matt Jacob so that these can compile and run on the Alpha.
(aic7xxx has been tested and works on the Alpha, bha has not yet been
tested on thne Alpha.)
1997-03-13 00:38:48 +00:00
cgd
cf26d31ad2 NetBSD RCS ID tweaks, a few comment block tweaks. Also, make copyright
notices consistent (per Matt Jacob).
1997-03-12 21:06:41 +00:00
cgd
099e30a322 ISP 10x0 driver from Matthew Jacob of NASA Ames Research Center.
(March 12, 1997 version).
1997-03-12 20:44:50 +00:00
cgd
9753d8f7a5 properly #define MC_REGB_SQWE. From Matt Jacob 1997-03-12 06:53:42 +00:00
chuck
7df0dbdd33 minor fixes to freebsd code sections from Kenjiro Cho <kjc@csl.sony.co.jp>
get ready to add support for adaptec version of midway card (which
has a different DMA interface).
1997-03-11 23:30:19 +00:00
leo
3d849b9429 - Turn the sc_[tr]bufaddr fields into arrays of addresses instead of just
the base address. This allows for a more flexible layout of buffers
  in the Lance's memory.
- Add a new element 'sc_saved_csr0' to am7990_softc. It's value is or-ed
  with the current csr0 value in the am7990_intr() function. This allowes
  for a 'deferred' interrupt sceme.
1997-03-09 21:12:39 +00:00
mikel
a71e39e5d5 fix some spelling errors noticed by Charles Kane <ckane@mipos2.intel.com>.
fix some more noticed by myself; all are in comments or strings.
1997-03-09 06:10:32 +00:00
mycroft
e481e52aa9 Fix a couple of splhigh()s that should be splbio(). 1997-03-04 21:42:32 +00:00
briggs
2163898eeb Add the 53c96 variant. 1997-02-27 13:59:32 +00:00
thorpej
dd89d8fd78 Machine-independent NCR 53c9x SCSI driver, derived from the SPARC/Alpha
versions.  Thanks to Chris Demetrious and Paul Krannenburg for the
initial work towards merging the two.
1997-02-27 01:12:07 +00:00
gwr
9f53f9825f Use sc_no_disconnect (per-target) instead of NCR5380_PERMIT_RESELECT. 1997-02-26 22:23:48 +00:00
gwr
07378343ed Add the new member "sc_no_disconnect" to ncr5380_softc, and
remove NCR5380_PERMIT_RESELECT.
1997-02-26 22:22:13 +00:00
gwr
4dd31a28f0 Integrate fix for rude targets that transfer more data than requested.
(From Matthias Pfaller).
1997-02-26 20:31:16 +00:00
sommerfe
9def46bf50 Fix PR3260: cosmetic glitch in aha autoconf output. 1997-02-26 04:52:13 +00:00
gwr
1da91c27bc Tweak the KGDB glue slightly - do the printf here. 1997-02-24 16:03:05 +00:00
gwr
f9d32cbb9b Add declaration for zs_check_kgdb() 1997-02-24 16:01:39 +00:00
is
b22d1088ea Make this compile again on NetBSD-current/i386. 1997-02-20 17:53:50 +00:00
mikel
b6a5671c00 make sure that packets are ours before passing them up if interface is
in promiscuous mode; from Juergen Weiss in PR kern/3121.
1997-02-20 06:59:32 +00:00
mikel
2af30c1cd3 make sure max_target is initialized for both buses on multibus parts;
from Anders Hjalmarsson in PR 3103.
1997-02-20 05:15:50 +00:00
jonathan
c7cec27edf Move if_ep media-sense code from front ends to inside back end,
to prepare for if_media, and to support EISA 3c59x cards:

  * change epconfig() to take a short that encodes the chipset
    type (3c509, or Demon/Vortex/Boomerang).
  * add  distinct 3c509 and Demon/Vortex/Boomerang media-sense
    functions to back end.
  * Add EISA match/attach support for the 3c592 and 3c597
    (Demon) cards as well as the 3c509-comatibl EISA 3c509/3c579.

  * Assume that ISA and ISA PnP cards are 3c509-style, until
    proof to the contrary (e.g. large packet support).

Tested on 3c595, 3c590, and 3c509b. Not tested on 3c515 or Demon.
1997-02-18 10:51:06 +00:00
jonathan
4fdff0ed65 * Add ep_complete_cmd() function, to issue commands that perform a reset
(RX_RESET, TX_RESET, GLOBAL_RESET).
  Commands issued while a reset is in progress may be dropped. The driver
  must wait until resets are complete; ep_complete_cmd() does so.
* Change RX_RESET,  TX_RESET, GLOBAL_RESET to use ep_complete_cmd().

* Revert epconfig() to use inline RX_RESET, TX_RESET.
  That avoids accidentally setting IFF_UP, which  breaks both diskless boot,
  and "halt" commands issued before the interface is brought up.
1997-02-16 04:09:18 +00:00
mycroft
1dd1504980 Move the aha ISA probe functions into a separate file. 1997-02-07 17:37:27 +00:00
cgd
f89ffa1fe4 don't clobber IER in cominit(). (suggested by mycroft.) 1997-01-30 19:42:33 +00:00
chuck
16ef494b41 bug fix:
- if aal5 frame has a CRC error then the length field in the aal5 trailer
	may not be valid, so we can not use it [and we must dump the frame]
	[Yuhang Sun <sunyh@dworkin.wustl.edu> & chuck@ccrc.wustl.edu]
1997-01-24 20:58:42 +00:00
mycroft
54133e5f93 Remove a previous gratuitous change, and KNF police. 1997-01-17 22:09:09 +00:00
gwr
77eb8c5a65 fix alignment again for m68k 1997-01-15 18:22:35 +00:00