Under current Linux kernels, the various PCI BARs exist as mmap-able files in /sys/bus/pci; for example, /sys/bus/pci/devices/0000:02:09.1/resource0 is BAR 0 of device 0000:02:09.1 on this machine. You could mmap() the BARs at the address you want and access the device directly.
mmap() the BARs
Under current Linux kernels, the various PCI BARs exist as mmap-able files in /sys/bus/pci; for example, /sys/bus/pci/devices/0000:02:09.1/resource0 is BAR 0 of device 0000:02:09.1 on this machine. You could mmap() the BARs at the address you want and access the device directly.