Subject: port-alpha/8460: PCI I/O address assigning problem on alpha
To: None <gnats-bugs@gnats.netbsd.org>
From: Andreas Johansson <ajo@ymer.campus.luth.se>
List: netbsd-bugs
Date: 09/21/1999 02:35:46
>Number:         8460
>Category:       port-alpha
>Synopsis:       PCI I/O address assigning problem on alpha
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-alpha-maintainer (NetBSD/alpha Portmaster)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Sep 21 02:35:00 1999
>Last-Modified:
>Originator:     Andreas Johansson
>Organization:
>Release:        current as of 1999-08-21
>Environment:
AlphaPC 164SX
Promise Ultra33 PCI IDE card

System: NetBSD ymer 1.4I NetBSD 1.4I (YMER) #16: Fri Aug 13 00:16:51 CEST 1999 ajo@ymer:/usr/src/sys/arch/alpha/compile/YMER alpha


>Description:
Some SRM's assign I/O addresses to PCI cards that are higher than 0xffff.
These addresses are supposed to be supported by NetBSD, but when the machine
boots it receives an undocumented machine check as soon as it tries to access
the I/O registers of the card. If I manually (in the promise driver) change
the I/O addresses to something below 0x10000, everything works fine.

This happens to my Promise Ultra33 card and the same scenario has been
reported by others.

I've tried to set the I/O addresses to the address & 0xffff, in case it's the
Promise chip that can only handle 16 bit I/O addresses, but this doesn't work.
Also, no matter what I/O address is mapped and read below 0x10000, it is
possible to read them even though no interresting data is found. For all
addresses above 0xffff, the machine check occurs. It seems that something is
not set up right.

>How-To-Repeat:
Put a Promise Ultra33 in a SX and boot a current kernel that has pciide
configured.
>Fix:
Either find out why the high I/O addresses doesn't work or make some machine
dependent moving around of PCI I/O.

>Audit-Trail:
>Unformatted: