On Thu, Sep 08, 2011 at 10:22:01AM -0700, Eric Camachat wrote:
> On Thu, Sep 8, 2011 at 5:59 AM, Konrad Rzeszutek Wilk
> <konrad.wilk@xxxxxxxxxx> wrote:
> > On Wed, Sep 07, 2011 at 05:47:46PM -0700, Eric Camachat wrote:
> >> Hi,
> >>
> >> I am porting our drivers to XEN's PV domU (with PV PCI passthrouth), I
> >
> > Use the DMA API that Linux provides (I presume that is what you meant
> > by PV DomU), and use the dma_alloc_coherent to set your regions.
>
> That's what I thought before. We use a shared DMA region for multiple
> hardware.
> Maybe I can dma_alloc_coherent for 1st and the others use the same region.
You can definitly try it. Or use the dmapool API to get a shared
pool of coherent memory.
> I will try it.
>
> >
> > Also pass in 'iommu=soft' on your Linux command line to enable the
> > Xen SWIOTLB DMA system.
> >
> >> have to allocate a memory block and tell the hardware to access it.
> >> But the hardware can address 32-bit only, so I want dedicate a region
> >> of memory that below 2GB for the domU only.
> >
> > Uh, don't you mean 4GB? - 32bit is up to 4GB.
>
> The hardware uses 32-bit addressing, but the system will crash if I
> assigned above 2GB address to it.
Ha! so buggy hardware.. or you are not using the XEn-SWIOTLB but something
else.
> So, 4GB from hardware spec, 2GB from my test. I am looking into that.
Make sure you set
pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(31));
on top of pci_set_dma_mask(dev, DMA_BIT_MASK(31));
in your driver.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|