hugetlbfs on ARM / how to mmap() 36-bit PCI memory?

From: Dan Williams
Date: Fri Jan 20 2006 - 12:46:03 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/