This is a little tool which can parse resource, kernel or boot binary image files (*.img) or even coresponding mtd partitions (root required) to find CPU, GPU and memory settings and then change them. Also it can alter CPU frequency lock(s) in kernel which in most cases is required for OC above 1608 MHz even if system display 1800MHz as available (last part is obsolate with kernels newer than July 2016).
It is and probably will be compatible with every RockChip RK3288 3.10.0 kernels. I just checked this with Wasser's LP 4.0.11 firmware.
Oveclocking values are defined in overclockmatic_RK3288.cfg file and also hardcoded as defaults into executable.
Using Terminal Emulator in Android you can OC RK3288 without problems (root required):
246|root@rk3288:/mnt/external_sd/Download # ./overclockmatic_RK3288.elf Usage: ./overclockmatic_RK3288.elf: mode [file_name] where: mode = 1 - read boot; 2 - read resource; 3 - read kernel; 5 - read resource and kernel default file_name: mode = 1 - /dev/block/mtd/by-name/boot mode = 2 or 5 - /dev/block/mtd/by-name/resource mode = 3 or 5 - /dev/block/mtd/by-name/kernel
./overclockmatic_RK3288.elf 3
will read /dev/block/mtd/by-name/kernel and check what CPU frequency lock is there. Then offer to modify them. Of course in that case root access is required. When modding img files then not so much if you have partition where you can set execute permission to overclockmatic_RK3288.elf file (i.e. NTFS pendrive or SD card). But after that you will need to flash them "manualy" under Windows.
You can also use this tool just to check what settings are in these files.
All changes must be confirmed before any data is written back to image file(s).
How to use:
1. Download 7ZIP archive (overclockmatic_RK3288_1.0.7_LP.7z)
2. Run EZ file Explorer and in Tool section activate "Root Explorer" (15 min should suffice).
3. Extract cfg and elf files with EZ Zip Viewer to a chosen path: i.e. /data/.
Note: Config file is always read from current directory (runtime directory).
4. You can change overclockmatic_RK3288.cfg file with EZ File Explorer.
5. Run Terminal Emulator
6. Aquire Super User privilages. Type: su
7. Change directory to /data/: cd /data
8. Execute this program with only one parameter:
a) "5" If kernel in your firmware is separeted from boot.img (i.e. type: /data/overclockmatic_RK3288.elf 5)
b) "1" - otherwise (i.e. type: /data/overclockmatic_RK3288.elf 1)
8'. To modify image files just add another parameter with path to file and its name. i.e. /sdcard/Download/boot.img
9. Choose which part of SoC you would like to OC: CPU, GPU or memory. If you don't want to OC that part then just say no ("n").
10. Commit changes by allowing write back of modded data.
Note: Before accepting file write operation compare visualy operation points before and after changes.
Note 2: As to memory voltage. Nevermind what voltage I set in DTB for memory I always measure ~1.48V on DDR3 memory power supply capacitor.
This voltage is generated by ACT8846QM IC on output called "DCDC1" (OUT1) connected by i2S bus to RK3288 SoC. It is presented by kernel as regulator number 1. That's why I have done some more investigating and found out that DDR voltage is soft locked at 1.2V (for DDR3 memory modules it is in reality 1.5V thanks to voltage divider on DCDC1 feedback input) ("cat /sys/class/regulator/regulator.1/max_microvolts").
HINT: you can change DDR frequency (and supposedly voltage) by writing to /dev/video_state i.e. "echo 'n' > /dev/video_state" will set normal mode and 'p' is for performance mode. Choosing 4k mode is much harder but possible: "video_state='1,w=3840,h=1960,hevc=1,VF=30,bit rate =5000'"
Warning.
Voltage set by DVFS mechanism for memory which is described in DTB as pd_ddr "operation points" is also used for LOGIC_VDD (arm_logic) which is part of RK3288 (mainly IO interfaces). It is probably so because of DDR3 IO voltage which should be tide out to DDR3 main voltage with some tolerance (+/-0.3V). Because memory voltage is soft locked (max 1200000 uV for regulator #1) when one set 1.45V for DDR3 it will not have any effect on memory chip but will change voltage to RK3288 IO (logic) power domain (regulator number 3). Besides generating unnecessary heat it might as well be dangerous because it is above Absolute Maximum Rating for VDD_LOGIC as stated in RK3288 datasheet. That's why I initially confused regulator number 3 as DDR_VDD.
This should be announced to any RK3288 firmware modders especially those who also OC these boxes.
For now binary version is only for arm7v and works under Android. I also added benchmarking application (Pi calculation).
Source code and executable files:
Comment