I just went through an experiment trying to mmap a PCI resource via
the /sys/bus/pci/devices/<device name>/resource[n] on a XSC3 platform.
I discovered, correct me if I am wrong, that remap_pfn_range only
acts on 2nd level (4K) pte's. On this platform PCI memory is only
available at a 36-bit physical address.
In looking for an answer I found this post from Deepak in the thread:
"clean way to support >32bit addr on 32bit CPU "
http://marc.theaimsgroup.com/?t=110540164100006&r=1&w=2
<snip>
Not doable. I believe PAE allows for normal 4K pages to be used when
mapping > 32-bits. XSC3 and ARMv6 only allow for > 32 bit addresses
when using 16MB pages (supersections), so we need to instead use
the hugetlb approach.
~Deepak
</snip>
Questions
1) Currently ARM does not appear to have support for hugetlbfs, is
this in the works / any pointers to help get me started with the code?
2) Does the hugetlbfs interface support PCI memory or is it only meant for RAM?
3) Is there a better approach than hugetlb to mmap PCI space in this scenario?
Thanks,
Dan