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
