Messages in this thread | | | From | "Gianluca Varenni" <> | Subject | Re: Problem mapping small PCI memory space. | Date | Thu, 19 May 2005 13:28:51 -0700 |
| |
----- Original Message ----- From: "Richard B. Johnson" <linux-os@analogic.com> To: "Gianluca Varenni" <gianluca.varenni@gmail.com> Cc: "Linux kernel" <linux-kernel@vger.kernel.org> Sent: Thursday, May 19, 2005 12:43 PM Subject: Re: Problem mapping small PCI memory space.
> On Thu, 19 May 2005, Gianluca Varenni wrote: > >> Hi all. >> >> I'm writing a driver for a PCI board that exposes two memory spaces (out >> of >> the 6 IO address regions). >> >> One of them is 1MB, and I can map it to user level without problems. The >> other one is only 512 bytes. >> If I try to open it with /dev/mem, it returns EINVAL (the 1MB memory >> space >> is opened without any problem). If I try to expose it through mmap, mmap >> succeeds, but I only see garbage at user level. At kernel level, I can >> access that 512 bytes memory by using ioremap() on the physical address >> returned by pci_resource_start(). >> >> Are there any lower limits on the size of a PCI memory region? >> >> Have a nice day >> GV >> > > You impliment mmap() in your driver. It accesses the first megabyte > as 256 pages. Then you tack on the additional page that your 512 > bytes resides at. mmap() only works with pages. The pages must > be ioremap_nocache and they must be reserved. The reserved part > is important to have them visible from user-space using mmap. > > That's IFF you really need to see the stuff in user-mode. Normally, > you write a driver that accesses everything using the PCI primatives > provided in the kernel, for the kernel.
Do you have any link to a linux driver working exactly like this?
Have a nice day GV
> > > Cheers, > Dick Johnson > Penguin : Linux version 2.6.11.9 on an i686 machine (5537.79 BogoMips). > Notice : All mail here is now cached for review by Dictator Bush. > 98.36% of all statistics are fiction.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |