I am trying to transfer data to/from a memory mapped region using
ioremap and friends. I obtain the MCHBAR physical address value by
reading the PCI config space.

The thing to note is that the address obtained(as mentioned earlier) is
listed in /proc/iomem as 'reserved'. So request_mem_region() obviously
fails. If I ignore the return value of request_mem_region and do a
ioremap, I get a non-NULL pointer, but reading data using the pointer
so obtained (through ioread8 / memcpy_fromio ) gives me all zeroes.

Is the kernel is not allowing read/write to happen in the region
specified; is there a way to obtain access, some workaround? If the
kernel has already done the mapping, then is there a mechanism (or
kernel api) that allows me to read from the pre-mapped region?