How analogdevicesinc/linux works
This is an ADI development branch of the Linux kernel, with support for ADI/Xilinx FPGA-integrated devices and Raspberry Pi boards. The tree spans architecture-specific kernel code and device drivers; the clearest product workflows represented here are configuring and streaming through the Xilinx ISP, exposing AI Engine resources to userspace, and moving device data through DMA-backed buffers. Generic kernel services and drivers provide supporting interfaces. The README identifies the supported platform scope, while sampled source excerpts support only some wiring; uncertain subsystem connections are omitted.
Main entry points: setup.c Linux kernel · uio_xilinx_ai_engine.c AI Engine UIO · xilinx-isppipeline.c Xilinx ISP · ccp-dmaengine.c CCP DMA provider
Components 19
Kernel platforms
- Linux kernel
arch/arm/kernel/setup.c - ARM support
arch/arm/kernel - ARC support
arch/arc/kernel - Alpha support
arch/alpha/kernel
FPGA devices
- Xilinx ISP
drivers/media/platform/xilinx/xilinx-isppipeline.c - AI Engine driver
drivers/misc/xilinx-ai-engine/ai-engine-aie2ps.c
Data movement
- DMAengine core
drivers/dma/dmaengine.c - IIO DMA buffer
drivers/iio/buffer/industrialio-buffer-dmaengine.c - CCP DMA provider
drivers/crypto/ccp/ccp-dmaengine.c - Crypto engine
crypto/crypto_engine.c
Kernel interfaces
- AI Engine UIO
drivers/uio/uio_xilinx_ai_engine.c - SPI Engine
drivers/spi/spi-axi-spi-engine.c - USB mass storage
drivers/usb/gadget/function/f_mass_storage.c
Other components
- Board hardware
- Userspace
- ISP controls
- Media pipeline
- IIO device
- Crypto client
Connections 17
- Board hardware → Linux kernel: boots on
- Linux kernel → ARM support: uses architecture
- Linux kernel → ARC support: uses architecture
- Linux kernel → Alpha support: uses architecture
- ISP controls → Xilinx ISP: sets controls
- Media pipeline → Xilinx ISP: streams video
- Xilinx ISP → Board hardware: programs registers
- AI Engine UIO → Userspace: exposes mappings
- AI Engine UIO → Board hardware: maps device memory
- Userspace → AI Engine UIO: requests simulated IRQ
- IIO device → IIO DMA buffer: attaches buffer
- IIO DMA buffer → DMAengine core: requests transfers
- CCP DMA provider → DMAengine core: registers channels
- CCP DMA provider → Board hardware: issues DMA commands
- Crypto client → Crypto engine: queues requests
- SPI Engine → Board hardware: controls SPI hardware
- USB mass storage → Userspace: exports storage