XDMA(4)
okay so bestie, welcome to XDMA(4) β the kernel interfaces manual page thatβs about to become your new hyperfixation π β¨. This is the DMA abstraction layer, and weβre gonna walk through it together, no cap.
π NAME π
xdma β DMA abstraction layer. Thatβs it, thatβs the vibe: itβs the layer that abstracts DMA stuff so drivers donβt have to rawdog the hardware π.
β¨ SYNOPSIS β¨
To compile xDMA device support into the kernel, put this line in your kernel configuration file:
device xdma
To compile the xDMA FDT-based test driver, also add this line:
device xdma_test
π DESCRIPTION π
xDMA is a DMA framework designed to abstract the interaction between device drivers and DMA engines. Itβs giving βmiddle manager for memory transfersβ and honestly? Iconic.
xDMA defines an interface for efficient interaction between the device driver and DMA controller. The xdma device provides a virtual DMA controller and virtual channels called xchans. The controller provides virtual channels management (allocation, deallocation, configuration) and interrupt notification establishment needed to receive events from the hardware DMA controller. So yes, itβs handling the allocation girlypop era, the deallocation era, and the configuration era, plus the interrupt notifications so you actually hear from the hardware DMA controller π.
xDMA supports the following transfer types:
- Cyclic β a non-stop periodic transfer designed for applications like audio. It just keeps going and going, like your favorite playlist on repeat π§.
- Memcpy β a memory-to-memory transfer. Basically copy-paste but for memory, and way more legit.
π SEE ALSO π
bus_dma(9)β the other DMA manual you should absolutely check out, bestie π«Ά.
π¦ HISTORY π¦
Support for xDMA first appeared in FreeBSD 12.0. A whole era, honestly.
π AUTHORS π
The FreeBSD xDMA framework was first added by Ruslan Bukin <br@FreeBSD.org>. Give them their flowers π.
and thatβs the tea β β this page is from Debian, dated December 12, 2016, so shoutout to that edition and mwah πβ¨.
π¦ where this page comes from
- nixpkgs unstable: source
- Copyright (c) 2016 Ruslan Bukin <br@bsdpad.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms