From 1ed426bc21dfe476ef844c1f0e13af526edf75ef Mon Sep 17 00:00:00 2001 From: phx Date: Sat, 23 Feb 2008 21:11:22 +0000 Subject: [PATCH] On the Pegasos2, we must never run PCI-configure for the MV64361 host bridge, otherwise the devices on that bus might no longer work correctly (e.g. interrupt flood). Approved by garbled. --- sys/arch/powerpc/pci/pci_machdep_ofw.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/arch/powerpc/pci/pci_machdep_ofw.c b/sys/arch/powerpc/pci/pci_machdep_ofw.c index c05dfd25bc1e..e56cc657ceb1 100644 --- a/sys/arch/powerpc/pci/pci_machdep_ofw.c +++ b/sys/arch/powerpc/pci/pci_machdep_ofw.c @@ -1,4 +1,4 @@ -/* $NetBSD: pci_machdep_ofw.c,v 1.10 2008/02/11 17:32:18 garbled Exp $ */ +/* $NetBSD: pci_machdep_ofw.c,v 1.11 2008/02/23 21:11:22 phx Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pci_machdep_ofw.c,v 1.10 2008/02/11 17:32:18 garbled Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pci_machdep_ofw.c,v 1.11 2008/02/23 21:11:22 phx Exp $"); #include #include @@ -491,6 +491,11 @@ genofw_pci_conf_hook(pci_chipset_tag_t pct, int bus, int dev, int func, */ if (strncmp(model_name, "Pegasos2", 8) == 0) { + /* never reconfigure the MV64361 host bridge */ + if (PCI_VENDOR(id) == PCI_VENDOR_MARVELL && + PCI_PRODUCT(id) == PCI_PRODUCT_MARVELL_GT64360) + return 0; + /* we want to leave viaide(4) alone */ if (PCI_VENDOR(id) == PCI_VENDOR_VIATECH && PCI_PRODUCT(id) == PCI_PRODUCT_VIATECH_VT82C586A_IDE)