On Wednesday 27 August 2008, Roland Dreier wrote: > > I don't seem to be able to port this to ppc460gt: on this architecture > > the PCI register space can be mapped only to 36 bit address ranges > > with nonzero top nibbles. But mmap() (at least the one I have in > > 2.6.25) accepts only 32 bit values for addresses, hence there is no > > way to map PCI space into user space. > > In the past I've been able to use mmap64() on ppc440 to get at 36-bit > addresses. As far as I know this should still work.
Right, this is supposed to work. If it doesn't, report it as a bug. > Also you should be able to get at the BAR of a PCI device by using > mmap() on a resource file under /sys/devices, eg something like > /sys/devices/pci0000:00/0000:00:04.0/0000:0b:00.0/resource0 > (where the bus numbers obviously depend on your system and the resource > number depends on what BAR your device has registers in) This should work as well. The best way to do it however would be to implement a UIO device driver for your device, see e.g. http://lwn.net/Articles/232575/. That gives you proper control over the permissions and lets you handle interrupts and other things as well. Arnd <>< _______________________________________________ Linuxppc-embedded mailing list [email protected] https://ozlabs.org/mailman/listinfo/linuxppc-embedded
