Project

General

Profile

Actions

Bug #11790

closed

ACPI method _CRS should be used to identify bus numbers during initial probe

Added by Paul Winder over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
kernel
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

During boot the _BBN from ACPI are scanned to populate the PCI tree with bus root nodes.

Subsequently, a scan and enumeration is performed starting from bus 0 through to what ever is deemed to be maximum PCI bus number. During this scan, discovered devices are added to the device tree and initial device nodes are created. A consequence of this, is if the bus number pre-populated using the _BBN does not match any discovered devices we end up with a childless node.

These childless nodes can cause problems with libtopo which crashes when it encounters an empty root. libtopo should handle that situation better.

This issue addresses the reason for the empty root devices.

_BBN is not a reliable method for getting a bus number, a better way is to use the _CRS (current resource) ACPI method which holds the bus number actually assigned.


Related issues

Has duplicate illumos gate - Bug #11860: Use _CRS instead of _BBN to get assigned PCI busClosed

Actions
Actions #2

Updated by Paul Winder over 2 years ago

  • Subject changed from APCI method _CRS should be used to identify bus numbers during initial probe to ACPI method _CRS should be used to identify bus numbers during initial probe
Actions #3

Updated by Paul Winder over 2 years ago

The change has been tested on various Supermicro systems from them X9, X10 and X11 family of products as well as the Celestica Athena.

Also encountered a PCI enumeration issue brought up after applying #11609 which this resolved,

The change does not change PCI enumeration on running systems as long as /etc/devices/pci_unitaddr_persistent remains present. Fresh installation will use _CRS method, and removal of afore mentioned file will cause the PCI buses to be re-evaluated.

Actions #4

Updated by Electric Monk over 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 80 to 100

git commit 3349e36e2896c71806ddaed726d65171a3045358

commit  3349e36e2896c71806ddaed726d65171a3045358
Author: Paul Winder <paul@winders.demon.co.uk>
Date:   2019-11-04T21:09:45.000Z

    11790 ACPI method _CRS should be used to identify bus numbers during initial probe
    Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
    Reviewed by: Toomas Soome <tsoome@me.com>
    Reviewed by: Igor Kozhukhov <igor@dilos.org>
    Reviewed by: Randy Fishel <randyf@sibernet.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions #5

Updated by Robert Mustacchi over 2 years ago

  • Has duplicate Bug #11860: Use _CRS instead of _BBN to get assigned PCI bus added
Actions

Also available in: Atom PDF