Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

NetBSD master CVS tree commits



chuck
Thu Mar 20 13:30:49 PST 1997
Update of /cvsroot/src/sys/dev/pci
In directory netbsd1:/var/slash-tmp/cvs-serv24462

Modified Files:
        if_en_pci.c 
Log Message:
add support for adaptec PCI atm cards (see midway.c log for details)


chuck
Thu Mar 20 13:34:49 PST 1997
Update of /cvsroot/src/sys/dev/ic
In directory netbsd1:/var/slash-tmp/cvs-serv24949

Modified Files:
        midway.c midwayvar.h midwayreg.h 
Log Message:
MAJOR CHANGES: [contributed by Chuck Cranor <chuck%ccrc.wustl.edu@localhost> and
                Anne Hutton <hutton%isi.edu@localhost>]:
   - 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@localhost>
  
   - 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@localhost>,
                                  Milind M Buddihikot 
<milind%ccrc.wustl.edu@localhost>,
                                  Dong Lin <dong%eecs.harvard.edu@localhost>
        
   - 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@localhost>

   - restructure and cleanup of en_read/en_write macros/inlines 
  
   - clean up some byte ordering stuff so that we are consistant throughout
          the driver





Home | Main Index | Thread Index | Old Index