This directory contains custom kernel modules designed to maximize the performance of the Mali G610 MP4 GPU found in the Rockchip RK3588 SoC (Orange Pi 5/5+).
These modules implement overclocking and advanced hardware manipulation that can:
- Cause system instability
- Increase heat generation significantly
- Potentially damage your hardware
- Void your warranty
Use at your own risk! Ensure adequate cooling and monitor temperatures closely.
Main performance enhancement module
Features:
- Enhanced Operating Performance Points (OPP) table with overclocked frequencies
- Custom devfreq governor optimized for Mali G610 MP4 architecture
- Advanced frequency scaling algorithm
- Thermal management integration
- Performance boost modes
- Runtime configuration via
/proc/mali_g610_perf
Frequency levels:
- 200 MHz @ 0.85V (Power Save)
- 400 MHz @ 0.90V (Balanced Low)
- 600 MHz @ 0.95V (Balanced)
- 800 MHz @ 1.00V (Performance)
- 1000 MHz @ 1.05V (Gaming - stock max)
- 1100 MHz @ 1.10V (Extreme - 10% overclock)
Advanced sysfs interface for real-time control
Provides /sys/kernel/mali_g610/ interface with:
gpu_frequency- Read/write current GPU frequencygpu_voltage- Read/write current GPU voltagegpu_temperature- Real-time temperature monitoringgpu_utilization- GPU load percentagememory_bandwidth- Memory bandwidth usagepower_consumption- Estimated power consumptionperformance_stats- Comprehensive performance summaryforce_max_performance- Emergency performance boostopp_table- Available operating points
Header with advanced overclocking definitions
Contains:
- Register definitions for RK3588 GPU control
- Overclocking profiles from mild to extreme
- Safety limits and thermal thresholds
- Hardware abstraction macros
- Performance monitoring structures
# Install kernel headers
sudo apt update
sudo apt install linux-headers-$(uname -r)
# Check required kernel features
make check-config# Build modules
make
# Install modules
sudo make install
# Load performance module
sudo make load
# Load sysfs interface (optional)
sudo modprobe mali_g610_sysfs# Add to modules load list
echo "mali_g610_performance" | sudo tee -a /etc/modules
echo "mali_g610_sysfs" | sudo tee -a /etc/modules
# Create module options (optional)
echo "options mali_g610_performance boost_enabled=1" | sudo tee /etc/modprobe.d/mali_g610.confThe main module provides several performance profiles accessible via the devfreq governor:
# Check current governor
cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/governor
# Switch to custom Mali G610 governor
echo "mali_g610_performance" | sudo tee /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/governorConfigure performance parameters via proc interface:
# View current configuration
cat /proc/mali_g610_perf
# Adjust parameters
echo "upthreshold=80" | sudo tee /proc/mali_g610_perf
echo "downdifferential=10" | sudo tee /proc/mali_g610_perf
echo "thermal=90" | sudo tee /proc/mali_g610_perfMonitor GPU performance via sysfs:
# Check current frequency
cat /sys/kernel/mali_g610/gpu_frequency
# Monitor temperature
watch cat /sys/kernel/mali_g610/gpu_temperature
# View comprehensive stats
cat /sys/kernel/mali_g610/performance_statsAdvanced users only!
# Set custom frequency (1.1 GHz)
echo 1100000000 | sudo tee /sys/kernel/mali_g610/gpu_frequency
# Set voltage (1.1V - dangerous!)
echo 1100000 | sudo tee /sys/kernel/mali_g610/gpu_voltage
# Emergency maximum performance
echo 1 | sudo tee /sys/kernel/mali_g610/force_max_performanceExpected performance gains with these modules:
| Configuration | Frequency | Voltage | Performance Gain | Risk Level |
|---|---|---|---|---|
| Stock | 1000 MHz | 1.0V | Baseline | Safe |
| Gaming Profile | 1000 MHz | 1.05V | +5-10% | Low |
| Extreme Profile | 1100 MHz | 1.1V | +15-25% | Medium |
| Manual Max | 1200 MHz | 1.2V | +30-40% | High |
The modules include comprehensive thermal protection:
- 80°C: Safe operating temperature
- 85°C: Automatic throttling begins
- 90°C: Critical temperature limit
- 95°C: Emergency shutdown
Monitor temperatures closely:
# Continuous temperature monitoring
watch -n 1 cat /sys/kernel/mali_g610/gpu_temperature# Check kernel logs
dmesg | grep mali_g610
# Verify kernel config
make check-config
# Check dependencies
lsmod | grep panfrost# Verify governor is active
cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/governor
# Check if frequencies are actually changing
cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/cur_freq
# Monitor with stress test
glmark2-es2-wayland --annotate# Reduce overclock immediately
echo 1000000000 | sudo tee /sys/kernel/mali_g610/gpu_frequency
echo 1000000 | sudo tee /sys/kernel/mali_g610/gpu_voltage
# Unload modules
sudo rmmod mali_g610_performance mali_g610_sysfsThese modules integrate seamlessly with the Arm-Pi Tweaker GUI:
- Automatic Detection: The GPU manager detects loaded modules
- Enhanced Profiles: Additional overclocked profiles become available
- Real-time Monitoring: Live frequency, voltage, and temperature display
- Safety Controls: Automatic thermal protection and voltage limits
Test performance improvements:
# OpenGL ES benchmark
glmark2-es2-wayland --benchmark=terrain --annotate
# Vulkan benchmark (if supported)
vkmark
# Memory bandwidth test
tinymembench
# Stress testing
stress-ng --gpu 1 --timeout 300sEdit mali_g610_opp_table[] in the performance module:
static struct {
unsigned long freq;
unsigned long volt;
const char *name;
} mali_g610_opp_table[] = {
// Add your custom profile here
{ 1150000000, 1150000, "custom_extreme" },
};Enable debug output:
# Build with debug symbols
make debug
# Enable debug messages
echo 8 > /proc/sys/kernel/printkGPL v2 - See individual source files for details.
Contributions welcome! Please:
- Test thoroughly on your hardware
- Document temperature and stability results
- Follow kernel coding style
- Include safety warnings for overclocking features
This software is provided "as is" without warranty. The authors are not responsible for any hardware damage or data loss. Overclocking voids warranties and may permanently damage your device.