# arunkumarvp/linux architecture

> Architecture diagram of the GitHub repository arunkumarvp/linux, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/arunkumarvp/linux
- Repository: https://github.com/arunkumarvp/linux

## Overview

Linux is the kernel at the center of a Linux operating system: it mediates hardware access and provides services used by applications and system software. This sample emphasizes asynchronous DMA, device-facing drivers, graphics engines, and s390 guarded-storage support rather than showing the whole kernel. The excerpted sources establish selected subsystem behavior and some DMA relationships; they do not expose a complete boot-to-userspace path or the internal wiring of many README-listed services, so those connections are not inferred here.

Main entry points: [`drivers/dma/dmaengine.c`](https://github.com/arunkumarvp/linux/blob/master/drivers/dma/dmaengine.c) (DMAengine core), [`drivers/crypto/ccp/ccp-dmaengine.c`](https://github.com/arunkumarvp/linux/blob/master/drivers/crypto/ccp/ccp-dmaengine.c) (CCP DMA), [`drivers/dma/amd/ptdma/ptdma-dmaengine.c`](https://github.com/arunkumarvp/linux/blob/master/drivers/dma/amd/ptdma/ptdma-dmaengine.c) (PTDMA), [`drivers/spi/spi-axi-spi-engine.c`](https://github.com/arunkumarvp/linux/blob/master/drivers/spi/spi-axi-spi-engine.c) (SPI-Engine driver)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dma["DMA services"]
  node_dmaengine["DMAengine core<br/>[dmaengine.c]"]
  node_ccp_dma["CCP DMA<br/>[ccp-dmaengine.c]"]
  node_pt_dma["PTDMA<br/>[ptdma-dmaengine.c]"]
  node_iio_buffer["IIO DMA buffer"]
  node_crypto_engine["Crypto engine<br/>[crypto_engine.c]"]
end

subgraph group_devices["Device interfaces"]
  node_spi["SPI-Engine driver"]
  node_mass_storage["USB mass storage<br/>[f_mass_storage.c]"]
  node_apu_board["APU board GPIO<br/>[pcengines-apuv2.c]"]
end

subgraph group_graphics["Graphics"]
  node_i915_engine["i915 engines<br/>[intel_engine_cs.c]"]
  node_xe_engine["Xe engines<br/>[xe_hw_engine.c]"]
  node_komeda_state["Komeda pipeline"]
end

subgraph group_arch["Architecture support"]
  node_guarded_storage["Guarded storage<br/>[guarded_storage.c]"]
  node_alpha_kernel["Alpha kernel support<br/>[setup.c]"]
  node_arc_kernel["ARC kernel support<br/>[setup.c]"]
  node_arm_kernel["ARM kernel support<br/>[setup.c]"]
end

node_software(("Kernel clients"))
node_hardware(("Hardware devices"))

node_software -->|"requests DMA"| node_dmaengine
node_ccp_dma -->|"registers channels"| node_dmaengine
node_pt_dma -->|"registers channels"| node_dmaengine
node_iio_buffer -->|"requests transfers"| node_dmaengine
node_ccp_dma -->|"submits commands"| node_hardware
node_pt_dma -->|"performs passthrough"| node_hardware
node_crypto_engine -->|"queues requests"| node_software
node_spi -->|"programs controller"| node_hardware
node_software -->|"submits messages"| node_spi
node_mass_storage -->|"serves USB storage"| node_hardware
node_software -->|"configures LUNs"| node_mass_storage
node_apu_board -->|"exposes GPIO"| node_hardware
node_i915_engine -->|"controls engines"| node_hardware
node_xe_engine -->|"configures engines"| node_hardware
node_komeda_state -->|"updates pipeline"| node_hardware
node_software -->|"invokes syscall"| node_guarded_storage
node_guarded_storage -->|"loads control state"| node_hardware
node_software -->|"runs on"| node_alpha_kernel
node_software -->|"runs on"| node_arc_kernel
node_software -->|"runs on"| node_arm_kernel

click node_dmaengine "https://github.com/arunkumarvp/linux/blob/master/drivers/dma/dmaengine.c"
click node_ccp_dma "https://github.com/arunkumarvp/linux/blob/master/drivers/crypto/ccp/ccp-dmaengine.c"
click node_pt_dma "https://github.com/arunkumarvp/linux/blob/master/drivers/dma/amd/ptdma/ptdma-dmaengine.c"
click node_iio_buffer "https://github.com/arunkumarvp/linux/blob/master/drivers/iio/buffer/industrialio-buffer-dmaengine.c"
click node_crypto_engine "https://github.com/arunkumarvp/linux/blob/master/crypto/crypto_engine.c"
click node_spi "https://github.com/arunkumarvp/linux/blob/master/drivers/spi/spi-axi-spi-engine.c"
click node_mass_storage "https://github.com/arunkumarvp/linux/blob/master/drivers/usb/gadget/function/f_mass_storage.c"
click node_apu_board "https://github.com/arunkumarvp/linux/blob/master/drivers/platform/x86/pcengines-apuv2.c"
click node_i915_engine "https://github.com/arunkumarvp/linux/blob/master/drivers/gpu/drm/i915/gt/intel_engine_cs.c"
click node_xe_engine "https://github.com/arunkumarvp/linux/blob/master/drivers/gpu/drm/xe/xe_hw_engine.c"
click node_komeda_state "https://github.com/arunkumarvp/linux/blob/master/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c"
click node_guarded_storage "https://github.com/arunkumarvp/linux/blob/master/arch/s390/kernel/guarded_storage.c"
click node_alpha_kernel "https://github.com/arunkumarvp/linux/blob/master/arch/alpha/kernel/setup.c"
click node_arc_kernel "https://github.com/arunkumarvp/linux/blob/master/arch/arc/kernel/setup.c"
click node_arm_kernel "https://github.com/arunkumarvp/linux/blob/master/arch/arm/kernel/setup.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dmaengine,node_ccp_dma,node_pt_dma,node_iio_buffer,node_crypto_engine,node_software toneBlue
class node_spi,node_mass_storage,node_apu_board toneAmber
class node_i915_engine,node_xe_engine,node_komeda_state toneMint
class node_guarded_storage,node_alpha_kernel,node_arc_kernel,node_arm_kernel toneRose
class node_hardware toneIndigo
```

## Components

### DMA services

- [DMAengine core](https://github.com/arunkumarvp/linux/blob/master/drivers/dma/dmaengine.c): `drivers/dma/dmaengine.c`
- [CCP DMA](https://github.com/arunkumarvp/linux/blob/master/drivers/crypto/ccp/ccp-dmaengine.c): `drivers/crypto/ccp/ccp-dmaengine.c`
- [PTDMA](https://github.com/arunkumarvp/linux/blob/master/drivers/dma/amd/ptdma/ptdma-dmaengine.c): `drivers/dma/amd/ptdma/ptdma-dmaengine.c`
- [IIO DMA buffer](https://github.com/arunkumarvp/linux/blob/master/drivers/iio/buffer/industrialio-buffer-dmaengine.c): `drivers/iio/buffer/industrialio-buffer-dmaengine.c`
- [Crypto engine](https://github.com/arunkumarvp/linux/blob/master/crypto/crypto_engine.c): `crypto/crypto_engine.c`

### Device interfaces

- [SPI-Engine driver](https://github.com/arunkumarvp/linux/blob/master/drivers/spi/spi-axi-spi-engine.c): `drivers/spi/spi-axi-spi-engine.c`
- [USB mass storage](https://github.com/arunkumarvp/linux/blob/master/drivers/usb/gadget/function/f_mass_storage.c): `drivers/usb/gadget/function/f_mass_storage.c`
- [APU board GPIO](https://github.com/arunkumarvp/linux/blob/master/drivers/platform/x86/pcengines-apuv2.c): `drivers/platform/x86/pcengines-apuv2.c`

### Graphics

- [i915 engines](https://github.com/arunkumarvp/linux/blob/master/drivers/gpu/drm/i915/gt/intel_engine_cs.c): `drivers/gpu/drm/i915/gt/intel_engine_cs.c`
- [Xe engines](https://github.com/arunkumarvp/linux/blob/master/drivers/gpu/drm/xe/xe_hw_engine.c): `drivers/gpu/drm/xe/xe_hw_engine.c`
- [Komeda pipeline](https://github.com/arunkumarvp/linux/blob/master/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c): `drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c`

### Architecture support

- [Guarded storage](https://github.com/arunkumarvp/linux/blob/master/arch/s390/kernel/guarded_storage.c): `arch/s390/kernel/guarded_storage.c`
- [Alpha kernel support](https://github.com/arunkumarvp/linux/blob/master/arch/alpha/kernel/setup.c): `arch/alpha/kernel/setup.c`
- [ARC kernel support](https://github.com/arunkumarvp/linux/blob/master/arch/arc/kernel/setup.c): `arch/arc/kernel/setup.c`
- [ARM kernel support](https://github.com/arunkumarvp/linux/blob/master/arch/arm/kernel/setup.c): `arch/arm/kernel/setup.c`

### Other components

- **Kernel clients**
- **Hardware devices**

## Connections

- Kernel clients → DMAengine core: requests DMA
- CCP DMA → DMAengine core: registers channels
- PTDMA → DMAengine core: registers channels
- IIO DMA buffer → DMAengine core: requests transfers
- CCP DMA → Hardware devices: submits commands
- PTDMA → Hardware devices: performs passthrough
- Crypto engine → Kernel clients: queues requests
- SPI-Engine driver → Hardware devices: programs controller
- Kernel clients → SPI-Engine driver: submits messages
- USB mass storage → Hardware devices: serves USB storage
- Kernel clients → USB mass storage: configures LUNs
- APU board GPIO → Hardware devices: exposes GPIO
- i915 engines → Hardware devices: controls engines
- Xe engines → Hardware devices: configures engines
- Komeda pipeline → Hardware devices: updates pipeline
- Kernel clients → Guarded storage: invokes syscall
- Guarded storage → Hardware devices: loads control state
- Kernel clients → Alpha kernel support: runs on
- Kernel clients → ARC kernel support: runs on
- Kernel clients → ARM kernel support: runs on
