NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/42870: mpt not working on big endian systems



>Number:         42870
>Category:       kern
>Synopsis:       mpt(4) driver is byte-order unaware
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 23 04:30:00 +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@localhost:/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:



Home | Main Index | Thread Index | Old Index