Page MenuHomeFreeBSD

Implement bhnd(4) backplane interrupt handling.
ClosedPublic

Authored by landonf on Sep 3 2016, 3:33 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mar 18 2024, 8:07 PM
Unknown Object (File)
Feb 24 2024, 5:00 AM
Unknown Object (File)
Feb 3 2024, 1:10 PM
Unknown Object (File)
Jan 28 2024, 5:14 PM
Unknown Object (File)
Dec 24 2023, 7:24 PM
Unknown Object (File)
Dec 23 2023, 8:52 AM
Unknown Object (File)
Nov 11 2023, 4:40 AM
Unknown Object (File)
Oct 21 2023, 6:16 PM
Subscribers

Details

Reviewers
mizhka
adrian
Summary

This adds bhnd(4) bus-level support for querying backplane interrupt vector
routing, and delegating machine/bridge-specific interrupt handling to the
concrete bhnd(4) driver implementation.

This delta provides initial support for interrupt assignment on newer bhndb(4)
bridged PCI devices, where we provide the PCI/MSI interrupt directly to
attached cores.

On PCI(e) devices, we do not currently enable pci<->backplane interrupt routing.
I'll be implementing the required bhndb_pci and siba_bhndb additions in
an upcoming diff.

On MIPS devices, we report a backplane interrupt count of 0, effectively
disabling bus-level interrupt assignment and allowing existing devices to
continue operating as they have been. Implementing MIPS support is mainly
blocking on INTRNG non-FDT regressions.

Changes:

  • Modified bhndb's resource bridging behavior to delegate child resource requests directly to the bridge's parent device bus if the requested resource type (e.g. SYS_RES_IRQ) isn't handled locally.
  • Added bhnd(4) bus-level methods for querying backplane-specific interrupt vector (ivec) assignments, and requesting assignment of interrupt resources to bhnd(4) children.
  • Extended bcma(4) and siba(4) child enumeration, querying ivecs and registering associated SYS_RES_IRQ resources.
  • IRQ resources are now reported in BUS_PROBE_NOMATCH output.
  • Implemented basic bhnd(4)-compatible MSI interrupt configuration in bhndb_pci.

Depends on D7768

Test Plan

Verified that PCI interrupts are correctly assigned on bcma/siba bridged
PCI chipsets.

Verified that device enumeration and resource allocation is unaffected on
MIPS SoCs.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 5023
Build 5092: arc lint + arc unit

Event Timeline

landonf retitled this revision from to Implement bhnd(4) backplane interrupt handling..
landonf updated this object.
landonf edited the test plan for this revision. (Show Details)
landonf added reviewers: adrian, mizhka.
mizhka edited edge metadata.

Also please land sketches for items mentioned by you in parallel review request

This revision is now accepted and ready to land.Sep 5 2016, 6:08 PM

This landed in r305444; I accidentally omitted the review URL.