# aokium/suket-kernel architecture

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

- Interactive diagram: https://gitdiagram.com/aokium/suket-kernel
- Repository: https://github.com/aokium/suket-kernel

## Overview

SuketKernel is an experimental Android/Linux kernel customized for Exynos9611 devices, with server use as its stated focus. Its runtime spans architecture-specific support and shared kernel services. The sampled code shows a representative DMA workflow—clients request channels and submit work handled by controller drivers—and separate audio, crypto, USB-storage, SPI, GPU, and ROMFS subsystems. The README also documents WireGuard, KernelSU, filesystem additions, and DeX touchpad support; their implementation paths and wiring are not present in the supplied tree, so those capabilities are shown without inferred connections.

Main entry points: [`sound/soc/soc-generic-dmaengine-pcm.c`](https://github.com/aokium/suket-kernel/blob/Grass-Unified/sound/soc/soc-generic-dmaengine-pcm.c) (SoC PCM), [`include/linux/dmaengine.h`](https://github.com/aokium/suket-kernel/blob/Grass-Unified/include/linux/dmaengine.h) (DMA API), [`sound/core/pcm_dmaengine.c`](https://github.com/aokium/suket-kernel/blob/Grass-Unified/sound/core/pcm_dmaengine.c) (DMA PCM), [`drivers/dma/dmaengine.c`](https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/dma/dmaengine.c) (DMA channel manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform support"]
  node_kernel["Linux kernel"]
  node_arm["ARM support<br/>[setup.c]"]
  node_alpha["Alpha support<br/>[setup.c]"]
  node_arc["ARC support<br/>[setup.c]"]
end

subgraph group_dma["DMA services"]
  node_pcm["DMA PCM<br/>[pcm_dmaengine.c]"]
  node_socpcm["SoC PCM"]
  node_dmaapi["DMA API<br/>[dmaengine.h]"]
  node_dmamgr["DMA channel manager<br/>[dmaengine.c]"]
  node_ccpdma["CCP DMA driver<br/>[ccp-dmaengine.c]"]
end

subgraph group_devices["Device subsystems"]
  node_crypto["Crypto engine<br/>[crypto_engine.c]"]
  node_usbmass["USB mass storage<br/>[f_mass_storage.c]"]
  node_spi["SPI controller"]
  node_gpu["Intel GPU engines<br/>[intel_engine_cs.c]"]
  node_romfs["ROMFS storage<br/>[storage.c]"]
end

subgraph group_capabilities["Kernel capabilities"]
  node_wireguard["WireGuard driver"]
  node_kernelsu["KernelSU"]
  node_fsadditions["Filesystem additions"]
  node_dex["DeX touchpad"]
end

node_pcmuser(("Audio client"))
node_cryptouser(("Crypto client"))
node_usbhost(("USB host"))
node_rommedia(("ROMFS media"))
node_blockmtd[("Block or MTD")]

node_pcm -->|"submits transfers"| node_dmaapi
node_socpcm -->|"requests channels"| node_dmamgr
node_socpcm -->|"opens PCM"| node_pcm
node_dmamgr -->|"manages channels"| node_dmaapi
node_ccpdma -->|"registers device"| node_dmaapi
node_pcmuser -->|"starts playback or capture"| node_socpcm
node_cryptouser -->|"queues requests"| node_crypto
node_rommedia -->|"reads image"| node_romfs
node_romfs -->|"reads storage"| node_blockmtd

click node_arm "https://github.com/aokium/suket-kernel/blob/Grass-Unified/arch/arm/kernel/setup.c"
click node_alpha "https://github.com/aokium/suket-kernel/blob/Grass-Unified/arch/alpha/kernel/setup.c"
click node_arc "https://github.com/aokium/suket-kernel/blob/Grass-Unified/arch/arc/kernel/setup.c"
click node_pcm "https://github.com/aokium/suket-kernel/blob/Grass-Unified/sound/core/pcm_dmaengine.c"
click node_socpcm "https://github.com/aokium/suket-kernel/blob/Grass-Unified/sound/soc/soc-generic-dmaengine-pcm.c"
click node_dmaapi "https://github.com/aokium/suket-kernel/blob/Grass-Unified/include/linux/dmaengine.h"
click node_dmamgr "https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/dma/dmaengine.c"
click node_ccpdma "https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/crypto/ccp/ccp-dmaengine.c"
click node_crypto "https://github.com/aokium/suket-kernel/blob/Grass-Unified/crypto/crypto_engine.c"
click node_usbmass "https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/usb/gadget/function/f_mass_storage.c"
click node_spi "https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/spi/spi-axi-spi-engine.c"
click node_gpu "https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/gpu/drm/i915/intel_engine_cs.c"
click node_romfs "https://github.com/aokium/suket-kernel/blob/Grass-Unified/fs/romfs/storage.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_kernel,node_arm,node_alpha,node_arc,node_pcmuser,node_cryptouser toneBlue
class node_pcm,node_socpcm,node_dmaapi,node_dmamgr,node_ccpdma,node_blockmtd toneAmber
class node_crypto,node_usbmass,node_spi,node_gpu,node_romfs toneMint
class node_wireguard,node_kernelsu,node_fsadditions,node_dex toneRose
class node_usbhost,node_rommedia toneIndigo
```

## Components

### Platform support

- **Linux kernel**
- [ARM support](https://github.com/aokium/suket-kernel/blob/Grass-Unified/arch/arm/kernel/setup.c): `arch/arm/kernel/setup.c`
- [Alpha support](https://github.com/aokium/suket-kernel/blob/Grass-Unified/arch/alpha/kernel/setup.c): `arch/alpha/kernel/setup.c`
- [ARC support](https://github.com/aokium/suket-kernel/blob/Grass-Unified/arch/arc/kernel/setup.c): `arch/arc/kernel/setup.c`

### DMA services

- [DMA PCM](https://github.com/aokium/suket-kernel/blob/Grass-Unified/sound/core/pcm_dmaengine.c): `sound/core/pcm_dmaengine.c`
- [SoC PCM](https://github.com/aokium/suket-kernel/blob/Grass-Unified/sound/soc/soc-generic-dmaengine-pcm.c): `sound/soc/soc-generic-dmaengine-pcm.c`
- [DMA API](https://github.com/aokium/suket-kernel/blob/Grass-Unified/include/linux/dmaengine.h): `include/linux/dmaengine.h`
- [DMA channel manager](https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/dma/dmaengine.c): `drivers/dma/dmaengine.c`
- [CCP DMA driver](https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/crypto/ccp/ccp-dmaengine.c): `drivers/crypto/ccp/ccp-dmaengine.c`

### Device subsystems

- [Crypto engine](https://github.com/aokium/suket-kernel/blob/Grass-Unified/crypto/crypto_engine.c): `crypto/crypto_engine.c`
- [USB mass storage](https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/usb/gadget/function/f_mass_storage.c): `drivers/usb/gadget/function/f_mass_storage.c`
- [SPI controller](https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/spi/spi-axi-spi-engine.c): `drivers/spi/spi-axi-spi-engine.c`
- [Intel GPU engines](https://github.com/aokium/suket-kernel/blob/Grass-Unified/drivers/gpu/drm/i915/intel_engine_cs.c): `drivers/gpu/drm/i915/intel_engine_cs.c`
- [ROMFS storage](https://github.com/aokium/suket-kernel/blob/Grass-Unified/fs/romfs/storage.c): `fs/romfs/storage.c`

### Kernel capabilities

- **WireGuard driver**
- **KernelSU**
- **Filesystem additions**
- **DeX touchpad**

### Other components

- **Audio client**
- **Crypto client**
- **USB host**
- **ROMFS media**
- **Block or MTD**

## Connections

- DMA PCM → DMA API: submits transfers
- SoC PCM → DMA channel manager: requests channels
- SoC PCM → DMA PCM: opens PCM
- DMA channel manager → DMA API: manages channels
- CCP DMA driver → DMA API: registers device
- Audio client → SoC PCM: starts playback or capture
- Crypto client → Crypto engine: queues requests
- ROMFS media → ROMFS storage: reads image
- ROMFS storage → Block or MTD: reads storage
