March 2006 - Posts
I was playing around with the CSS override stuff today. I hope i haven't blinded anyone.
Read More...
Yesterday i talked about how to do your DMA operations the old way. And it's painful. Very, very painful. Fortunately for those of you with bus-mastering controllers there's a much easier way. AllocateAdapterChannel suffers from some real problems. It
Read More...
What Is DMA (Part 6) - Scatter Gather DMA the "old" way To be honest, it has been a long, long time since i've needed to support slave-mode DMA or packet-based non-scatter-gather DMA. To talk about those i'd probably have to do some (gulp) research. Also
Read More...
Packet Based DMA Last time i talked about using common buffer to stage your DMA operations. Doing this allows you to coallesce very fragmented packets, which can be very valuable, but it does complicate your DMA operations. After all someone has to manage
Read More...
The DMA API also allows you to create a section of kernel memory which you can share between your driver and your device. This memory is known as "common buffer", and has a variety of uses with modern PCI devices. You can allocate a piece of common buffer
Read More...
Previously in this sequence I talked some about what DMA is, and some of the common models for programming DMA on a device. Like most code, your driver usually deals with virtual addresses for data buffers. Your DMA engine (be it slave or bus-mastering)
Read More...