cvs commit: src/sys/dev/isp isp.c isp_freebsd.h isp_library.c ispvar.h

Matt Jacob mjacob at
Mon Jul 2 20:08:21 UTC 2007

mjacob      2007-07-02 20:08:21 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/isp          isp.c isp_freebsd.h isp_library.c 
  Recover from some major omissions/problems with the 24XX port.
  First, we were never correctly checking for a 24XX Status Type 0
  response- that cased us to fall through to evaluate status for
  commands as if this were a 2100/2200/2300 Status Type 0 response.
  This is *close*, but not quite the same. This has been reported
  to be apparent with some wierd lun configuration problems with
  some arrays. It became glaringly apparent on sparc64 where none
  of the correct byte swap things were done.
  Fixing this omission then caused a whole universe shifting debug
  cycle of endian issues for the 2400. The manual for 24XX f/w turns
  out to be wrong about the endianness of a couple of entities. The
  lun and cdb fields for the type 7 request are *not* unconditionally
  big endian- they happen to be opposite of whatever the endian of
  the current machine type is. Same with the sense data for the
  24XX type 0 response.
  While we're at it investigate and resolve some NVRAM endian
  Approved by:    re (ken)
  MFC after:      3 days
  Revision  Changes    Path
  1.148     +38 -13    src/sys/dev/isp/isp.c
  1.106     +5 -0      src/sys/dev/isp/isp_freebsd.h
  1.14      +11 -8     src/sys/dev/isp/isp_library.c
  1.85      +3 -0      src/sys/dev/isp/ispvar.h

More information about the cvs-src mailing list