I'm trying to bring up a (Yocto) linux PCIe device driver that I've used successfully under the QorIQ SDK, now porting to the imx6.
The driver fails when calling pci_request_regions.
I'm thinking this may be because:
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
and lspci for my PCIe device says:
|Region 0: Memory at fffc0000 (32-bit, non-prefetchable) [disabled] [size=256K]|
|Region 1: Memory at fffc0000 (32-bit, non-prefetchable) [disabled] [size=256K]|
Does it make sense that the vector/fixmap memory space and the memory mapped region for the PCIe device are conflicting? Or am I confusing memory spaces?
If it does, is there a (relatively) easy way to move the vector space to another address location for the imx6 in the context of Yocto and u-boot ?
Or must I redesign the PCIe device?