atom feed3 messages in org.freebsd.freebsd-auditRe: Need reviewers for busdma changes...
FromSent OnAttachments
Matthew JacobAug 10, 2001 3:44 pm 
Bill PaulAug 10, 2001 4:39 pm 
Matthew JacobAug 10, 2001 4:43 pm 
Subject:Re: Need reviewers for busdma changes to ethernet driver
From:Bill Paul (wpa@FreeBSD.ORG)
Date:Aug 10, 2001 4:39:40 pm
List:org.freebsd.freebsd-audit

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 majo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message