HomeFreeBSD

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

Description

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

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.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D42827

(cherry picked from commit 1587a9db92c03c738bb3f0fc5874b43c961e7c99)

Details

Provenance
jhbAuthored on Nov 29 2023, 6:31 PM
Reviewer
imp
Differential Revision
D42827: pci_cfgreg: Add a PCI domain argument to the low-level register API
Parents
rG49413aa308fc: ctladm: Only autoload cfiscsi.ko for iSCSI-specific commands
Branches
Unknown
Tags
Unknown