Subject: kern/11730: Promise Ultra100 causes crash on alpha, despite IDE_16BIT_IOSPACE
To: None <gnats-bugs@gnats.netbsd.org>
From: Dave Huang <khym@bga.com>
List: netbsd-bugs
Date: 12/13/2000 15:32:15
>Number:         11730
>Category:       kern
>Synopsis:       Promise Ultra100 causes crash on alpha, despite IDE_16BIT_IOSPACE
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 13 15:32:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Dave Huang
>Release:        NetBSD 1.5N as of December 12, 2000
>Organization:
Name: Dave Huang     |   Mammal, mammal / their names are called /
INet: khym@bga.com   |   they raise a paw / the bat, the cat /
FurryMUCK: Dahan     |   dolphin and dog / koala bear and hog -- TMBG
Dahan: Hani G Y+C 25 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++
>Environment:
	
System: NetBSD yerfable.metonymy.com 1.5N NetBSD 1.5N (YERFABLE) #124: Wed Dec 13 08:23:03 CST 2000 khym@yerfable.metonymy.com:/usr/src.local/sys/arch/alpha/compile/YERFABLE alpha


>Description:
	Apparently, the Promise Ultra100/ATA controller can't handle
I/O ports over 0x10000, so it has the IDE_16BIT_IOSPACE flag set in
pciide.c. When the kernel attaches the card, it prints "pciide0:
bus-master DMA support present, but unused (registers at unsafe
address ...", then promptly crashes. Since the I/O space was never
mapped, sc->sc_dma_iot and sc->sc_dma_ioh aren't valid, but
pdc202xx_chip_map() still attempts to use them (at around line 3152 of
pciide.c).

>How-To-Repeat:
	Boot a -current kernel on an alpha with Promise Ultra100/ATA
controller.
>Fix:
	I guess wrap some of that stuff inside an if (sc->sc_dma_ok)...
>Release-Note:
>Audit-Trail:
>Unformatted: