Steven Stallion wrote:
> Steven Stallion wrote:
>
>> Garrett D'Amore wrote:
>>
>>> Steven Stallion wrote:
>>>
>>>> Well, I swapped everything over to re and moved over to 16-bit DMA. I'm
>>>> now seeing the following:
>>>>
>>>> Sep 3 22:53:09 devel pcisch: [ID 876218 kern.warning] WARNING: re0 peer
>>>> only dev 60015ae7e00
>>>> Sep 3 22:53:09 devel pcisch: [ID 346402 kern.warning] WARNING: re0 peer
>>>> only device bad attr
>>>> Sep 3 22:53:09 devel re: [ID 179634 kern.warning] WARNING: re0 failed
>>>> to allocate DMA resources!
>>>>
>>>> re_dma_attr is:
>>>>
>>>>
>>> The attributes you give below are probably horribly wrong. they
>>> indicate that the memory has to be 32K aligned, and in the lower 64K.
>>> That's probably not what you intended.
>>>
>>> My guess is you want to set addr_high to some fairly large value
>>> (0xffffffff if the device can address the entire 32-bit address space --
>>> which if it can take a 16-bit segment pointer, and a 16-bit offset,
>>> should be correct). The attr_count_max should probably still be set to
>>> 0xffff though.
>>>
>> Unless I am misreading the DP8390 spec, the device can only address the
>> lower 64K in dual 16-bit mode. It expects the upper 8 bits of a 16-bit
>> address to be programmed into the DMA engine (in this case the PSTART,
>> and PSTOP registers).
>>
If the device is that limited, then it may be difficult to set up DMA
for it, and use of DMA may collide with other resources used in that
memory space. (Recall that x86 platforms don't have an IOMMU, so they
cannot relocate physical pages to make room for the device.)
Additionally, it sounds like the DMA counter might only be 8 bits? (So
you'd need multiple PIOs per packet?)
At this point, I'd probably just opt for PIO. It may be less efficient,
but by the time you involved the bounce buffers, etc., it may actually
work better/faster than trying to workaround the DMA limitations.
-- Garrett
>> Steve
>> _______________________________________________
>> driver-discuss mailing list
>> [email protected]
>> http://mail.opensolaris.org/mailman/listinfo/driver-discuss
>>
>
> I should mention that I changed the alignment to 256 from 32768 with the
> same results (bad conversion from 32-bit).
>
>
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss