From owner-cvs-src@FreeBSD.ORG Mon Jul 2 20:08:21 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4D2AE16A468; Mon, 2 Jul 2007 20:08:21 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3CFDB13C448; Mon, 2 Jul 2007 20:08:21 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l62K8Lpg093689; Mon, 2 Jul 2007 20:08:21 GMT (envelope-from mjacob@repoman.freebsd.org) Received: (from mjacob@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l62K8LUd093688; Mon, 2 Jul 2007 20:08:21 GMT (envelope-from mjacob) Message-Id: <200707022008.l62K8LUd093688@repoman.freebsd.org> From: Matt Jacob Date: Mon, 2 Jul 2007 20:08:21 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/isp isp.c isp_freebsd.h isp_library.c ispvar.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jul 2007 20:08:21 -0000 mjacob 2007-07-02 20:08:21 UTC FreeBSD src repository Modified files: sys/dev/isp isp.c isp_freebsd.h isp_library.c ispvar.h Log: 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 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