Module Name: src Committed By: bouyer Date: Sun Oct 20 13:16:57 UTC 2013
Modified Files: src/sys/arch/x86/pci [netbsd-6]: pci_machdep.c Log Message: Apply patch, requested by riastradh in ticket #962: sys/arch/x86/pci/pci_machdep.c 1.61 via patch Force PCI mode 1 when running under QEMU, to work around QEMU bug 897771. This should also make it possible to boot NetBSD under versions of KVM that have inherited said QEMU bug. Fixes PR kern/45671. To generate a diff of this commit: cvs rdiff -u -r1.54 -r1.54.2.1 src/sys/arch/x86/pci/pci_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x86/pci/pci_machdep.c diff -u src/sys/arch/x86/pci/pci_machdep.c:1.54 src/sys/arch/x86/pci/pci_machdep.c:1.54.2.1 --- src/sys/arch/x86/pci/pci_machdep.c:1.54 Wed Feb 15 16:30:29 2012 +++ src/sys/arch/x86/pci/pci_machdep.c Sun Oct 20 13:16:57 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: pci_machdep.c,v 1.54 2012/02/15 16:30:29 tsutsui Exp $ */ +/* $NetBSD: pci_machdep.c,v 1.54.2.1 2013/10/20 13:16:57 bouyer Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -73,7 +73,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.54 2012/02/15 16:30:29 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.54.2.1 2013/10/20 13:16:57 bouyer Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -522,6 +522,7 @@ pci_mode_detect(void) uint32_t sav, val; int i; pcireg_t idreg; + extern char cpu_brand_string[]; if (pci_mode != -1) return pci_mode; @@ -551,6 +552,13 @@ pci_mode_detect(void) return (pci_mode); } } + if (memcmp(cpu_brand_string, "QEMU", 4) == 0) { + /* PR 45671, https://bugs.launchpad.net/qemu/+bug/897771 */ +#ifdef DEBUG + printf("forcing PCI mode 1 for QEMU\n"); +#endif + return (pci_mode); + } /* * Strong check for standard compliant mode 1: