[Bug 293257] pci_dw doesn't support non-zero buses

[email protected] Wed, 18 Feb 2026 06:34:26 +0000
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293257

            Bug ID: 293257
           Summary: pci_dw doesn't support non-zero buses
           Product: Base System
           Version: 14.3-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: arm
          Assignee: [email protected]
          Reporter: [email protected]

Created attachment 268155
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=268155&action=edit
Patch to handle non-zero bus numbers and also initialize ATU upper limit

In bringing up a RK3588 based arm64 platform using FreeBSD 14
I ran into a PCI Express issue (it wasn't seeing any attached devices).

  1) In comparing FreeBSD with uboot I came across a commit noting:

       drivers: pci: pcie_dw_common: add upper-limit to iATU
       Ben Dooks authored Oct 20, 2022 and Tom Rini committed Dec 12, 2022
       The 4.6 spec added an upper 32bits to the ATU limit, and since this
       driver is already assuming the unrolled feature added in the 4.8
       specification this really should be set.

     I addeded code to set the upper ATU limit register (ended up being
     unrelated to the issue).

  2) The platform has multiple PCI busses with their numbers being assigned
     in the device-tree.  dev/ofw_pcib has code that reads this information
     which ends up being propagated to the generic dev/pci code.  Unfortunately
     pci_dw expects the PCI bus to start at zero (the code has a comment
     noting the value might need to be configurable).  I added code to use
     the same bus information as dev/ofw_pcib and now see the two attached PCI
     Express devices (each on a separate non-zero numbered bus).  The code
     falls back to the hardcode values if the device-tree property is missing.

-- 
You are receiving this mail because:
You are the assignee for the bug.