Ouch, good catch! I just double checked the spec, and you are completely right, even though LAS powers high on the 8029, it must be set to zero effectively forcing you to use the 16-bit DMA configuration.
Looks like I'll have to rework DMA ;) Thanks guys, Steve Masa Murayama wrote: > ----- Original Message ----- >> Date: Mon, 01 Sep 2008 14:46:48 -0500 >> From: Steven Stallion <[EMAIL PROTECTED]> >> To: Masa Murayama <[EMAIL PROTECTED]> >> CC: [EMAIL PROTECTED], [email protected] >> Subject: Re: [driver-discuss] DP8390 single-bus DMA alignment >> >> >> I'm reading the DP8390D datasheets; I am using an RTL8029 as an initial >> target. > > I'm sorry that I didn't know long address mode (32bit) of dp8390d > chip set. > But rtl8029 doesn't seem to support 32bit mode (LAS). Please refer the > desription on DCR (data configuration register) in 8029 datasheet. > > -masa > >> Masa Murayama wrote: >>> ----- Original Message ----- >>>> Date: Mon, 01 Sep 2008 13:54:52 -0500 >>>> From: Steven Stallion <[EMAIL PROTECTED]> >>>> To: [EMAIL PROTECTED] >>>> CC: Masa Murayama <[EMAIL PROTECTED]>, [email protected] >>>> Subject: Re: [driver-discuss] DP8390 single-bus DMA alignment >>>> >>>> >>>> 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. >>>> >>> Which datasheet did you read? I'd like to read the same datasheet >>> you read. >>> >>> Let me know the product name of your target card, or the chipset name >>> which the card employs. Although dp8390 describes various bus >>> configurations, you can use only the bus configuration which the card >>> product or the clone chipset implements. >>> >>> -masa >>> >>> >>>> 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 i > n >>>>>>>> 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 g > et >>>>>>>> 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
