ppc405 dma - vm - cache question

Smith, Gene gene.smith at siemens.com
Tue Oct 26 22:55:36 UTC 2004


I have a question for ppc experts in rtems land. I am trying to port the 
emac ethernet driver from netbsd to rtems. In the driver code I see all 
kinds of calls to things like this:

bus_dmamap_create();
bus_dmamem_alloc();
bus_dmamap_load();
bus_dmamap_sync(); <-- called a lot in tx/rx ISRs.

I think that these are used to reconcile virtual memory in unix to 
physical memory addressed by devices (emac or mal device on ppc405). My 
assumption is that in rtems I can pretty much ignore these or make my 
own versions since rtems always uses real mode; anywhere memory is 
needed for dma purposes by the ethernet device and/or driver I can just 
malloc it and use the returned address for dma verbatim.

Does this sound reasonable or am I missing something here?

For reference, the best documentation I have found on these BSD style 
calls is here:

http://mirbsd.bsdadvocacy.org/cman/man9/bus_dmamap_sync.htm

Thanks,
-gene







More information about the users mailing list