Porting Thunderzap MTK6577 kernel to Star N9588? - Micromax A110

I'm interested in overclocking my STAR N9588 it's the MTK6577 1ghz cortex a9 1gb ram and I wanna port this 1.4Ghz kernel over.
Can someone explain exactly how to do that?
thanks

1chris89 said:
I'm interested in overclocking my STAR N9588 it's the MTK6577 1ghz cortex a9 1gb ram and I wanna port this 1.4Ghz kernel over.
Can someone explain exactly how to do that?
thanks
Click to expand...
Click to collapse
Mate, no OEM has realised JB Sources for the MTK6577 as of yet, well Wiko do realised ..
but our dev found them rather incomplete for successfully compiling a kernel!

Wow that really sucks
We should be able to overclock the MTK6577, right? If we put all of our brains together for some super brain storming...
Anyway couldn't I just go into each relevant file being probably 10 or more in /system/device I believe and there's all about max frequency and everything on all these CPU_MAX_FREQ files etc etc...
What do you think?
I just really think the MTK6577 needs some help in the HD decode department and especially a gpu overclock as even the Live wallpaper lags when scrolling...
*OH YEAH*
Can I port CM10 to my STAR N9588?
Thanks bro

1chris89 said:
Wow that really sucks
We should be able to overclock the MTK6577, right? If we put all of our brains together for some super brain storming...
Anyway couldn't I just go into each relevant file being probably 10 or more in /system/device I believe and there's all about max frequency and everything on all these CPU_MAX_FREQ files etc etc...
What do you think?
I just really think the MTK6577 needs some help in the HD decode department and especially a gpu overclock as even the Live wallpaper lags when scrolling...
*OH YEAH*
Can I port CM10 to my STAR N9588?
Thanks bro
Click to expand...
Click to collapse
First, This isnt the Right section to post..Contact a MOD to change the thread to appropraite one... CM isnt yet available for Mediatek phones...SO have to wait....

1chris89 said:
Wow that really sucks
We should be able to overclock the MTK6577, right? If we put all of our brains together for some super brain storming...
Anyway couldn't I just go into each relevant file being probably 10 or more in /system/device I believe and there's all about max frequency and everything on all these CPU_MAX_FREQ files etc etc...
What do you think?
I just really think the MTK6577 needs some help in the HD decode department and especially a gpu overclock as even the Live wallpaper lags when scrolling...
*OH YEAH*
Can I port CM10 to my STAR N9588?
Thanks bro
Click to expand...
Click to collapse
All that is possible if we have a full tree of the sources.. without them even of you try to play with boot.IMG it won't boot and you will be stuck in a rut!

It appears overclocking the thing isn't that hard at all. Only problem is pull the right files, editing them then pushing them back. Like any file in /sys/devices/ etc I'm trying to adb pull /sys/devices and it doesn't seem to pull all the files. So I tried adb pull /sys/devices/*.* and it didn't seem to like that either. I tried editing the files and they simply don't save. So basically I need to say edit the files in the rom .zip prior to flashing in say TWRP and I can get a nice overclock no problem. It's not a matter of the stupid A** MTK crap it's a matter of modifying the android system (Cortex A9) portion with the updated files to allow for overclocking. As it's all so possible and they say the Cortex A9 can handle upwards of 1.6Ghz without any overvolt necessary.
Once I get this rolling I can help a few of you who are truly interested out. Unless you want to continue to think its impossible to do so then I say continue thinking that as it won't get you anywhere in life.

1chris89 said:
It appears overclocking the thing isn't that hard at all. Only problem is pull the right files, editing them then pushing them back. Like any file in /sys/devices/ etc I'm trying to adb pull /sys/devices and it doesn't seem to pull all the files. So I tried adb pull /sys/devices/*.* and it didn't seem to like that either. I tried editing the files and they simply don't save. So basically I need to say edit the files in the rom .zip prior to flashing in say TWRP and I can get a nice overclock no problem. It's not a matter of the stupid A** MTK crap it's a matter of modifying the android system (Cortex A9) portion with the updated files to allow for overclocking. As it's all so possible and they say the Cortex A9 can handle upwards of 1.6Ghz without any overvolt necessary.
Once I get this rolling I can help a few of you who are truly interested out. Unless you want to continue to think its impossible to do so then I say continue thinking that as it won't get you anywhere in life.
Click to expand...
Click to collapse
hello
it is possible for our canvas 2 to overclock on jellybean all we have to do is port thunderzap kernel for jelly bean.
thats how the HTC explorer got jelly bean
but we dont have much devs

I need to edit the files within /sys/devices/ to increase the max governor clock and max info clock and then look up the cortex a9 power profiles from say a known to be stable device. Like any cortex a9 tablet to know what voltages are ideal.
They say the cortex a9 can handle 1.6ghz with little to no voltage increase.
I'd also like to overclock the gpu PowerVR SGX 531.
If I can I'm going to push for 2.0Ghz if possible.
****Can someone help me adb pull /sys/devices/? Like what command to completely copy all files from /sys/devices from adb and then edit the files and then adb push? Or create a CWM or TWRP .zip with the updated kernel files for overclock?
Thanks

1chris89 said:
I need to edit the files within /sys/devices/ to increase the max governor clock and max info clock and then look up the cortex a9 power profiles from say a known to be stable device. Like any cortex a9 tablet to know what voltages are ideal.
They say the cortex a9 can handle 1.6ghz with little to no voltage increase.
I'd also like to overclock the gpu PowerVR SGX 531.
If I can I'm going to push for 2.0Ghz if possible.
****Can someone help me adb pull /sys/devices/? Like what command to completely copy all files from /sys/devices from adb and then edit the files and then adb push? Or create a CWM or TWRP .zip with the updated kernel files for overclock?
Thanks
Click to expand...
Click to collapse
That really sounds very noobish
1. You cannot simply pull the interfaces since they are symlinked infinitely
2. And do you think Mediatek will leave Clocksource interface controllable to do this? You cannot simply do "2Ghz" in the pulled interface and boom push it back to make your phone fly? eh? The new values will get RESET to original values since they are blocked/limited to the specific values. And thats why we have a thing called "Kernel Sources"

I found the mtk6577 source data... which shows the 1.2Ghz frequency available but it's not in the right table.
https://github.com/wiko-sources/cin.../platform/mt6577/kernel/core/cpufreq-mt6577.c
Maybe I could write a script like
#change cpu to 1.2Ghz by zhuzhuojie 2011-07-23 *EXAMPLE*
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor hybrid
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed 1209000
**If I can get the Motorola Xoom ElementalX kernel source data and compare and copy I think I can attempt to achieve 1.7Ghz**
#define DVFS_F1 (1001000) // KHz, 1/1 <---------- I say change this value to 1209000 or test beyond 1.2ghz until instability occurs.
#define DVFS_F2 ( 834166) // KHz, 5/6
#define DVFS_F3 ( 750750) // KHz, 3/4
#define DVFS_F4 ( 667333) // KHz, 2/3
#define DVFS_F5 ( 500500) // KHz, 1/2
#define DVFS_F6 ( 250250) // KHz, 1/4
#define DVFS_F7 ( 166833) // KHz, 1/6
#define DVFS_F1_TM (1209000) // KHz, 1/1
#define DVFS_F2_TM (1007500) // KHz, 5/6
#define DVFS_F3_TM ( 906750) // KHz, 3/4
#define DVFS_F4_TM ( 806000) // KHz, 2/3
#define DVFS_F5_TM ( 604500) // KHz, 1/2
#define DVFS_F6_TM ( 302250) // KHz, 1/4
#define DVFS_F7_TM ( 201500) // KHz, 1/6
--------------------------------------------------------------------------
* Operate Point Definition
****************************/
#define OP(cpufreq) \
{ \
.cpufreq_mhz = cpufreq, \
}
/***************************
* MT6575 E1 DVFS Table
****************************/
static struct mtk_cpu_freq_info mt6575_freqs_e1[] = {
OP(DVFS_F2_MT6575_E1),
OP(DVFS_F1_MT6575_E1),
};
/***************************
* MT6575 E2 DVFS Table
****************************/
static struct mtk_cpu_freq_info mt6575_freqs_e2[] = {
OP(DVFS_F4_MT6575_E2),
OP(DVFS_F3_MT6575_E2),
OP(DVFS_F2_MT6575_E2),
OP(DVFS_F1_MT6575_E2),
};
/***************************
* MT6577 E1 DVFS Table
****************************/
static struct mtk_cpu_freq_info mt6577_freqs_e1[] = {
OP(DVFS_F6_MT6577_E1),
OP(DVFS_F5_MT6577_E1),
OP(DVFS_F4_MT6577_E1),
OP(DVFS_F3_MT6577_E1),
OP(DVFS_F2_MT6577_E1),
OP(DVFS_F1_MT6577_E1),
};
/***************************
* MT6577 E1 TM DVFS Table
****************************/
static struct mtk_cpu_freq_info mt6577_freqs_e1_tm[] = {
OP(DVFS_F6_MT6577_E1_TM),
OP(DVFS_F5_MT6577_E1_TM),
OP(DVFS_F4_MT6577_E1_TM),
OP(DVFS_F3_MT6577_E1_TM),
OP(DVFS_F2_MT6577_E1_TM),
OP(DVFS_F1_MT6577_E1_TM),
};
static unsigned int mtk_cpu_freqs_num;
static struct mtk_cpu_freq_info *mtk_cpu_freqs;
static struct cpufreq_frequency_table *mtk_cpu_freqs_table;
extern struct kobject *power_kobj;
extern bool clkmgr_high_speed_check(void);
extern int cpufreq_state_set(int enable);
extern CHIP_VER get_chip_ver(void);

So have you tried? I'm really interested in getting this thing overclocked
Sent from my ASUS Transformer Pad TF700T using Tapatalk HD

@FooFighter312
What Device are you wanting to overclock specifically? Because your ASUS Transformer Pad TF700T uses a Nvidia Tegra 3 Quad Core with 5 cores in total all 4 running at 1.6Ghz by stock and the 5th being a power savings core. I've seen 2Ghz out of those but what I have seen is the Tegra 3 benefits primarily by a GPU core Clock increase to I believe 550Mhz was ideal for stability and at least a 20fps increase in game from my testing. Use TrixsterMod from Play Store with a modded kernel and root to push to 550Mhz.
***** IN REGARDS TO THE MTK6577 (ARM Cortex A9) *****
I used OPENSSH via the Play Store to use my PC to remote into the /sys/devices/ etc and change the parameters which doesn't sound hard. However when I changed parameters in files and tried saving it would either give me a permission error, or it would change the value back after I saved it.
Which makes me believe all the files/ parameters within /sys/devices/ etc are "Shadowed" by an unknown source of the system.
If I could determine where it's being shadowed from, I could then change it from the source. From there the "Shadowed" "Source" data would then automatically manipulate the files within /sys/devices/ and achieve the overclocked speeds. According to my research the MTK6577 and the ARM Cortex A9 in particular are using a voltage well beyond it's theoretical optimum. Meaning it's using more voltage than required for firstly stability, but also the ease of overclocking to huge speeds without ever needing to touch the voltage! According to several sources and ARM directly, they put enough volts into the 1Ghz stock speed to usually be able to achieve up to 1.6Ghz without a volt increase. However anything beyond 1.6Ghz requires a heavy volt increase which would ultimately result in epic amounts of heat.
If anyone can give more info on this that would be excellent!
Thanks

I was referring to the MTK6577 for my UMI X1. As far as I've seen there are no custom kernels for my device and the stock one just isn't enough for me. I'd like to push it a little further if possible, and I also would like more governors and io schedulers available. Another problem is that when I change any of the settings, they automatically revert to stock after a reboot.
I'm quite a noob when it comes to programming, especially on android, but I'm learning slowly. Right now I'm just an advanced user, nothing more.
Sent from my ASUS Transformer Pad TF700T using Tapatalk HD

no update tutorial?

costum kernel for axioo picopad 5Gew
please custom kernel for axioo Picopad 5 GEW. mtk6577 dual-core 1GHz 512mb ram so that support for overclocking. 1.4 Ghz and swaap

Related

[Q] How to use the high speed SRAM in the ARM cpus?

When I worked on some ARM embedded projects, we used the zero wait state SRAM of the ARM chip to speed up our applications. The performance benefit is tremendous. There is no published way to access it on Windows Mobile, but there probably is a way. Anyone have a clue? Most likely it will be addresses lower or higher than the video buffer.
Thanks,
L.B.
logical quest..
hi.!
I was interested for your topic..
i know that there are some app
that permise you the overclocking
of texas omap...what is this? another
type of overclocking? i think that is
very dangerous way..the risk for the cpu
fusion is high..!so..i don't think that is
a good idea..and the margin that you have
for example with an 200 Mhz processor is minimum for
a good overclocking..if i were you, i should not force the default limit setting by the HTC company.. Ppc device haven't a fan for heat's dissipation (it isn't a PC!) , so when you use the PDA and consequently you make his overclocked cpu under pressure, its go aut of order and..Bang.! do you agree?
What I'm asking has nothing to do with overclocking. The DRAM in PDA's is slow compared to how fast instructions can execute. Built into most ARM CPUs is a small amount of static RAM (usually 256K or 384K) that is usually used for the video buffer. The excess memory is useful for storing data for your applications to run quicker since it won't have to wait for the RAM.
I personally do not overclock my PDAs.
is this a sort of SecondLevelDataCache as Winzozz XP?
devilpera64: This is SRAM as in STATIC RAM. It's a little area of high speed memory (0 wait state) built onto the processor silicon. It's quite useful for use as a video buffer and for speeding up critical sections of code.

[DEV ONLY] i9003 overclock module [need help from devs]

hello guys so i was looking at this project for Motorola Droid X:
http://code.google.com/p/milestone-overclock/
since Droid X has similar OMAP3630 chipset i thought we could try it out for this device...
if it has already been tried out by u guys then sorry for dupe post
anyways the sources available (milestone-overclock-module-1.4.8.tar.gz) were not directly compatible with the i9003 kernel sources (GB_CHN_UPDATE1) so i have modified it slightly.... and now the module gets compiled and it gets loaded (by insmod)... the sysfs and proc interface is active... even the app (MilestoneOverclock148.apk) detects the module correctly... but the changes dont work...
i invite all devs to help out with this...
modified sources are posted here:
https://github.com/DooMLoRD/i9003-overclock
noobs kindly dont spam this thread....
P.S.: Droid X has got overclock upto 1.4GHz with help of this so i am sure we can try little more overclock than 1.1GHz
If you look at the Samsung code in arch/arm/mach-omap2 and /plat-omap, and compare it with code seen for example in the nook color sources (OMAP 3630, see here), there are HUGE differences.
Normally the opp frequency table seems to be hard coded and easy to edit. Samsung on the other hand decided to dynamically assemble it in board-latona.c with info from cpufreq34xx.c (if I overlook that correctly). These differences could be the reason the module does not work.
Further, the line Amit and you changed in clock.c could - but I am not quite sure - actually lead to 10% higher clocks on every opp step. Because what you changed
Code:
- mpurate *= 1000000;
+ mpurate *= 1100000;
is a conversion factor from MHz to Hz. The line
Code:
if (mpurate < 1000)
above seems to be a logical check if the desired clock has been given in Hz or MHz, which is expected to be at max 800 for the 3630. For our 3640 the highest frequency is 1000, which would require the check to be
Code:
if (mpurate < 1001)
or similar, but they might have overlooked this change. If the input is below this boundary, it is thought to be in MHz, and is converted to match the internal logic which works with Hz only.
And two more questions: I experimented a lot with the OC code, and even added two new opps (1100/840 and 1200/865) to my tables. I could select them, and everything including cpufreq scaling tables was correct, but the CPU never was actually clocked above 1000MHz. Do you know why? And did you check if it is with your kernel (compare benchmark values, do not trust any other source, they all lie )?
previously i was also having milestone A853 and by the overclock module it can be overclocked to 1.2 ghz
XDA_Bam said:
If you look at the Samsung code in arch/arm/mach-omap2 and /plat-omap, and compare it with code seen for example in the nook color sources (OMAP 3630, see here), there are HUGE differences.
Normally the opp frequency table seems to be hard coded and easy to edit. Samsung on the other hand decided to dynamically assemble it in board-latona.c with info from cpufreq34xx.c (if I overlook that correctly). These differences could be the reason the module does not work.
Further, the line Amit and you changed in clock.c could - but I am not quite sure - actually lead to 10% higher clocks on every opp step. Because what you changed
Code:
- mpurate *= 1000000;
+ mpurate *= 1100000;
is a conversion factor from MHz to Hz. The line
Code:
if (mpurate < 1000)
above seems to be a logical check if the desired clock has been given in Hz or MHz, which is expected to be at max 800 for the 3630. For our 3640 the highest frequency is 1000, which would require the check to be
Code:
if (mpurate < 1001)
or similar, but they might have overlooked this change. If the input is below this boundary, it is thought to be in MHz, and is converted to match the internal logic which works with Hz only.
And two more questions: I experimented a lot with the OC code, and even added two new opps (1100/840 and 1200/865) to my tables. I could select them, and everything including cpufreq scaling tables was correct, but the CPU never was actually clocked above 1000MHz. Do you know why? And did you check if it is with your kernel (compare benchmark values, do not trust any other source, they all lie )?
Click to expand...
Click to collapse
Yes I know the changes in diff omap kernel sources... Spent a few hrs today comparing milestone/droid x and i9003 kernel sources to get this module complied and loading...
I am sure that the change done by amit is correct, because there is a very prominent change in linpack scores ~18 compared to ~16 which is typical of a 10% overclock...
As for ur other two questions I posted this earlier in the other thread
DooMLoRD said:
Not sure... These omap chips seem to have only 4 bins (300/600/800/1000)... We are currently making the 1000 MHz bin run at 1100mhz... I am not sure if we can add extra bins... I tried adding a lower 125MHz bin, it was shown by setcpu but the device never really went below 300mhz... May be we need to investigate it further...
Sent from my R800i using XDA App
Click to expand...
Click to collapse
P.S.: the chip on this phone is OMAP3630
Sent from my R800i using XDA App
DooMLoRD said:
I am sure that the change done by amit is correct, because there is a very prominent change in linpack scores ~18 compared to ~16 which is typical of a 10% overclock...
Click to expand...
Click to collapse
OK, so the overclock is working. Nice Concerning the mpurate, have a look here. The author is working at TI, so I expect him to be familiar with the code. However, that does not mean we can't use the conversion factor for overclock. It's just not "clean".
DooMLoRD said:
P.S.: the chip on this phone is OMAP3630
Click to expand...
Click to collapse
Yep, you're right. Got that wrong
---------- Post added at 10:50 PM ---------- Previous post was at 10:41 PM ----------
And another idea: For the Nook Color, there is a guy who implemented an interface and an app to change the clocks. It is different from droid-overclock, because he implemented a sysfs interface in the kernel sources. Hope this helps.
http://code.google.com/p/milestone-overclock/
sorry its of no use as yr already checked it out
XDA_Bam said:
And another idea: For the Nook Color, there is a guy who implemented an interface and an app to change the clocks. It is different from droid-overclock, because he implemented a sysfs interface in the kernel sources. Hope this helps.
Click to expand...
Click to collapse
That looks very much like the sysfs interface we added for VDD control on QSD8250/MSM7X30... Should work I think...
Sent from my R800i using XDA App
akashsgpgi said:
http://code.google.com/p/milestone-overclock/
sorry its of no use as yr already checked it out
Click to expand...
Click to collapse
U should be BANNED for spamming.... The link u posted is already there in the second line of the main post...
READ!!!!
Sent from my R800i using XDA App
I made progress with the sysfs interface seen on the Nook. Kernel boots, and the correct rates are displayed under /sys/power/mpu_freq_oppX. I was also able to set the hightest opp to 800 MHz, so that the two highest were both at the same frequency. The setting worked (confirmed with Linpack). But 1100 MHz was ignored (stayed at 1000). Looking into this further.
XDA_Bam said:
I made progress with the sysfs interface seen on the Nook. Kernel boots, and the correct rates are displayed under /sys/power/mpu_freq_oppX. I was also able to set the hightest opp to 800 MHz, so that the two highest were both at the same frequency. The setting worked (confirmed with Linpack). But 1100 MHz was ignored (stayed at 1000). Looking into this further.
Click to expand...
Click to collapse
so wht cpu freq table are u using exactly?
wht i think is we should concentrate on this (atleast for now):
just keep the 4 bins as is (300, 600, 800, 1000)
then try n get the access to these via sysfs (or proc)
see if we can modify them via that interface, say change 1000 to 1100 or change 800 to 900
and then do tests if these work...
if possible make a sysfs (or proc) interface for VDD (voltage control) too...
have u pushed the testing changes... i am working on same thing here... might help to speed things up...
I am currently testing on the master branch, so the branch is "wrong", but this is the commit:
Sysfs interface
Because only underclock works as of now, I am tested setting
Code:
if (mpurate < 2000)
but that didn't help. Now I will define 1100 and 1200 MHz steps in board-latona.c and cpufreq34xx.c to see if this helps.
EDIT: Nope, that didn't solve it. CPU does not run at 1100. Not even 900. Stays at 1000 in both cases. 800 can be forced...
some updates on the overclock module:
we need to search in /proc/kallsyms for:
clk_init_cpufreq_table
cpufreq_stats_update
on our kernel (uc-kernel v04) they are at:
Code:
c005a198 T clk_init_cpufreq_table
c03c5aec t cpufreq_stats_update
these may be different on stock kernel we need to use specific address
I just thought this might be helpful since Optimus black has the same hardware.
joelmonty said:
I just thought this might be helpful since Optimus black has the same hardware.
Click to expand...
Click to collapse
its the same module dude...
these are all based on milestone-overclock module
DooMLoRD said:
some updates on the overclock module:
we need to search in /proc/kallsyms for:
clk_init_cpufreq_table
cpufreq_stats_update
on our kernel (uc-kernel v04) they are at:
Code:
c005a198 T clk_init_cpufreq_table
c03c5aec t cpufreq_stats_update
these may be different on stock kernel we need to use specific address
Click to expand...
Click to collapse
Why these two? Cpufreq seems to be quite happy with the frequency tables. All frequencies are correctly listed, and the highest available for hardware and scaling are correct (say 1100, if I set it). But some "mysterious barrier" doesn't let the cpu clock as high as requested by cpufreq.
XDA_Bam said:
Why these two? Cpufreq seems to be quite happy with the frequency tables. All frequencies are correctly listed, and the highest available for hardware and scaling are correct (say 1100, if I set it). But some "mysterious barrier" doesn't let the cpu clock as high as requested by cpufreq.
Click to expand...
Click to collapse
read the sources of the module it explains why we need to look at those values...
DooMLoRD said:
read the sources of the module it explains why we need to look at those values...
Click to expand...
Click to collapse
Looked into it, and got the module to load and change frequencies by manually setting omap2_clk_init_cpufreq_table_addr=0xXXXXXX. I was able to underclock to 800 and back to 1000 MHz. 1200 was set, but not correctly applied - the mpu was still running at 1000 MHz. Further on, it ****ed up the frequency table. Instead of [300,600,800,1000] it was [600, 600, 1000, 1000] after the test. Not good
XDA_Bam said:
Looked into it, and got the module to load and change frequencies by manually setting omap2_clk_init_cpufreq_table_addr=0xXXXXXX. I was able to underclock to 800 and back to 1000 MHz. 1200 was set, but not correctly applied - the mpu was still running at 1000 MHz. Further on, it ****ed up the frequency table. Instead of [300,600,800,1000] it was [600, 600, 1000, 1000] after the test. Not good
Click to expand...
Click to collapse
yups code needs some more patching but i am sure this is the way forward for stable overclock
I've got the basics working with a completely reworked sysfs interface (no module). See GitHub.
The idea is simple: At all times, there shall be no more than 4 OPPs enabled. For each overclock "wish", we disable the currently highest OPP, and enable the overclocked one. If this has no corresponding OPP yet, we create it.
The code works, and has the following problems / features:
Only the highest OPP can be set for now. Consequently, the overclock has to be higher than 800 MHz.
The voltage is not adjusted, yet. All overclock frequencies are run with the 1 GHz stock voltage.
The cpufreq table, policy and stats are not updated, yet
The cpu does not go into deep sleep after the clocks have been adjusted (possibly because the cpufreq table is wrong)
As OPPs are added to the table if necessary, it is theoretically possible to max out the OPP array by defining new frequencies hundreds of times (depending on the maximum array size).
To set the frequency (in MHz), type
Code:
echo "1100" > /sys/power/overclock_max_freq
It would be really cool if you could take a look, DooMLoRD. The only real problem I see right now is the cpufreq table. If this would be correctly updated, the rest would be "easy" I tried some stuff (not in the commit), but nothing worked, yet.
XDA_Bam said:
I've got the basics working with a completely reworked sysfs interface (no module). See GitHub.
The idea is simple: At all times, there shall be no more than 4 OPPs enabled. For each overclock "wish", we disable the currently highest OPP, and enable the overclocked one. If this has no corresponding OPP yet, we create it.
The code works, and has the following problems / features:
Only the highest OPP can be set for now. Consequently, the overclock has to be higher than 800 MHz.
The voltage is not adjusted, yet. All overclock frequencies are run with the 1 GHz stock voltage.
The cpufreq table, policy and stats are not updated, yet
The cpu does not go into deep sleep after the clocks have been adjusted (possibly because the cpufreq table is wrong)
As OPPs are added to the table if necessary, it is theoretically possible to max out the OPP array by defining new frequencies hundreds of times (depending on the maximum array size).
To set the frequency (in MHz), type
Code:
echo "1100" > /sys/power/overclock_max_freq
It would be really cool if you could take a look, DooMLoRD. The only real problem I see right now is the cpufreq table. If this would be correctly updated, the rest would be "easy" I tried some stuff (not in the commit), but nothing worked, yet.
Click to expand...
Click to collapse
this is the same problem as with other overclocks i was playing with...
the cpufreq table doesnt get updated... only the module based way seems to change that table...
anyways we will have to investigate this further...
oh btw i have found patch to overclock GPU...
DooMLoRD said:
oh btw i have found patch to overclock GPU...
Click to expand...
Click to collapse
Nice. Hehe

[How-To] OC/UV a kernel

As I cannot find any related guide while google-ing, I want to post this question on here for the purpose of learning and probably helping other people.
[Q1] How to overclock a kernel
which files are needed -> kernel source .. ?
what files need to be edited ?
is the cpufreq driver related ?
how to determine which frequencies need higher voltage and how high exactly ?
[Q2] Undervolting
which files are needed -> kernel source .. ?
what files need to be edited ?
is the cpufreq driver related ?
how to determine which frequencies can use lowered voltage and how to calculate them ?
I would be very thankful if any developer could teach me (probably others too) and I will contribute back for sure.
I am right now fixing up bugs in TeamGummy rom, and I'm nearly finished.
Only thing I lack is a custom kernel, which I want to build myself along with the rom.
*push*
Watch out guys, master guevor is going to teach us a little of his enormous knowlegde, so better keep your eyes on this one.
Overclocking
I must say that all I'm going to write, is what I've gathered looking at the code and changes made by others (thanks Blades and Roach2010) (I have not had any documentation about it), so I could make mistakes or misinterpretation.
Nor do I explain everything, because if you do not have a minimal knowledge get to play this directly may be dangerous.
(Q1) Overclocking
Files to modify
arch/arm/mach-tegra/tegra2_clocks.c (All matters relating to the frequencies.)
The system uses a series of programmed pll clocks which in turn can be used as a basis to other clocks. Let's say for this case pll_x is used for the base of processor clock.
The frequency table are in tegra_pll_x_freq_table processor. Seeing the type definition clk_pll_freq_table in clock.h we know that has entries consisting of 6 values​​. (input_rate, output_rate, n, m, p, cpcon)
These values ​​allow tegra2_pll_clk_set_rate function to set the pll frequency.
The values ​​of interest are the frequency of input and output that indicates the input frequency base to be used and what frequency we want to set (it will use the frequency corresponding to the current base and the output frequency we want). m * p values ​​give us the divisor and n is the multiplier. For simplicity we say that n/(m*p) will give us the multiplier, which applied to the base frequency will give the target frequency.
So if we want to add new frequencies, we must add entries in this structure (tegra_pll_x_freq_table) so the system knows how to program a frequency we want to use.
Add 4 entries for each frequency we want to add (one for each base frequency: 12000000,13000000,19200000,26000000 in our case), with multipliers/dividers to calculate the frequency for which we are adding.
If we add higher frequencies than at present, we have to change the maximum (max_rate) in the tegra_clk_virtual_cpu and tegra_clk_cclk structures, otherwise the system will ignore it. Also have to change the limits for our type of processor in sku_limits. For this case the cpu, cclk y pll_x in the values ​​for our processor (0x04, 0x08, 0x0F).
Finally we modify the table of frequencies used by the processor (frequency list and their order). Is defined at cpufreq_tables and contains a list of lists where we can add a new list or not to touch anything and modify an existing list.
We can look at the existing list freq_table_1p2GHz or in my source I added the list freq_table_1p7GHz.
Contains a list of frequencies that the system can select. It uses the list whose maximum corresponds to the maximum indicated above.
​
arch/arm/mach-tegra/tegra2_dvfs.c (Everything related to the voltages and its relationship with the frequencies.)
This part is much more sensitive and therefore can affect much to the duration of the battery as to stability. I have no formula (unfortunately for me) on how to modify the values, so the task has been more trial and error.
The first thing to know is that one must distinguish between the core voltage and the cpu and should be the latter inferior to the first. In tegra2_dvfs_rel_vdd_cpu_vdd_core function establishes the relationship between the two, being the default 120mV core above the cpu.
Basically what we do if we have added frequencies higher than normal, is to increase the voltage so that they are stable (depend on each processor). I recommend (at first) increment in the same extent all the values ​​involved (maximum voltage).
Therefore we can modify:
Table core_millivolts, establishing the voltages that core can use.
Table cpu_millivolts, establishing the voltages that cpu can use. It contains all the steps and should take into account the difference with the core discussed earlier. If we added any frequency, we add the corresponding voltages.
Tables core_speedo_nominal_millivolts and cpu_speedo_nominal_millivolts contain a nominal voltage of both the core and the cpu.
The maximum and nominal voltages in structures tegra2_dvfs_rail_vdd_cpu, tegra2_dvfs_rail_vdd_core and tegra2_dvfs_rail_vdd_aon.
Finally we adjust the settings for dvfs_init ("cpu", 1,) according to the list of frequencies we want to use (adding if we added new frequencies or changing them if changed change some)
With these changes we should be able to overclock, although we know that although you can configure (once started) a maximum frequency below the maximum that we put on the tables, there is a problem and many times after suspending the system will use the maximum frequency of the table. To avoid this we must make some changes in cpufreq.c
​
drivers/cpufreq/cpufreq.c
The problem occurs in the second core when reconnected after being disconnected in the suspension process. The problem is solved with the next patch.
Code:
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index e157205..2626e2d 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1048,18 +1048,27 @@ static int cpufreq_add_dev(struct sys_device *sys_dev)
/* Set governor before ->init, so that driver could check it */
#ifdef CONFIG_HOTPLUG_CPU
+ struct cpufreq_policy *cp;
for_each_online_cpu(sibling) {
- struct cpufreq_policy *cp = per_cpu(cpufreq_cpu_data, sibling);
+ cp = per_cpu(cpufreq_cpu_data, sibling);
if (cp && cp->governor &&
- (cpumask_test_cpu(cpu, cp->related_cpus))) {
+ (cpumask_test_cpu(cpu, cp->related_cpus))) {
+ dprintk("found sibling CPU, copying policy\n");
policy->governor = cp->governor;
+ policy->min = cp->min;
+ policy->max = cp->max;
+ policy->user_policy.min = cp->user_policy.min;
+ policy->user_policy.max = cp->user_policy.max;
found = 1;
break;
}
}
#endif
if (!found)
+ {
+ dprintk("failed to find sibling CPU, falling back to defaults\n");
policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
+ }
/* call driver. From then on the cpufreq must be able
* to accept all calls to ->verify and ->setpolicy for this CPU
*/
@@ -1071,6 +1080,16 @@ static int cpufreq_add_dev(struct sys_device *sys_dev)
policy->user_policy.min = policy->min;
policy->user_policy.max = policy->max;
+ if (found)
+ {
+ /* Calling the driver can overwrite policy frequencies again */
+ dprintk("Overriding policy max and min with sibling settings\n");
+ policy->min = cp->min;
+ policy->max = cp->max;
+ policy->user_policy.min = cp->user_policy.min;
+ policy->user_policy.max = cp->user_policy.max;
+ }
+
blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
CPUFREQ_START, policy);
Ok, I'm on it. Trying my best, but I'm afraid you have to push me a little..
Facing heavy compile errors.
Question :
In your kernel source dir, which command do you use to start compiling ?
EDIT :
EDIT 2 :
@ all people trying to compile, do NOT use
Code:
make tegra_defconfig
!
Better grab an existing .config file from an already running kernel (thanks to guevor for this)
Just google "cyanogenmod building kernel from source" , it's described well over there.
If people request, I can share the kernel config and the precompiled blob tools once I get them from guevor.
First kernel compiled successfull, I have my zImage ready.
OC'd and Voltages changed.
First test kernel incoming the next days, I could need some testers.
Pm me if you want to test.
Thanks for this! I love your work and you sharing your vast knowledge of this subject! Thanks OP for giving him the means of enlightening us
back from the dead
edited
I was a little sleep deprived... my bad
Necromancy!
Say I want to just simply modify my cpu_max_freq via my stock kernel (no source availabel) and I have the boot.img and have unpacked it to boot.img-kernel. What should I do from here to get into the internals of the kernel to adjust the cpu_max_freq? I'm running an ARM Cortex A9, the same as the Tegra2 cpu per say.
Thanks
1chris89 said:
Say I want to just simply modify my cpu_max_freq via my stock kernel (no source availabel) and I have the boot.img and have unpacked it to boot.img-kernel. What should I do from here to get into the internals of the kernel to adjust the cpu_max_freq? I'm running an ARM Cortex A9, the same as the Tegra2 cpu per say.
Thanks
Click to expand...
Click to collapse
You can't do it that way. You can try to create oc modules but I couldn't tell you how to do that
Sent from my EVO using Tapatalk 2
Can you send me in the right direction?
Looks like unpacking the kernel isn't happening but I can create an overclock module which is FAR from easy but here's something I started on a little not sure if it's specific to the other device or whatever but I'll see how it goes.
http://forum.ppcgeeks.com/android-t...modules-tinboot-nand-boot-more-beginners.html
1chris89 said:
Say I want to just simply modify my cpu_max_freq via my stock kernel (no source availabel) and I have the boot.img and have unpacked it to boot.img-kernel.
Click to expand...
Click to collapse
Since the kernel is under GPL, get the sources from where you got the binary.
1chris89 said:
I'm running an ARM Cortex A9, the same as the Tegra2 cpu per say.
Click to expand...
Click to collapse
Is it a Tegra 2 or not? If not, this thread won't help you.
I don't understand this part:
The values ​​of interest are the frequency of input and output that indicates the input frequency base to be used and what frequency we want to set (it will use the frequency corresponding to the current base and the output frequency we want). m * p values ​​give us the divisor and n is the multiplier. For simplicity we say that n/(m*p) will give us the multiplier, which applied to the base frequency will give the target frequency.
So if we want to add new frequencies, we must add entries in this structure (tegra_pll_x_freq_table) so the system knows how to program a frequency we want to use.
Add 4 entries for each frequency we want to add (one for each base frequency: 12000000,13000000,19200000,26000000 in our case), with multipliers/dividers to calculate the frequency for which we are adding.
Click to expand...
Click to collapse
I want to add new frequencies but I don't get it.. also, why 4 entries for a single frequency? thanks!
Someone pleaseeee?
I hope there's a video tutorial for "adding overclocking features to your kernel", I hate to admit that I can't follow the instructions carefully due to lack of English knowledge

Overclock NEW JXD Amlogic M3 Kernel

Hi,
Amlogic M3 cpu are cable to 1GHZ
The old firmwares for JXD devices has the amlogic CPU frequency set to 600MHZ.
The solution was easy, hex editing a9_clk estructure was possble overclock to 1GHZ.
But in the new firmwares for android ICS is not possible overclock, if hex edit the firmware setcpu marks 1GHZ but performance are only 800MHZ.
I search in the leaked source code but I dont found the limitation of 800MHZ.
Any help?
naxeras said:
Hi,
Amlogic M3 cpu are cable to 1GHZ
The old firmwares for JXD devices has the amlogic CPU frequency set to 600MHZ.
The solution was easy, hex editing a9_clk estructure was possble overclock to 1GHZ.
But in the new firmwares for android ICS is not possible overclock, if hex edit the firmware setcpu marks 1GHZ but performance are only 800MHZ.
I search in the leaked source code but I dont found the limitation of 800MHZ.
Any help?
Click to expand...
Click to collapse
Any with amlogic CPU?
The limitation is in the kernel, I have source code of the kernel but i not found where is the limitation to 800MHZ.
naxeras said:
Any with amlogic CPU?
The limitation is in the kernel, I have source code of the kernel but i not found where is the limitation to 800MHZ.
Click to expand...
Click to collapse
See on arch/arm/mach-meson3 directory.
Maybe exists an clock.c file that has the limitation.
On M1 kernel is at https://github.com/CML/amlogic_m1_kernel/blob/ICS/kernel/arch/arm/mach-meson/clock.c (tested on b10ref and a00ref "up from 800mhx to 1ghz")
On M3 kernel maybe is at https://github.com/madmaze/Meson-3-Kernel/blob/master/arch/arm/mach-meson3/clock.c
Because is similar architecture.
¿Where is your tablet model/manufacturer?
Regards
Yes, in meson M3, have a clock.c, but I edit static struct clk a9_clk, in the max value to 1000000, but the limitation continues to 800000.
When I edit a9_clk in the sorce code or, with HEX edit, Set CPU says are 1GHZ but performance is 800MHZ, even I have another kernels without source code, with 600MHZ limitation.
Even I use openamlogic messon 3 clock.c in the JXD source code, but the limitation continues.
For try I edit max value to 1400000 but performace are same.
Manufacturer are JXD model s5110.
Which reference board is s5110 based on? Have you checked kernel's init.rc script (the part where governor and possible min/max frequency is set)?
stane1983 said:
Which reference board is s5110 based on? Have you checked kernel's init.rc script (the part where governor and possible min/max frequency is set)?
Click to expand...
Click to collapse
How I view the reference board?
In the governor min is 300 and max is 1000 but kernel only runs at 800.
Please help.

rk3188[x7010] - Performance Tweaks, Test Journals, Learning diary, and custom ROM nV 1.03 for x7010

rk3188[x7010] - Performance Tweaks, Test Journals, Learning diary, and custom ROM nV 1.03 for x7010
First of all, I wanted to say thanks to LEOLAS of FREAKTAB for all the knowledge I've learned and also for OMA for making his roms PUBLICLY ACCESSIBLE AND FREE!!
PLEASE DO NOT COPY/PAST MY/THIS ARTICLE/POST Without Giving the right credit/Link to this post and XDA Forum too!!!!
I'm A WRITER AND I Dont like PLAGIARISM !!!
although It is fine for me if you will rewrite it in your own words
Oh I will introduce my self first, I am From the Country of [>--] Philippines, though very few developer came from our country, this is because of the LACK of INTEREST / PASSION of most of my countrymen.
I am th3f33, Pronounced as DAFFY or read as The Fee, ayt? xD The real name is Demi francisco, I am a Professional DESKTOP and Laptop Tech, and was used to be my previous work / job. Now I am currently focused on Web Developing and Programming (HTML,CSS,PHP,MySQL,JAVASCRIPT,ETC) that's why I am pretty familiar in the way the ANDROID Language goes (C+,Perl,PHyton,java Ayt?). I AM THE MAD PROGRAMMER!! lol XD (Just like hohouin kyouma).
For the sample/preview of my first cooked rom performance, Here is a YOUTUBE Video for it, stress test in HD Games.... http://www.youtube.com/watch?v=mm1ewtDljuk&feature=youtu.be
Vid is 14 minutes long, it would be better to check this first at least the first 5 minutes, and if you are interested, then you can continue to read.
So the device is:
SKYWORTH SKYPAD X7010
(quickly phased out on Skyworth MAIN Upon the release of x7011)
Full SPECS: (Stock)
Rockchip 3188 Quad Core Processore (28nm, 512kb l2 cache, 1.6ghz)
2GB Hynix DDR3 SDRAM 1600(h5tq4g8) Clocked @ 300mhz idle, 400mhz 1.2v
Hynix 8GB Internal Nand FLASH h27ucg8t2atr
Mali 400MP4 GPU @ 600mhz
Wifi and BT By mediatek (MT5931 and MT6622BT)
UP TO 64GB micro sd support
USB OTG
NTFS SUPPORT
HDMI SOCKET
7", 1280 x800 resolution
Audio is Realtek RT3261
NO GPS, No other sensor except accelerometer
Stock OS JB 4.1.1 (Ported/unperfected rom, missing libs, cannot run NBA2k13 on stock rom 4.1 due to the missing lib)
Facebook Group for my Custom Rom with Links to Download - please join my group, im CREATING an Army XD
https://www.facebook.com/groups/187854081403188/
NV v1.03 Custom rom By: Th3f33 (yey its me!~)
Features:
Rooted
Tweaked for MAXIMUM Performance for the price of a little battery timespan.
ANDROID SDK 2.0 4.2.2 (4.3) Based
Incomplete UI (Kitkat Based/Transparency), Not calibrated very well...
Internal storage(system) increased from 1GB to 2GB while internal SD decreased to 4.4gb
Anti-Aliasing x4 Unlocked on Developer Options
Comes with the CWM Recovery (Thanks again to LEOLAS!!! YOU ROCK!! HAPPY NEW YEAR)
Faster Reading And Writing Speed
Nand Flash and RAM Tweaks
GPU Tweaks!
99.7% Fully Functional and Error Free (As far as I tested, until Nov 2013, Im not sure right now, but may not have any problems updating google apps at all)
Bloatware Removed / Reduced
Added Apps:
Root Explorer
Jota+
Android Kitkat 4.4's Office
Android Kitkat 4.4's Google Launcher
Chrome
Rebooter App
PPSSPP (PSP Emulator)
Viper4Android Sound Effects
DOWNLOAD LINK IS SOMEWHERE IN THE MIDDLE of the whole article...
if there are some that i had forgot to mention, please do remind me XD
Instructions.
1.Install Adb Drivers after downloading the zip,
2.enable usb debugging or enter the bootloader mode by turning off the device, then holding both the volume button and power.
3.run the nV flasher, install drivers, if not yet in bootloader mode, reboot now by pressing the reboot on the flasher.
4.clear nandb then flash!
I AM NOT HELD RESPONSIBILITY IF IN ANY CASE YOUR DEVICE GETS BRICKED!
EXCLUSIVELY FOR Skyworth's Skypad x7010 only, but may also work on chuwi v88 [not tested]
I do provide unbricking service for a fee, but if you will read thoroughly this whole post, you will see the keywords to search for to unbrick rockchip rk30 devices!
DETAILS
I do believe that these tweaks / Performance increase / Speedup can be applied to all RK3188 devices, with the same logic / techniques can also be applied to rk3066 to maximize the performance. BUT BEWARE ON THE RAM(MEMORY) CHIP!!!!
Now here are the information on What i Modded and how to Improve the Performance
NOTE: (If the performance of my tablet on the video on youtube is the same as the performance of stock rockchip rk3188 tablets/devices, please do say it to me so that I will be able to change some Description on all of my posts across the INTERNET!! Thank you!)
so.... here is the learning diary and test journal
CHAPTER 1. Full brick at 1st week
The x7010 did not had any kind of update OTA from skyworth, and was replaced quickly by x7011. Since skyworth is a chinese company, i am not really expecting anything from them. but the sad part for me was when i bought the tablet, (About $150 converted currency) and then looked over the internet for supports such as CWM Recovery, CROM, Cyanogenmod or anything else, I FOUND NONE! Great! Not even a Copy of STOCK ROM! Which give me the idea of studying/learning the developing since i had already interested in doing so, and will also make me one of the pioneer custom developer/cooker for our device.... YEY!!... but it was not easy, IT WAS A HARSH PATH....
After my 1st week of trying, I already got a FULL BRICK ON MY DEVICE, But lucky me, im a great actor, so it ended up replaced from the store since it was still covered in the 1week replace 1 year service warranty. (I had softbricked the device by trying to flash Finless rom 1st try, then glassrom 2nd try, then i fully bricked it by flashing with no bootloader & parameter, erase nand db so that the store wont find out that it had been rooted and flashed!)
Chapter 2: Unbricking Success!
So on my 2nd chance, First thing i did was to do a ROMDUMP for backup (NO CWM YET), then I tried to create another CWM Again BUT I FAILED, Where i left it as is with no recovery but working system.... then i posted my 1st post here and in freaktab WHERE I stated that I want to learn and dont want to be spoonfed... Then after a few days, leolas tried to make the CWM!!! but I cant seem to flash it via flash_image, so I used a 1.37 rk tool, to flash the recovery, (Now i know that i messed up the partition offset of the recovery before so it doesnt really boot to recovery!). but by testing out what i understand from the forums, researched alot regarding parameter, mtd partition, the way android system boots and operates, i finally flashed the CWM Successfully on my device! so i backed up trice the device, and since i was so excited, i tried to flash a new rom again, but the excitement and an old mouse that double/triple clicks BRICKED my device by flashing it with NO PARAMETER AND BOOTLOADER, and all other are checked and the flash are already being erased.
No more bootloader mode, no more adb, not detected in PC In any way. then i found out the pin 8& 9 shorting for the nandflash unbrick method, tried it, stripped down my tablet, but i was so sleepy so it resulted in a failure. I dreamed that i will be able to revive the device by retrying it so when i woke up, the first thing i did was to do the PIN SHORTING then i plugged the usb cord, then poof,! Success! MASK ROM MODE FOUND!! then flash my romdump (Backup from cwm with tar and tar.a cannot be flashed ). Although i have one problem, the dump have the system in .tar and i need a .img, so once again, GOOGLE! kept on searching till i stumbled on a forum where an instruction of how to make a System.img flashable from update.zip. Using a Linux mint VM then plus learning basic syntax of linux, got it working ! .
Chapter 3 - BRAVERY!
This scenario made me think that NOTHING CAN STOP ME NOW! since it was the most difficult part for me, especially the unbricking part. so ill make it a little bit short, i flashed many roms, and recorded the differences for every rom,(ALL ROM ARE FOR RK3188, m9, u8gt,mk908, t428, glassrom, m9, etc), some rom displays, some don't, some boots, some doesn't. I also learned to logcat, read logcats, read and debug using dmesg. the rom that had been most compatible for my device is the chuwi rom v88 by oma (Yeah it rocks!) with working wifi, bluetooth, and everything else except for 3 problems, Inverted Camera, Accelerometer not working and NO SOUND! NO AUDIO! WAAAAA but was able to use it still, and checked the performance. run some benchmarks, played some games, although no sound, it was fine, with a few random lagging.... still, i continued to study it and modifying.
Next part was the System UI - framework.res and baksmaling and modfying apks, mostly for the User interface, and those were pretty easy since you can use the TRIAL AND ERROR Technique!. I have already the idea for the configs in build.prop, and just did some trial and error. By doing all of this, continuously, i am learning different syntax & commands too using adb and terminal emulator. so in the end, i maximized the performance of the rom, without touching the kernel. But i still notices the lag, one scenario is this, Fresh boot, Playing NBA2k14, then by some reason, after the camera zoom, the game slows down or get a little lag, about 22 - 28 fps, in order to get back to the max fps gaming, sometime i touch the notification area, sometime pause - resume. and when i am on max fps on any game, then accidentally touched the home / recent button, when i return to the app, it gets so lag! and when playing simultaneous game, it gets really lag.
Start the tweaking
I know this symptom, Applying my knowledge & experience in desktops. I had declared to myself that THIS IS THE EFFECT OF A BOTTLENECK! (Unbalanced specs & performance) or Memory bus width too low therefore bandwidth limits the overall performance so i checked the OC of the device, then found out that it was not overclockable thru software.
Google is my friend, and found out that i need to compile my own kernel that enables the Clock adjustment of the device to exceed the 1.6ghz. I was too naive that I Underestimated RK3188's Power. my initial goal was to OC the CPU itself, but after googling hours and hours, asking my mentor on how to compile a kernel, looking for sources which was the same for our device, eventually i found none xD, then, I stumbled upon.... OVERCLOCKOMATIC / Patchomatic!! a linux app that enables patching kernel's clock settings. And i found out that it can patch ram / gpu / cpu!
Since i was An Experienced Overlclocker (Overclocking on desktop, e5400 (2.7ghz Raised to 3.15ghz), On AIR / STOCK FAN + Exhaust & intake circulation). First i did was a hand made heat spreader (To make this, you need an aluminum foil, fold it into three, with the width of about 1-1.5 inch, then cover most of it with any tape except for the part that will be connected to the target(my target is the cpu), and the other end for the receiver/outer/safe place to transfer heat.) first, my target is my procie and spread it through the sd card slot, and another one from the procie to the aluminum case on the wifi & bt (it was covered!) i moved the 1st end from the sdcard slot to the back cover later on when i realized that i might damage the sd card or the socket itself .
Then I tweaked it and tweaked it for days, checked stability, compared results.
our kernel is 3.0.36 compiled on ubuntu! Yey! at first i was running the device on 1.8ghz, then later on i reverted it back to 1.6ghz, due to heat issues that may damage the device with prolonged use and to save battery spantime too.
But not everything is about the clockspeed, especially when i checked the GPU CLOCK IS ALREADY MAXED, So what would be the cure or solution for the bottleneck....
of course, the logics of tweaking a processor or ram or gpu are the same for the desktop. SO HERE ARE THE MOST IMPORTANT THINGS THAT I LEARNED AND WILL SHARE FOR EVERYONE EVEN IF THEY ALREADY KNEW IT OR HAD IT ON THEIR DEVICE ALREADY OR DOESNT hAVE A CLUE!
Chapter 5: OVERCLOCKING? the correct term to it for me was clock correcting / clock tweaking.
This is the EXACT modification of the kernel clock and stepping on both cpu & gpu and ram on my kernel which IS INCLUDED IN MY CROM Where everyone in our country(philippines) with x7010 tried and was satisfied of the great improvement of performance. and last week, some russian had already visited our facebook group and was testing my rom already . they also shared some roms of their own, although i think they are ported too.
nV 1.03 [first Edition] by th3f33 Download Link:
http://bagongpleion.net/th3f33/nv103.rar
RAM
modifying the RAM (2g DDR3 sdram 1600mhz) to be run @800mhz like a ddr2 instead of the stock @400mhz like ddr1 thus increasing the bandwidth have a huge impact on MALI-400mp4 gpu since the Quad Core Rockchip Processor were fast enough to make up for the lost clock cycle but lacks bandwidth because of the 32 bit bus width. BEWARE! Our ram is 2gb ddr3-1600mhz, which have a normal voltage of 1.5v. Low profile sdram modules have only 1.2 / 1.3v normal running voltage. YOU WILL NEED TO MANUALLY CHECK THE SDRAM MODULES ON THE DEVICE ITSELF TO IDENTIFY What type of ram it is, is it a ddr3 sdram? ddr2? a low profile? and clock timings? Ive used google to fully identify my hynix ram specs and even tried running the RAM @ 800mhz 1.5v and no restarting / corruption issues! it just that it drains the battery really fast. for our device, the exact and sufficient Voltage for the ram to perform well @ 800mhz is around 1.3v - 1.35v although im using 1.3v only. THIS IS NOT APPLICABLE TO ALL RAM and WILL REQUIRE MOST OF THE ATTENTION, EFFORT AND TIME TO APPLY CORRECTLY AND SAFELY!
I cannot guarantee your life or you freedom !
Some Info on ram: Lower clock speed of ram have faster clock cycle (on default clocks of actual ram sticks) Higher Clock Speed of ram have slower clock cycle BUT Bigger Bandwidth.
Low Profile RAMS Uses less energy(VOLTAGE), expect a slight decrease in overall performance....
Some Rams have lower clock cycle and latency in their stock settings compared to other. This are the high profile / OC'ed version of rams..
Anonymous asked: "Why did you use ddr800 against ddr400 config for our ram?"
RK3188 is a quad core processor with 512kb (L2 cache per core i believe) running @ 1.6ghz which are ULTRA FAST and can be compared to an AMD athlon Mobile processor ! it was so fast that before that RAM Cycles to refresh, all the data have been stored in the ram had been processed already, so there was really no need for the quick cycle, PLUS The GPU Is an Onboard/SOC/bundled along with the CPU (like intel's I series and AMD A Series). Now They will need a Bigger bandwidth so the power of the cpu can be utilized more since more data (RAM IS 2gb, can store a lot of data! Really...) can be passed as the bandwidth is higher. therfore GPU have a wider data path for transferring the rendered graphics data to the cpu to process then pass back to the GPU or ram, dpending on situation, without clogging up the I/O Path.
Short Answer: Faster GPU and Read/Write speed at no cost (aside from a little energy drain for the increased voltage of ram, since the cpu can handle that load!)
Chapter 6: Cpu and GPU
CPU
Kernel patched, using rkpatchomatic / overclockomatic! (linux)
I also reduced the Clock stepping and adjust the voltage of the cpu from:
312mhz @ .9v
504mhz @ .925v
816mhz @ 1v
1008mhz @ 1.075v
1200mhz @ 1.150v
1416mhz @ 1.250v
1608mhz @ 1.350v (this may not be right, if i am not mistaken it was only 1.3v @ 1.6ghz on stock)
(6steppings)
to
504mhz @ 1v
1008mhz @ 1.115v
1416mhz @ 1.250v
1608mhz @ 1.350v
(4steppings)
AND the GPU speed increase by loading the driver module with:
insmod /system/lib/modules/mali.ko (removed mali_dvfs & mali_init_clock=133)
and also changing the GPU voltage and stepping FROM:
133mhz @ .975v
200mhz @ 1v
266mhz @ 1.025v
300mhz @ 1.050v
400mhz @ 1.100v
600mhz @ 1.250v
(6 Steppings)
To
200mhz @ 1.05v
400mhz @ 1.15v
533mhz @ 1.2v
600mhz @ 1.35v /1.3v
(4 steppings)
OR
266mhz @ 1.05v
400mhz @ 1.175v
600mhz @ 1.35v
(3 steppings)
The Steppings Reductions Resulted in a VERY VERY Fast Application Switching (Not using a multiwin rom, but able to run about 6-7 HD games with seemingly no lags on switching). BUT Additional battery power may be consumed because of higher idle values for each settings.
My theory, explanation, and strategy was.....
GPU & CPU Steppings logic are the same, while for the GPU the clock increases, so as their texture and pixel fillrate. But gpu power may not be nough @ 1.25v during heavy loads, that is why i've used the maximum allowed voltage for the gpu, and adjust most of the voltages so that the system will never be short on current especially when switching state.
Wanderer asked: "why did you reduced the steppings and what exactly is that?"
Stepping is the term I used for the clock settings / stop point, It came from intel, they use Speedstep and steppings. as you can see, Most of the time, when not playing hd games or not running so many many apps, The cpu (based on my new config) will either run fine at 500mhz, - 1ghz only. (large bandwidth maximizes the power of the quad core of rockchip). so it wont need to adjust itself to 1.4ghz unless it really needs it, and it will not revert back to 500mhz unless all apps and memory are cleared and closed. (Even if you press the recent apps, it will stay @ 1ghz and will not drop to 500mhz). When running a solo HD game, except for 2013 Q4 HD games like CoD & GTA SA, cpu will be fine @ 1ghz, when running other apps, like browser, music player, etc etc, it will be kept in memory, and the cpu will have to speed up itself so it will be stable @ 1.4ghz, when running multiple hd games, it will run @ max 1.6ghz.
The stepping settings helped the cpu to be STABLE @ certain clock during prolonged usage.
Plus, rk3188 is not a very good at clock switching / stepping adjustment. Some users of rk3188 uses a cpu tweaker and set their clock permanently to 1.6ghz right? but it consumes battery faster. I tried different numbers of steppings and clock config and this was the best result for performance. Well in reality, if you are going to overclock a desktop processor, you will disable the speedstep or clock switching feature because it consume power and energy. imagine that the processor needs to consistently monitor the cpu load and adjust it according to its needs. even a human will have a delay of a few seconds during the adjustment and calibration of the strength, the same logic applies to the processors too, plus if you will add the stress of the switching of the GPU, bugs and lags are generated, sometimes, it takes quite a while for the gpu to adjust its clock, from 133, to 200, then lags a little, adjust cpu, then gpu from 200 - 400, then suddenly you pressed the home button while playing, gpu reverts back to 133mhz which is far from the max, ew, where in my config, you start at 233, making everything seems to be so smooooooth, even if you enable AAx4 in the developer options you wouldnt notice the impact of it in performance, then you can disable hw overlay and enable gpu rendering too to maximize performance! if you want to save battery, then choose the 4 steppings on gpu, if you are a hardcore gamer on tablet, then use the 3 steppings on gpu, if you want more, replace the 400mhz config in the 3steppings with the 533 from the 4steppings.
STORAGE
I have Also increased the Speed if reading / writing in the nand flash by mounting mtd partitions with:
ro noatime nodiratime noauto_da_alloc data=writeback barrier=0 nobh
TIP {
instead of using an app to mount the android folder in external sd, you can use a terminal emulator, then this command to mount the folder from exterlan sd - internal, so you can play more games! (Note: please do create the /Android/data and /Android/obb on both internal and external SD
$ su mount -o bind /mnt/external_sd/Android /mnt/sdcard/Android
or
# mount -o bind /mnt/external_sd/Android /mnt/sdcard/Android
to remove the mount/bind
$su umount /mnt/sdcard/Android
or
# umount /mnt/sdcard/Android
The mount / bind is not permanent though, and you will need to enter the command every restart of the device.
}
end of message...
Elp Psy Congroo
XDA:DevDB Information
nV v1.03 [1st revision], a ROM for the Android General
Contributors
th3f33, th3f33
ROM OS Version: 4.2.x Jelly Bean
ROM Kernel: Linux 3.0.x
ROM Firmware Required: ANY x7010 firmware / softbricked
Based On: AOSP
Version Information
Status: Stable
Current Stable Version: v1.03
Stable Release Date: 2013-11-14
Current Beta Version: v1.00
Beta Release Date: 2013-09-09
Created 2014-01-07
Last Updated 2014-01-07
Reserved
ROM Screenshots, And Benchmarks:
Passmark Results:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Antutu:
Rom:
Reserved
about:
if there are any question, or criticism, or bugs, or anything else, feel free to post, i will entertain anyone :good:
th3f33 said:
if there are any question, or criticism, or bugs, or anything else, feel free to post, i will entertain anyone :good:
Click to expand...
Click to collapse
can you provide a version that have a default Android icon on the NavBar? [Back][Home][Switch]
Hey TH3F33! Its me Patrick! Hehehehe, nice you're already starting to spread your name and our tab, I hope this becomes successful and well known, will always have your support!
Edit: They really should make a forum for our tab.
Sent from my XT890 using Tapatalk
samplermonhar said:
can you provide a version that have a default Android icon on the NavBar? [Back][Home][Switch]
Click to expand...
Click to collapse
Yes, maybe I will do that maybe tomorrow, I just have to finish another task from my work.
The nV 1.04 will be Philippine themed
re
Jabbzz said:
Hey TH3F33! Its me Patrick! Hehehehe, nice you're already starting to spread your name and our tab, I hope this becomes successful and well known, will always have your support!
Edit: They really should make a forum for our tab.
Sent from my XT890 using Tapatalk
Click to expand...
Click to collapse
Tnx
I was already creating our own forum, just be patient, its a virtue. :good:
Why are you using xt890 ? Lol
th3f33 said:
Tnx
I was already creating our own forum, just be patient, its a virtue. :good:
Why are you using xt890 ? Lol
Click to expand...
Click to collapse
No I mean a category here in XDA..hehehe..
XT890 is my smartphone, the one I use for texting, blah2. Motorola RAZR i
Sent from my XT890 using Tapatalk
Jabbzz said:
No I mean a category here in XDA..hehehe..
XT890 is my smartphone, the one I use for texting, blah2. Motorola RAZR i
Sent from my XT890 using Tapatalk
Click to expand...
Click to collapse
we alreay got a place, check facebook group -.-
Looks like only a few skyworth users visits xda....
Sent from my x7010 using Tapatalk
Wait a moment, is there a 4.3 rockchip rom? The blobs it is using are from 4.2?
Edit: sorry, I just saw this: ANDROID SDK 2.0 4.2.2 (4.3) Based
jsevi83 said:
Wait a moment, is there a 4.3 rockchip rom? The blobs it is using are from 4.2?
Edit: sorry, I just saw this: ANDROID SDK 2.0 4.2.2 (4.3) Based
Click to expand...
Click to collapse
yep it is a 4.2.2 based on 4.3
two thumbs way up for you kabayan! I'm no coder, but I love to read and tweak usually consolidating tweaks/scripts for my myPhone Vortex.
Good thing its a fairly popular phone in India, else I would have been stuck with the stock rom.
I'm curious if your rom can be applied to the recently released tablet from Starmobile : Engage 8 quad+
It sports the same processor as your Skyworth but with 1G of RAM only, 8G internal. Been looking around and I've read through
the list of roms you've tried (PIPO, M9, GLASS) and its a good thing I found your thread. I would have risked to root and flash
my tablet with any of those roms.
I'm currently reading on rooting my tablet using this method below, however I'm now hesitant to proceed. Would you have another method that
would work? or at least give me a little more confidence of root success. Thereafter, its CWM, then flashing time! woot
http://www.slatedroid.com/topic/88850-rooting-rk3188-tablets/
btw, I've found the manufacturer of this tablet, guess Engage 8 is a rebrand of this unit.
http://www.google.com.ph/url?q=http...Q4BrZw&usg=AFQjCNEsT9Dux2uMCLEZykSB5umoY8nyOQ

Categories

Resources