HomeFreeBSD

pci_user: call bus_translate_resource before BAR mmap

Description

pci_user: call bus_translate_resource before BAR mmap

On some armv8 machines it is possible that the mapping between CPU
and PCI bus BAR base addresses is not 1:1. In case a BAR is allocated
in kernel using bus_alloc_resource_any this translation is handled in
ofw_pci_activate_resource.

Do the same in pci_user.c by calling bus_translate_resource devmethod.
This fixes mmaping BARs to userspace on Marvell SoCs (Armada 7k8k/CN913x)
and possibly many other platforms.

Submitted by: Kornel Duleba <mindal@semihalf.com>
Reviewed by: kib
Obtained from: Semihalf
Sponsored by: Marvell
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D29604

Details

Provenance
mwAuthored on Apr 6 2021, 3:10 PM
Reviewer
kib
Differential Revision
D29604: pci_user.c: Call bus_translate_resource before mmaping bars
Parents
rG1c1ead9b94a1: pciconf: Use VM_MEMATTR_DEVICE on supported architectures
Branches
Unknown
Tags
Unknown