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