Linux - KernelThis forum is for all discussion relating to the Linux kernel.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: Fedora, OpenSuse, DENX Embedded Linux
Posts: 184
Original Poster
Rep:
Quote:
Originally Posted by nini09
After ioremap is called, the PCI BAR memory is inserted into page table.
So I've tried doing a virt_to_page on the address returned from ioremap but it looks like it is returning a page for physical address that does not match the physical address I originally passed into ioremap. For example I pass ioremap 0x3C000000 and it returns 0x78400000. Then if I do a virt_to_page on 0x78400000 it returns a page for 0x38400000 not 0x3C000000. Should I not use virt_to_page for an ioremap virtual address? Is there some other function I should be using, i.e. ioremap_to_page, or something like that?
Distribution: Fedora, OpenSuse, DENX Embedded Linux
Posts: 184
Original Poster
Rep:
Quote:
Originally Posted by nini09
virt_to_page return a pointer to page structure, not physical address.
Yes I under stand that, but that page is mapped to a physical address, i.e. page_to_phys, and the page that is returned is mapped to the physical address 0x38400000 not 0x3C000000. Also is I do a virt_to_phys on the virtual address from ioremap that also returns 0x38400000 and not 0x3C000000.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.