Userspace mmap to PCI is failing

From: lex000luthor
Date: Fri Feb 17 2017 - 17:21:49 EST


Hello,

I am trying to mmap a PCI device, but it fails with EINVAL.

<snip>
...
fd = open("/dev/mem", O_RDWR | O_SYNC);
...
rv = mmap64(0, size, PROT_READ, MAP_SHARED, fd, pci_addr);
...
<snip>

The pci_addr is the address obtained from lspci output which is a 64 bit
address.
The pci_addr has a value of 0x121ffb000000, is that weird?

Kernel is 3.4.10 64 bit and User space is 32 bit.


regards,
Lex