Just in case, I'm making the assignment statement tmp_dma_attr = smu_generic_dma_attr
before calling ddi_dma_alloc_handle so the attributes that I described below are the ones that are being passed. From: opensolaris-code-boun...@opensolaris.org [mailto:opensolaris-code-boun...@opensolaris.org] On Behalf Of Jayaraman, Bhaskar Sent: Friday, November 13, 2009 3:49 PM To: opensolaris-code@opensolaris.org Subject: [osol-code] DDI_DMA_BADATTR error! Hi I'm using an x86 vm which has an emulated IOMMU on it. The following are the attributes that I'm passing to ddi_dma_alloc_handle static ddi_dma_attr_t smu_generic_dma_attr = { DMA_ATTR_V0, /* dma_attr_version */ (unsigned long long)0, /* low DMA address range */ (unsigned long long)0xffffffff, /* high DMA address range */ (unsigned long long)0xffffffff, /* DMA counter register */ 8, /* DMA address alignment */ 0x07, /* DMA burstsizes */ 1, /* min DMA size */ (unsigned long long)0xffffffff, /* max DMA size */ (unsigned long long)0xffffffff, /* segment boundary */ 16, /* dma_attr_sglen */ 512, /* granularity of device */ 0 /* bus specific DMA flags */ }; The call I make is ddi_dma_alloc_handle (instance->dip, &tmp_dma_attr, DDI_DMA_DONTWAIT, 0, &acmd->cmd_dmahandle) In the 3rd parameter, I've tried using DDI_DMA_SLEEP as well but I still get the DDI_DMA_BADATTR error from the API. I don't see where I'm going wrong in making the call. Regards, Bhaskar.
_______________________________________________ opensolaris-code mailing list opensolaris-code@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/opensolaris-code