NetBSD Problem Report #42870

From cross@distal.com  Tue Feb 23 04:28:39 2010
Return-Path: <cross@distal.com>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id B838D63C49F
	for <gnats-bugs@gnats.netbsd.org>; Tue, 23 Feb 2010 04:28:39 +0000 (UTC)
Message-Id: <201002230428.o1N4SZas001527@harmony.distal.com>
Date: Mon, 22 Feb 2010 23:28:35 -0500 (EST)
From: cross+netbsd@distal.com
Reply-To: cross+netbsd@distal.com
To: gnats-bugs@gnats.NetBSD.org
Subject: mpt not working on big endian systems
X-Send-Pr-Version: 3.95

>Number:         42870
>Category:       kern
>Synopsis:       mpt(4) driver is byte-order unaware
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    chs
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 23 04:30:00 +0000 2010
>Closed-Date:    Thu Apr 29 23:58:28 +0000 2010
>Last-Modified:  Thu Dec 02 23:50:02 +0000 2010
>Originator:     Chris Ross
>Release:        NetBSD 5.99.24 ; NetBSD 5.0_STABLE
>Organization:
>Environment:
System: NetBSD harmony.distal.com 5.0_STABLE NetBSD 5.0_STABLE (HARMONY) #1: Sun Feb 21 16:33:40 EST 2010 cross@skaro.distal.com:/export/obj/NetBSD-5.sparc64/data/NetBSD/src-5/sys/arch/sparc64/compile/HARMONY sparc64
Architecture: sparc64
Machine: sparc64
>Description:
The mpt(4) driver appears to be unaware of byte-order issues, and therefore
when trying to attach an LSI-21320 controller on my sparc64, I see only:

psycho1 at mainbus0 addr 0xfffc6000
psycho1: SUNW,psycho: impl 0, version 4: ign 7c0 bus range 128 to 128; PCI bus 128
pci1 at psycho1
pci1: i/o space, memory space enabled
mpt0 at pci1 dev 1 function 0: Symbios Logic 53c1020/53c1030
mpt0: applying 1030 quirk
mpt0: interrupting at ivec 0
mpt0: mpt_recv_handshake_cmd timeout3
mpt0: mpt_get_iocfacts failed
mpt0: mpt_recv_handshake_cmd timeout3
mpt0: mpt_get_iocfacts failed
mpt0: mpt_recv_handshake_cmd timeout3
mpt0: mpt_get_iocfacts failed
mpt0: failed to initialize IOC
mpt1 at pci1 dev 1 function 1: Symbios Logic 53c1020/53c1030
mpt1: applying 1030 quirk
mpt1: interrupting at ivec 1
mpt1: mpt_recv_handshake_cmd timeout3
mpt1: mpt_get_iocfacts failed
mpt1: mpt_recv_handshake_cmd timeout3
mpt1: mpt_get_iocfacts failed
mpt1: mpt_recv_handshake_cmd timeout3
mpt1: mpt_get_iocfacts failed
mpt1: failed to initialize IOC
timer0 at mainbus0 addr 0xfff9fc00 irq vectors 7ec

  Investigation yields both that there are many 16-bit memory operations (which
may or may not be a problem at that level, but is a classic sparc64 issue),
and that the driver seems to pay no attention what-so-ever to byte ordering.

>How-To-Repeat:
	Attach a LSI 1020/1030 PCI controller to a sparc64 (or other big-endian
syetem), and configure a kernel with the mpt device.
>Fix:

>Release-Note:

>Audit-Trail:
From: Chuck Silvers <chs@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/42870 CVS commit: src/sys/dev/ic
Date: Wed, 28 Apr 2010 22:45:27 +0000

 Module Name:	src
 Committed By:	chs
 Date:		Wed Apr 28 22:45:27 UTC 2010

 Modified Files:
 	src/sys/dev/ic: mpt.c mpt.h mpt_debug.c mpt_netbsd.c

 Log Message:
 add byte-swapping so that this works on BE platforms.
 the logic is based on the current freebsd driver.
 fixes PR 42870.


 To generate a diff of this commit:
 cvs rdiff -u -r1.13 -r1.14 src/sys/dev/ic/mpt.c
 cvs rdiff -u -r1.6 -r1.7 src/sys/dev/ic/mpt.h src/sys/dev/ic/mpt_debug.c
 cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ic/mpt_netbsd.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

Responsible-Changed-From-To: kern-bug-people->chs
Responsible-Changed-By: chs@NetBSD.org
Responsible-Changed-When: Thu, 29 Apr 2010 23:58:28 +0000
Responsible-Changed-Why:
take


State-Changed-From-To: open->closed
State-Changed-By: chs@NetBSD.org
State-Changed-When: Thu, 29 Apr 2010 23:58:28 +0000
State-Changed-Why:
byte-swapping has been added to mpt.


From: "Soren Jacobsen" <snj@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/42870 CVS commit: [netbsd-5] src/sys/dev/ic
Date: Thu, 2 Dec 2010 23:46:00 +0000

 Module Name:	src
 Committed By:	snj
 Date:		Thu Dec  2 23:45:59 UTC 2010

 Modified Files:
 	src/sys/dev/ic [netbsd-5]: mpt.c mpt.h mpt_debug.c mpt_netbsd.c

 Log Message:
 Pull up following revision(s) (requested by riz in ticket #1487):
 	sys/dev/ic/mpt.c: revision 1.14
 	sys/dev/ic/mpt.h: revision 1.7
 	sys/dev/ic/mpt_debug.c: revision 1.7
 	sys/dev/ic/mpt_netbsd.c: revision 1.15
 add byte-swapping so that this works on BE platforms.
 the logic is based on the current freebsd driver.
 fixes PR 42870.


 To generate a diff of this commit:
 cvs rdiff -u -r1.10 -r1.10.42.1 src/sys/dev/ic/mpt.c
 cvs rdiff -u -r1.6 -r1.6.42.1 src/sys/dev/ic/mpt.h
 cvs rdiff -u -r1.4 -r1.4.86.1 src/sys/dev/ic/mpt_debug.c
 cvs rdiff -u -r1.14 -r1.14.14.1 src/sys/dev/ic/mpt_netbsd.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.