[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.