[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Using mini-os ioremap()
My box doesn't have more than 4GB. I've tried this on 32 bit and 64 bit.I tried nuking the mfn_is_ram check. When I do that the call returns a virtual memory address but when I try to read and write to it, it appears to act just like a normal page of memory and not the device. Does anyone know offhand of a mini-os project that either tested the ioremap() call or actually does some memory mapped io operations? On 01/05/2011 05:55 PM, Samuel Thibault wrote: Matthew Fioravante, le Wed 05 Jan 2011 14:24:55 -0500, a écrit :I'm trying to map some mmio pages into my mini-os domain to use a hardware device. The device is at address fed40000. I'm calling ioremap() on this address but its failing, telling me that mfn fed40 is in ram space. (Its failing the mfn_is_ram() check.) What am I doing wrong here?Mmm, I don't think anything you're doing is wrong. Notice the comment: static long system_ram_end_mfn; int mfn_is_ram(unsigned long mfn) { /* very crude check if a given MFN is memory or not. Probably should * make this a little more sophisticated ;) */ return (mfn<= system_ram_end_mfn) ? 1 : 0; } Do you have more than 4GiB memory, i.e. 0xfed40000 is actually between two RAM areas? In such case mfn_is_ram has to really get more sophisticated. (In the interim you could just comment the mfn_is_ram() test from do_ioremap to make things work) Samuel Attachment:
smime.p7s _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |