A systematic exploration of the Linux DRM/KMS subsystem on the Rockchip RK3588 (VOP2) platform. This project documents the complete display bring-up process, from low-level register verification to high-level atomic synchronization.
- Cross-Subsystem Mental Model: Leveraging experience from Linux ASoC to master the DRM pipeline (Mapping DMA/Mixers to CRTC/Planes).
- Hardware-Level Debugging: Direct verification of Video Timing and Pixel Clocks via
debugfsand hardware registers. - Sync & Performance: Deep dive into
dma-fencemechanisms and VBlank IRQ monitoring for smooth page-flipping.
I have documented the bring-up process in 6 structured experiments:
- KMS Pipeline Mapping: Analyzing internal resources (VP0-VP3) and Plane constraints.
- Modetest mastery: Hands-on with atomic modesetting and troubleshooting object IDs.
- DSI Panel Bring-up: Calculating Video Timings and verifying PCLK registers.
- DRM Master Concepts: Understanding ownership conflicts between
fbconand userspace clients. - Composition & Sync: Hardware layering (Z-order) and the role of GEM/Fence.
- VBlank & Page Flip: Real-time monitoring of VOP interrupts to verify display "heartbeat."
- User Space Example: Implementing Userspace KMS using C and libdrm
- Hardware: LubanCat 5 (Rockchip RK3588)
- OS: Ubuntu Lite (Minimal environment for cleaner DRM debugging)
- Kernel Tools:
modetest,debugfs,procfs,GICv3interrupt controller analysis.
Signed-off-by: TomHsieh300 hungen3108@gmail.com