Page MenuHomeFreeBSD

pci_host_generic: allocate PCI, not CPU addresses.
AbandonedPublic

Authored by crowston_protonmail.com on Jun 22 2020, 12:05 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Oct 12, 1:06 AM
Unknown Object (File)
Sat, Oct 12, 1:06 AM
Unknown Object (File)
Sat, Oct 12, 12:52 AM
Unknown Object (File)
Sep 19 2024, 2:09 AM
Unknown Object (File)
Sep 18 2024, 8:25 PM
Unknown Object (File)
Sep 18 2024, 7:13 AM
Unknown Object (File)
Sep 18 2024, 12:48 AM
Unknown Object (File)
Sep 5 2024, 11:59 PM
Subscribers
None

Details

Reviewers
andrew
Summary

Resolve a bug on systems where the PCI controller's view of the address space of the system memory is not consistent with the CPU's. We now assume all addresses passed to pci_host_generic_core_alloc_resource() are PCI addresses, and
store them as such. Only in generic_pcie_activate_resource() is the PCI address is translated to a CPU address.

Test Plan

Tested on my Rpi4 with PCI-E controller driver.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 31865
Build 29424: arc lint + arc unit

Event Timeline

Sorry, I missed this. I fixed it in a different way in rS362493 by extracting the translation code into a new function.

I've tested it on qemu-system-arm -machine virt as this also has PCI address != phys address.