diff --git a/sys/arch/alpha/pci/cia.c b/sys/arch/alpha/pci/cia.c index c90859c4157b..64bf8b458f72 100644 --- a/sys/arch/alpha/pci/cia.c +++ b/sys/arch/alpha/pci/cia.c @@ -1,4 +1,41 @@ -/* $NetBSD: cia.c,v 1.41 1998/06/05 17:24:11 thorpej Exp $ */ +/* $NetBSD: cia.c,v 1.42 1998/06/05 19:25:19 thorpej Exp $ */ + +/*- + * Copyright (c) 1998 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, + * NASA Ames Research Center. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ /* * Copyright (c) 1995, 1996 Carnegie-Mellon University. @@ -33,7 +70,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: cia.c,v 1.41 1998/06/05 17:24:11 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cia.c,v 1.42 1998/06/05 19:25:19 thorpej Exp $"); #include #include @@ -220,14 +257,23 @@ ciaattach(parent, self, aux) self->dv_xname); #endif - if ((ccp->cc_flags & CCF_ISPYXIS) != 0 && ccp->cc_rev < 1) { +#ifdef DEC_550 + if (hwrpb->rpb_type == ST_DEC_550 && + (hwrpb->rpb_variation & SV_ST_MASK) < SV_ST_MIATA_1_5) { /* - * Pass 1 Pyxis chips have a bug: DMA cannot cross + * Miata 1 systems have a bug: DMA cannot cross * an 8k boundary! Make sure PCI read prefetching * is disabled on these chips. Note that secondary * PCI busses don't have this problem, because of * the way PPBs handle PCI read requests. * + * In the 21174 Technical Reference Manual, this is + * actually documented as "Pyxis Pass 1", but apparently + * there are chips that report themselves as "Pass 1" + * which do not have the bug! Miatas with the Cypress + * PCI-ISA bridge (i.e. Miata 1.5 and Miata 2) do not + * have the bug, so we use this check. + * * XXX We also need to deal with this boundary constraint * XXX in the PCI bus 0 (and ISA) DMA tags, but some * XXX drivers are going to need to be changed first. @@ -244,6 +290,7 @@ ciaattach(parent, self, aux) REGVAL(CIA_CSR_CTRL) = ctrl; alpha_mb(); } +#endif /* DEC_550 */ switch (hwrpb->rpb_type) { #ifdef DEC_KN20AA