Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Mar 1996 19:21:56 -0800 (PST)
From:      "Justin T. Gibbs" <gibbs>
To:        CVS-committers, cvs-all, cvs-sys
Subject:   cvs commit:  src/sys/dev/aic7xxx aic7xxx.seq aic7xxx_asm.c aic7xxx_reg.h src/sys/scsi scsi_base.c scsiconf.h src/sys/i386/eisa aic7770.c src/sys/i386/isa bt5xx-445.c src/sys/i386/scsi aic7xxx.c aic7xxx.h src/sys/pci aic7870.c ncr.c src/sys/sys queue.h
Message-ID:  <199603310321.TAA08774@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
gibbs       96/03/30 19:21:52

  Modified:    sys/dev/aic7xxx  aic7xxx.seq aic7xxx_asm.c aic7xxx_reg.h
  Log:
  aic7xxx.seq:
      Fix support for the aic7850 by looking only at the relavent bits of the
      QINCNT.  The 7850 puts random garbage in the high bits and all my attempts
      to determine the cause of this failed.  This approach does seem to work
      around the problem.
  
      Don't trust SCSIPERR to tell us when there is a parity error.  On
      some revs of the 7870 and the 7880, this bit follows the parity of
      the current byte.  Instead of using a SEQINT to tell the kernel,
      re-enable the standard parity error interrupt since it seems to pause
      the sequencer right at the time of the error which is the effect we were
      looking for anyway.
  
  aic7xxx_reg.h:
      Remove PARITY_ERROR seqeuncer interrupt type, its no longer used.
  
      Define QCOUNTMASK as the SRAM location for the mask to use on the
      QINCNT register.  QCOUNTMASK is determined by the number of SCBs
      supported by the device we're working on.
  
  aic7xxx_asm.c
      Properly check the return value of fopen, and define the arg list
      in getopt correctly.
      Submitted by: Pete Bentley <pete@demon.net>
  
  Revision  Changes    Path
  1.32      +3 -11     src/sys/dev/aic7xxx/aic7xxx.seq
  1.12      +4 -4      src/sys/dev/aic7xxx/aic7xxx_asm.c
  1.7       +6 -8      src/sys/dev/aic7xxx/aic7xxx_reg.h

  Modified:    sys/i386/eisa  aic7770.c
  Log:
  Don't set the number of SCBs here.  aic7xxx.c determines the number of
  SCBs by walking them.
  
  Revision  Changes    Path
  1.26      +1 -7      src/sys/i386/eisa/aic7770.c

  Modified:    sys/i386/isa  bt5xx-445.c
  Log:
  Override the unit number passed into us in the isa_device structure with
  the current unit in bt_unit.  We do this as a kludge to make the unit nubmer
  work properly between the pci/eisa/isa bt boards that are in the system.
  
  Revision  Changes    Path
  1.3       +8 -1      src/sys/i386/isa/bt5xx-445.c

  Modified:    sys/i386/scsi  aic7xxx.c aic7xxx.h
  Log:
  Fix support for the aic7850 by looking only at the relavent bits of the
  QINCNT.  The 7850 puts random garbage in the high bits and all my attempts
  to determine the cause of this failed.  This approach does seem to work
  around the problem.
  
  Go back to relying on the SCSIPERR interrupt instead of having the sequencer
  interrupt at the beginning of ITloop after a parity error occured.
  
  Determine the number of SCBs on a card automatically and base the qcntmask
  on the number of SCBs.
  
  Add entries for 11.4MHz, 8.8MHz, 8.0MHz, and 7.2MHz to ULTRA portion of
  the syncrate table.  They seem to work fine on the 2940UW I have here and
  will allow more non-ultra devices (like my tape drive) to run sync while
  the adapter is in ULTRA mode.
  
  Return XS_SELTIMEOUT instead of XS_TIMEOUT for selection timeouts.  I was
  getting sick of waiting for the SCSI code to retry each non-existant unit
  multiple times during boot and XS_SELTIMEOUT bypasses all retries.
  
  Use new SLIST queue macros.  This was inspired by NetBSD using TAILQs in
  their SCSI drivers.  For optimum cache hits, the free scb list should
  be LIFO which is what the old and new code does.  NetBSD implemented a
  FIFO queue for some reason.
  
  Spaces -> tabs.
  
  Revision  Changes    Path
  1.60      +214 -171  src/sys/i386/scsi/aic7xxx.c
  1.23      +4 -29     src/sys/i386/scsi/aic7xxx.h

  Modified:    sys/pci   aic7870.c ncr.c
  Log:
  ncr.c:
      Use new XS_SELTIMEOUT error code for selection timeouts.
  
  aic7870.c:
     Move SCB walking code to aic7xxx.c and make it work for all card types.
  
     The flag AHC_EXTSCB is no longer needed since the SCBs are walked in
     all cases now.
  
  Revision  Changes    Path
  1.28      +2 -29     src/sys/pci/aic7870.c
  1.69      +9 -4      src/sys/pci/ncr.c

  Modified:    sys/scsi  scsi_base.c scsiconf.h
  Log:
  Implement the XS_SELTIMEOUT error code.  This causes the SCSI code to
  not retry again and should be used when a device times out during selection
  (ie is not on the bus).  This should speed up the boot sequence.
  
  Revision  Changes    Path
  1.37      +2 -1      src/sys/scsi/scsi_base.c
  1.41      +3 -2      src/sys/scsi/scsiconf.h

  Modified:    sys/sys   queue.h
  Log:
  Implement the SLIST and the STAILQ macros.  This gives a program all the
  aesthetics of using the 4.4 queue macros without paying undo space or time
  in scenartios where a singly-linked list works fine.
  
  From queue.h:
  /*
   * A singly-linked list is headed by a single forward pointer. The elements
   * are singly linked for minimum space and pointer manipulation overhead at
   * the expense of O(n) removal for arbitrary elements. New elements can be
   * added to the list after an existing element or at the head of the list.
   * Elements being removed from the head of the list should use the explicit
   * macro for this purpose for optimum efficiency. A singly-linked list may
   * only be traversed in the forward direction.  Singly-linked lists are ideal
   * for applications with large datasets and few or no removals or for
   * implementing a LIFO queue.
   *
   * A singly-linked tail queue is headed by a pair of pointers, one to the
   * head of the list and the other to the tail of the list. The elements are
   * singly linked for minimum space and pointer manipulation overhead at the
   * expense of O(n) removal for arbitrary elements. New elements can be added
   * to the list after an existing element, at the head of the list, or at the
   * end of the list. Elements being removed from the head of the tail queue
   * should use the explicit macro for this purpose for optimum efficiency.
   * A singly-linked tail queue may only be traversed in the forward direction.
   * Singly-linked tail queues are ideal for applications with large datasets
   * and few or no removals or for implementing a FIFO queue.
   */
  
  Revision  Changes    Path
  1.8       +131 -3    src/sys/sys/queue.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603310321.TAA08774>