IIRC Masa's driver supports all three; ISA, PCI, and PCMCIA. The
implementation I am working on is for PCI only.

In 32-bit PCI configurations, Remote DMA should never be needed. In
fact, RSAR0 and RSAR1 are used to store the upper 16 bits of the phyaddr
of the buffer in 32-bit mode.

Garrett D'Amore wrote:
> Do we need (or will we ever need) "remote DMA"? If this is used only in
> ISA configurations that we don't have to support, then I think the
> answer is "no". (Are you supporting only PCI cards, or also ISA
> configurations? This part was also used in PCMCIA cards.)
> 
> -- Garrett
> 
> 
> Steven Stallion wrote:
>> Hrmm. Reading the spec, it seems to indicate there are 2 primary modes
>> of operation with respect to DMA.
>>
>> The most common is a dual bus setup using both the local bus and the
>> remote DMA as you mentioned (which you are completely correct, remote
>> dma acts as a slave channel).
>>
>> The single bus option (the one I am working toward since the code will
>> be significantly cleaner) merges the remote DMA to form a single 32-bit
>> addressable channel.
>>
>> Masa Murayama wrote:
>>   
>>> ----- Original Message -----
>>>     
>>>> Date: Sun, 31 Aug 2008 21:25:52 -0500
>>>> From: Steven Stallion <[EMAIL PROTECTED]>
>>>> To: [email protected]
>>>> Cc: "Garrett D'Amore" <[EMAIL PROTECTED]>
>>>> Subject: [driver-discuss] DP8390 single-bus DMA alignment
>>>>
>>>>
>>>> All,
>>>>
>>>> I'm having some problems getting DMA to align appropriately for the
>>>> DP8390. The DP8390's DMA engine is programmed with the upper 16 bits in
>>>> single bus mode (single 32-bit DMA).
>>>>
>>>> After reading the documentation for ddi_dma_attr_t, it looks like
>>>> dma_attr_sgl can be used to accomplish this, however I can't seem to get
>>>> dma_cookie_t.dmac_address to align correctly:
>>>>
>>>>
>>>> static ddi_dma_attr_t ne_dma_attr = {
>>>>    DMA_ATTR_V0,    /* dma_attr_version */
>>>>    0,              /* dma_attr_addr_lo */
>>>>    0xffffffff,     /* dma_attr_addr_hi */
>>>>    0xffffffff,     /* dma_attr_count_max */
>>>>    1,              /* dma_attr_align */
>>>>    0x1f,           /* dma_attr_burstsizes */
>>>>    1,              /* dma_attr_minxfer */
>>>>    0xffffffff,     /* dma_attr_maxxfer */
>>>>    0xffff,         /* dma_attr_sgl */
>>>>    1,              /* dma_attr_sgllen */
>>>>    1,              /* dma_attr_granular */
>>>>    0               /* dma_attr_flags */
>>>> };
>>>>
>>>> dmac.dma_address is: 0xc0190040.
>>>>
>>>> Any ideas?
>>>>
>>>> Steve
>>>>       
>>> I don't think you need dma attribute for dp8390.
>>> DP8390 doesn't have dma capability. The remote dma
>>> capability in the datasheet, means to access the
>>> internal ram in DP8390 internal bus from outside,
>>> i.e, sparc or i86 cpu.
>>> Typical NE2000 compatible cards implements the remote dma
>>> with IO instructions from ISA or PCI bus, that is exactly same
>>> with PIO we call now.
>>>
>>> -masa
>>>
>>> _______________________________________________
>>>     
>>>> driver-discuss mailing list
>>>> [email protected]
>>>> http://mail.opensolaris.org/mailman/listinfo/driver-discuss
>>>>       
> 
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to