|
|
|
|
|
|
|
|
|
|
xen-devel
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
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|