Date: Fri, 10 Aug 2001 16:40:02 -0700 (PDT) From: wpaul@FreeBSD.ORG (Bill Paul) To: mjacob@feral.com Cc: audit@FreeBSD.ORG Subject: Re: Need reviewers for busdma changes to ethernet driver Message-ID: <20010810234002.CCEA637B405@hub.freebsd.org> In-Reply-To: <Pine.BSF.4.21.0108101051000.29820-100000@beppo> from Matthew Jacob at "Aug 10, 2001 03:44:33 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> > Seems mostly good. > > > 1. Nit: > > /* > * Obtain the physical addresses of the RX and TX > * rings which we'll need later in the init routine. > */ > > > More formally, it's not a 'physical address'- it's a "Bus Address", or > "Address appropriate for a device on this bus to use to access the > memory so mapped". Under sparc64, for example, it would be an iommu > mapping address. > > 2. All callback functions for dma- you should be checking error. Ok... > 3. You might want to recycle rather than create/destroy mbuf tags. I'm not creating/destroying tags, I'm creating/destroying dma maps (bus_dmamap_t). My understanding is that I need a dmamap for every buffer that I need to send to the NIC, and in the transmit case, I might have several buffers per packet (i.e. an mbuf list with all the packet fragments). But I can't know ahead of time how many fragments will be in the chain, so I can't really say "allocate this many dma maps for packet transmit." > You should note that FreeBSD's bus_dma is hardly as strict or as formal as > NetBSD's, so there's room for a lot of slop here. The key thing to test it on > is an alpha that has both direct-mapped and sgmap hardware to see that it > works. Hopefully I will be able to do this on Monday. In the meantime, I have also converted the RealTek driver: http://www.freebsd.org/~wpaul/RealTek/busdma This was somewhat easier because there's just one giant DMA buffer for receive and no descriptor structures. -Bill To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010810234002.CCEA637B405>