[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] Physical address mapping to user space in dom0 problem
- To: "Keir Fraser" <keir@xxxxxxxxxxxxx>
- From: "Haw-Yuan Yang" <hawyuan@xxxxxxxxx>
- Date: Sun, 18 Mar 2007 13:11:04 -0700
- Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
- Delivery-date: Sun, 18 Mar 2007 13:09:59 -0700
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=mw/Uea7KOxgcxIbZrsqdsYaANMJAbIOFQOPDuI2KOZHmb2TuMnG0+R/Keri6Ni8pHmTrvNYc4cmyQNYH5fg5FBTFOoD0MY0sXcFjrAXPAPoO6H+9u4YtjZYgDQaCwwhfDzgwtOHvjrdhsPjmOMid+Vb3qKH2HqjwD2y9OmVagjk=
- List-id: Xen developer discussion <xen-devel.lists.xensource.com>
Thanks, It works.
Here is what I have in the mmap handler:
if the physical address is MMIO
io_remap_pfn_range(MMIO_address)
else
remap_pfn_range(virt_to_phys(cpu-ptr-returned-by-pci-alloc-consistent)
hyang
On 3/18/07, Keir Fraser <keir@xxxxxxxxxxxxx> wrote:
On 17/3/07 21:52, "Haw-Yuan Yang" <
hawyuan@xxxxxxxxx> wrote:
I knew that pci_alloc_consistent() will return both kernel virtual address and physical address. If I pass the physical address (dma_handler) to mmap, it return -1. However if I pass the kernel virtual address to mmap, I got a pointer point to the worng memory.
Oh, I see the problem. You can only mmap() MMIO regions using /dev/mem when running on Xen. Could your device (which you already implement ioctl() for) also implement mmap() itself? Then you can simply remap_pfn_range(virt_to_phys(cpu-ptr-returned-by-pci-alloc-consistent)). This would be a neater interface to userspace for your device anyway, imo.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|