]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Recover from some major omissions/problems with the 24XX port.
authorMatt Jacob <mjacob@FreeBSD.org>
Mon, 2 Jul 2007 20:08:20 +0000 (20:08 +0000)
committerMatt Jacob <mjacob@FreeBSD.org>
Mon, 2 Jul 2007 20:08:20 +0000 (20:08 +0000)
commit4607e8eed375ee34622d510c6de7d922843caca5
tree8d41ca883f700b6704bccd25e65c435609e54d44
parent5bead43650c401d7bab305a3c671d28ceeeb664e
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
issues.

Approved by: re (ken)
MFC after: 3 days
sys/dev/isp/isp.c
sys/dev/isp/isp_freebsd.h
sys/dev/isp/isp_library.c
sys/dev/isp/ispvar.h