Call for testing and review, busdma changes

Konstantin Belousov kostikbel at
Sat Dec 22 14:22:45 UTC 2012

On Sat, Dec 08, 2012 at 08:51:12AM -1000, Jeff Roberson wrote:
> Hello,
> I have a relative large patch that reforms the busdma API so that new 
> types may be added without modifying every architecture's 
> busdma_machdep.c.  It does this by unifying the bus_dmamap_load_buffer() 
> routines so that they may be called from MI code.  The MD busdma is then 
> given a chance to do any final processing in the complete() callback. 
> This patch also contains cam changes to unify the bus_dmamap_load* 
> handling in cam drivers.
> The arm and mips implementations saw the largest changes since they have 
> to track virtual addresses for sync().  Previously this was done in a type 
> specific way.  Now it is done in a generic way by recording the list of 
> virtuals in the map.
> I have verified that this patch passes make universe which includes 
> several kernel builds from each architecture.  I suspect that if I broke 
> anything your machine simply won't boot or will throw I/O errors.  There 
> is little subtlety, it is mostly refactoring.
> The next step is to allow for dma loading of physical addresses.  This 
> will permit unmapped I/O.  Which is a significant performance optimization 
> targeted for 10.0.
> Many thanks for your assistance.  Any review feedback is also appreciated.

I re-read the patch with the scars from the unmapped buffers work somewhat
healed up, and I noted something I do not quite understand.

As an example, please look at the sys/cam/ata/ata_da.c:adastart().
The code there takes bp and converts in into ccb with ataio union
member used. Should this code path be converted, together with e.g.
ahci_begin_transaction(), to operate on ccb instead of loading from the
buffer ?

The same question for ata.

Was the change missed, or do you have some other plans for the drivers ?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <>

More information about the freebsd-arm mailing list