[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] MMIO ioremap() error with PCI passthrough
On 01/07/2008 10:45, Keir Fraser wrote: If you're happy changing kernel code, you might try adding printk() instrumentation to__ioremap() printk(KERN_DEBUG "REMAP: phys=0x%lx, len=%lu\n", phys_addr, size); and __direct_remap_pfn_range() in arch/i386/mm/ioremap-xen.c. printk(KERN_DEBUG "REMAPPFN: addr=0x%lx, mfn=0x%lx, size=%lu\n", address, mfn, size); The functions look like they should map the correct range of pages (in this case only the page covering FEBFF000-FEBFFFFF) Built and installed kernel/modules/initrd, rebooted, when it loads the saa7134 driver I see this REMAP: phys=0xfebffc00, len=4096 REMAPPFN: addr=0xffffc20000038000, mfn=0xfebff, size=8192So the 1K mapping has been rounded up to 4K (x86_64 page size?) before passing to __ioremap() and then rounded up again to 8K by the time it gets passed to __direct_remap_pfn_range() is that right? I can manage to build a kernel, but I'm out of my depth in terms of knowing what would be good or bad with physical addresses and page mappings ... _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |