Announcement

Collapse
No announcement yet.

Overclockmatic_RK3288 v1.0.6

Collapse
This is a sticky topic.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Overclockmatic_RK3288 v1.0.6

    Be warend. After two years of OC'ed RK3288 SoC use it seems that it will require more and more voltage to work correctly. Settings above 1.4V are considered dangerous because those are above Absolute Maximum Ratings for this SoC. You can read more about this there.

    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):
    Code:
    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
    For example:
    ./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:
    Attached Files
    Last edited by Gormar; 11-26-2016, 02:38. Reason: Warning about speed up SoC degradation after OC; some minor information updated.
    RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM 792MHz@1.2V Wasser's 3.0.11 firmware
    Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
    bricked: VOYO V1 mini 8G/64GB Windows 10

    #2
    nice tool!
    There are 10 types of people in the world: Those who understand binary, and those who don't...

    If you want to buy me a beer, please use this -> https://www.paypalobjects.com/en_US/..._donate_SM.gif

    Comment


      #3
      Everything is possible if we work together!
      ApkFreak

      BItcoin Donate: 1K9Qh9CvxvpdkCANVU173Mh3WAjv3oMgQy

      Comment


        #4
        What are the default settings? Will check this out tonight...also can it set back to default.
        Prahjister ****MK808(nonB)****MK808B V5****MK808B Plus****UBOX R89**** CX919****MK808B Pro****Nexbox N9****Eny Em95****Matricon Q2****Tanix TX5 Pro****

        Comment


          #5
          @lewy20041. THX. I realy appreciate your applause.
          In comparision to your achievements it's just small command line tool but it might be usefull.




          Originally posted by prahjister View Post
          What are the default settings? Will check this out tonight...also can it set back to default.
          Do you mean default setting in each firmware? It varies.


          There is config file. There you can change values as you like. These are only "from the top".
          Code:
          CPU 6
          1200 1200
          1416 1275
          1608 1325
          1704 1350
          1800 1375
          1920 1400
          
          GPU 3
          417 1100
          533 1200
          625 1275
          
          DDR 3
          456 1150
          600 1200
          700 1200

          This tool will dispaly values read from original resource/boot/kernel .img file or mtd partition and then you can modify config file accordingly.
          Last edited by Gormar; 09-13-2015, 08:43.
          RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM 792MHz@1.2V Wasser's 3.0.11 firmware
          Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
          bricked: VOYO V1 mini 8G/64GB Windows 10

          Comment


            #6
            I'm sorry I'm ignorant when it comes to oc the rk3288. Do all three need to be modified to work
            Prahjister ****MK808(nonB)****MK808B V5****MK808B Plus****UBOX R89**** CX919****MK808B Pro****Nexbox N9****Eny Em95****Matricon Q2****Tanix TX5 Pro****

            Comment


              #7
              You must modify used values. That depend from kernel location in your device. If it is in boot.img then values are read from resource file contained in boot.img also (when boot > ~5MB). To be "safe" you can change found values in resource and boot.

              Unlocking kernel is just for CPU OC above 1,6GHz (default in most if not all stock firmwares).

              P.S.
              To unlock kernel in boot file you need overclockmatic_RK3288.elf in version 1.0.1 or higher.
              Last edited by Gormar; 04-11-2015, 23:28.
              RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM 792MHz@1.2V Wasser's 3.0.11 firmware
              Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
              bricked: VOYO V1 mini 8G/64GB Windows 10

              Comment


                #8
                Thanks for sharing.

                I'm just curious if I overclock cpu from 1.6ghz to 2.2ghz, are the frequencies inbetween also used? Or 1.6ghz is simply overwritten with 2.2ghz?

                And btw, I see you're checking for 32-bit pattern only, when searching for the lock frequencies
                I find it a bit low, because you might patch incorrect offset and soft-brick the device.
                If I were you, I would consider increasing it to at least 64-bit.

                Keep up the good work!
                TV-box: Nagrace HPH NT-V6, 4GB RAM, 32+32GB ROM, Quad-core RK3288, Mali-T764 MP4
                HPH overclocked kernel: CPU@1.92Ghz, GPU@625Mhz, DDR3@792Mhz
                Custom case & cooling: 120mm 5V out-take fan (custom cooling DIY-style)
                Gamepad: Tronsmart Mars G01 | Keyboard/Touchpad: Rii i12 mini | Air Mouse/Keyboard: Rii i25 mini
                2x 1TB external 2,5" 5.4k RPM on USB 3.0 HUB, 7 ports with switches & LEDs
                3A TV-box power supply + 4A USB HUB power supply
                Grundig 48"/122cm FullHD LED TV

                Comment


                  #9
                  I didn't make it clear but these values in cfg file will be placed in resource file exactly as there are but starting from the highest setting at the top and going down. These values I prepared for stock firmwares with max CPU set to 1608MHz and about 12 operation points. It should "comply" quite good with them. But if not then you can always edit cfg file to get resoult which you need. Therefor you should read what the tool propose and only if you agree with that confirm write operation.
                  RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM 792MHz@1.2V Wasser's 3.0.11 firmware
                  Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
                  bricked: VOYO V1 mini 8G/64GB Windows 10

                  Comment


                    #10
                    OK, I see. So if I know how many cpu operating points are contained in dtb (usualy 14), I can also add 14 frequencies into app config file, and make the cpu scaling work exactly how I want? Do you plan to add support for additional operating points for finer scaling?
                    TV-box: Nagrace HPH NT-V6, 4GB RAM, 32+32GB ROM, Quad-core RK3288, Mali-T764 MP4
                    HPH overclocked kernel: CPU@1.92Ghz, GPU@625Mhz, DDR3@792Mhz
                    Custom case & cooling: 120mm 5V out-take fan (custom cooling DIY-style)
                    Gamepad: Tronsmart Mars G01 | Keyboard/Touchpad: Rii i12 mini | Air Mouse/Keyboard: Rii i25 mini
                    2x 1TB external 2,5" 5.4k RPM on USB 3.0 HUB, 7 ports with switches & LEDs
                    3A TV-box power supply + 4A USB HUB power supply
                    Grundig 48"/122cm FullHD LED TV

                    Comment


                      #11
                      This is patcher type application. I never considered rebuilding or remodeling whole image file therefore I do not plan to make version which can change number of operation frequencies and voltage pairs. Sorry.

                      In my experience less operation points is better than too many. Remember that each CPU frequency change take some time.

                      If I realy need maximum performance then I lock at max frequency with CPU governor set to "performance" and
                      I know similar "trick" for GPU (hint: disable mali DVFS).
                      RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM 792MHz@1.2V Wasser's 3.0.11 firmware
                      Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
                      bricked: VOYO V1 mini 8G/64GB Windows 10

                      Comment


                        #12
                        Unbelievable! It hitted the 46k MARK on antutu!
                        That's an increase of 10k!

                        WOW

                        Thank you!

                        Comment


                          #13
                          Hi Gormar.

                          i Execute this program , can modify sucessful, and Rebot TVBOX, but can not boot, occur Blurred screen,

                          before use burs's method directly modify resource.img is the same problem,

                          Maybe modify DDR's freq is something wrong

                          Comment


                            #14
                            Originally posted by jamesw View Post
                            i Execute this program , can modify sucessful, and Rebot TVBOX, but can not boot, occur Blurred screen,
                            before use burs's method directly modify resource.img is the same problem,
                            If you're patching mo's rom, you can't have full overclock (gpu/ddr only, at best).
                            Patching the kernel will soft-brick your device. Don't know why. Must be kernel sources he's using.
                            TV-box: Nagrace HPH NT-V6, 4GB RAM, 32+32GB ROM, Quad-core RK3288, Mali-T764 MP4
                            HPH overclocked kernel: CPU@1.92Ghz, GPU@625Mhz, DDR3@792Mhz
                            Custom case & cooling: 120mm 5V out-take fan (custom cooling DIY-style)
                            Gamepad: Tronsmart Mars G01 | Keyboard/Touchpad: Rii i12 mini | Air Mouse/Keyboard: Rii i25 mini
                            2x 1TB external 2,5" 5.4k RPM on USB 3.0 HUB, 7 ports with switches & LEDs
                            3A TV-box power supply + 4A USB HUB power supply
                            Grundig 48"/122cm FullHD LED TV

                            Comment


                              #15
                              Originally posted by jamesw View Post
                              I execute this program , can modify sucessful, and Rebot TVBOX, but can not boot, occur Blurred screen,
                              before use burs's method directly modify resource.img is the same problem,
                              Maybe modify DDR's freq is something wrong
                              First thing about your device which I noticed is quite weak power supply (5V/2A). I've got similar with K-R42 (RK3188). It can bearly run RK3288 new SoC and you try to OC it. Bad idea.
                              To investigate what is exactly a problem you should first get better power supply and then prepare boot.img with only DDR memory setting changed. It would be best if auto-frequency is disabled then you can just set top frequency to for example 600MHz at 1250 mV. Then after system boot at "normal" frequency which should be lower than maximum you can switch to DDR "performance" mode and maximum frequency by executing command as SU:
                              echo "p" > /dev/video_state

                              After surviving that you can return to "normal" frequency:
                              echo "n" > /dev/video_state

                              Example config:
                              Code:
                              DDR 1
                              600 1250
                              Originally posted by Burs View Post
                              If you're patching mo's rom, you can't have full overclock (gpu/ddr only, at best).
                              Patching the kernel will soft-brick your device. Don't know why. Must be kernel sources he's using.
                              Patching the kernel is problematic and it will almost always brake with newer source files.
                              In tested kernels I always had to change frequency lock in two places but I realy do not know why .

                              Resource.img is much simpler to alter because it has well known structure.
                              RK3288 2GB/16GB OC 1.9GHz at 1.2V RAM 792MHz@1.2V Wasser's 3.0.11 firmware
                              Out: monitor FullHD 16:9, 3.5" jack headphones; In: remote control, USB HUB: keyboard + mouse + pendrive
                              bricked: VOYO V1 mini 8G/64GB Windows 10

                              Comment

                              Working...
                              X