NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/51231: Detect PCI mode from BIOS if exists
>Number: 51231
>Category: kern
>Synopsis: Detect PCI mode from BIOS if exists
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Thu Jun 09 18:50:00 +0000 2016
>Originator: coypu
>Release: NetBSD-7.99.30
>Organization:
>Environment:
NetBSD net.Home 7.99.30 NetBSD 7.99.30 (GENERIC) #2: Tue Jun 7 04:32:16 IDT 2016 fly%net.Home@localhost:/usr/obj/sys/arch/amd64/compile/GENERIC amd64
>Description:
Currently we have a test to detect if PCI mode 1 or 2 are used in pci_machdep.c - pci_mode_detect.
This test fails for some VIA boards, and possibly more.
This causes a panic at boot:
acpi0 at mainbus0: Intel ACPICA 20131218
panic: pci_make_tag: bad request
It is possible to extract this information more reliably from BIOS.
OpenBSD does this:
https://grok.dragonflybsd.org/xref/openbsd/sys/arch/i386/pci/pci_machdep.c#492
They do not have quirks for VIATECH, which according to PR/46018 has PCI_MODE1_ADDRESS_REG return zero.
See also http://mail-index.netbsd.org/netbsd-users/2016/06/07/msg018583.html
for confirmation that OpenBSD correctly detects mode 1 in what is likely an identical scenario.
We could likely also remove the quirk needed for PR/46018.
Note linux does have quirks for some VIA stuff, so it may not be completely safe to remove! (feedback will be needed)
I don't know how to do this, so I am filing it as a bug so we will remember this is a Good Thing and should be done at some point.
>How-To-Repeat:
>Fix:
Home |
Main Index |
Thread Index |
Old Index