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:
(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.