Page MenuHomeFreeBSD

pci_cfgreg: Add a PCI domain argument to the low-level register API
ClosedPublic

Authored by jhb on Nov 28 2023, 11:32 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 1, 11:46 PM
Unknown Object (File)
Tue, Mar 31, 9:36 PM
Unknown Object (File)
Wed, Mar 18, 2:37 PM
Unknown Object (File)
Wed, Mar 18, 1:01 AM
Unknown Object (File)
Sun, Mar 15, 6:10 PM
Unknown Object (File)
Sun, Mar 15, 6:14 AM
Unknown Object (File)
Fri, Mar 13, 9:07 AM
Unknown Object (File)
Thu, Mar 12, 11:21 PM

Details

Summary

This commit changes the API of pci_cfgreg(read|write) to add a domain
argument (referred to as a segment in ACPI parlance) (note that this
is not the same as a NUMA domain, but something PCI-specific). This
does not yet enable access to domains other than 0, but updates the
API to support domains.

Places that use hard-coded bus/slot/function addresses have been
updated to hardcode a domain of 0. A few places that have the PCI
domain (segment) available such as the acpi_pcib_acpi.c Host-PCI
bridge driver pass the PCI domain.

The hpt27xx(4) and hptnr(4) drivers fail to attach to a device not on
domain 0 since they provide APIs to their binary blobs that only
permit bus/slot/function addressing.

The x86 non-ACPI PCI bus drivers all hardcode a domain of 0 as they
do not support multiple domains.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 54682
Build 51571: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Nov 28 2023, 11:34 PM