Page MenuHomeFreeBSD

pci: Ignore PCRx devices resources
AcceptedPublic

Authored by andrew on Tue, Apr 8, 11:16 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 20, 7:21 PM
Unknown Object (File)
Sun, Apr 20, 7:06 PM
Unknown Object (File)
Fri, Apr 18, 4:27 AM
Unknown Object (File)
Fri, Apr 18, 12:08 AM
Unknown Object (File)
Thu, Apr 17, 10:30 PM
Unknown Object (File)
Thu, Apr 17, 2:46 AM
Unknown Object (File)
Sun, Apr 13, 2:59 PM
Unknown Object (File)
Sun, Apr 13, 2:26 PM
Subscribers

Details

Reviewers
jhb
markj
cognet
Group Reviewers
arm64
Summary

Some systems provide two PCI root complex devices in the ACPI tables.
Allow us to skip known pci-like devices even if they aren't detected
as a PCI root complex.

Co-authored-by: cognet

Diff Detail

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

Event Timeline

This revision is now accepted and ready to land.Tue, Apr 8, 11:41 AM
sys/dev/acpica/acpi_resource.c
643

Note that this case is for x86 truly is for PCI bridges only. If this device isn't a PCI bridge, I think I'd rather just have a separate quirk, so something like:

/* existing comment and code for PCI-bridges */

/*
  * Ignore memory resources for devices known to list invalid resources.
  */
if (type == SYS_RES_MEMORY && ACPI_ID_PROBE(...) <= 0)
    return (true);

I would also just rename pcilike_ids to bad_memresource_ids or some such in this case.

Is the device in question duplicating the full memory decoded ranges of the PCI bridge, or is it just listing resource that are a subset but conflict with the bridge? (It might be nice to see the resource ranges used by the device in question and the PCI bridge)