Hello guys, here I am giving you a detailed tutorial for Overclocking devices that comes with NAND and having only PLL2 support.
Although this guide is written for HTC Explorer, the method can also be applied on similar devices.
So, before we begin you should understand the difference between OCing with PLL4 and OCing with PLL2.
XDA user @rootdefyxt320 has written an excellent post that tells the exact difference between PLL4 OC and PLL2 OC. I am quoting it:
PLL2 overclock can be compared to FSB overclocking in computers i.e locked multiplier overclocking in the BIOS. FSB overclocking involves overclocking of the PC buses such as the Memory Bus, PCI/ PCI-Express bus and AGP buses (older computers) and the CPU. It works out by XXXXMHz multiplied by X multiplier and that will give the CPU speed. PLL2 overclock does the same thing because PLL2 controls the bus speeds (exists in the SOC). It overclocks the memory buses, SOC clock, internal storage (database IO) speed and of course the CPU. It works out by XX multiplied by 19/2 and that gives the CPU speed. That's why PLL2 on 800MHz is faster in performance than PLL4 on 800MHz . Therefore that's the reason why people complain of burnt NANDs on HTC Explorer and Motorola Defy Mini XT320/321.
PLL4 overclock can be compared to unlocked multiplier overclocking where you adjust the multiplier in the BIOS and it will automatically adjust the clock speed depending on the multiplier of the CPU. Therefore this only overclocks the CPU. PLL4 overclock only overclocks the CPU and NOT the buses so it can go at much higher frequencies than PLL2 overclock. PLL4 overclock does NOT adjust bus speeds so therefore it is much safer to overclock and it doesn't burn out your SOC.
The partitions in NAND that are affected by OC are /data and /cache. This is because only these two partitons are mounted with RW access. As I mentioned above the increased Write access during OC is what causing the blocks to corrupt. All other partitions including /misc, /devlog, /boot, /system and /recovery are mounted as Read-Only and therefore are not affected.
The Workaround for this dilemma is to disable both /data and /cache partitions ( By disable, I mean not even mounting them ) in NAND and use a portion of your SDcard to act as /data and /cache. This is what we are going to do.
The procedure consists of four parts. They are listed below:
- Preparing The SDcard
- Kernel Level Changes
- Setting Up RamDisk
- Removing Memory Increasing Script
Detailed description of each part is given below:
PART 1 : Preparing The SDcard
********YOU MUST USE CLASS 10 OR ATLEAST CLASS 6 SDCARD WITH MINIMUM 8GB CAPACITY*******
CLASS 4 and CLASS 2 SDcards will definitely cause slow responsiveness because /data/data is on SDcard. Furthermore these SDcards can't handle OC at high frequencies and will die out quickly.
SO PROCEED ONLY IF YOU ARE HAVING CLASS 6 OR CLASS 10 SDCARD. YOU CAN TRY CLASS 4 SDCARD BUT YOU CAN'T OVERCLOCK ABOVE A CERTAIN LIMIT AND NO GUARANTEE ABOUT HOW LONG THE CARD WILL LAST.
We are going to create two EXT4 partitions ( First one for replacing /data and second one for replacing /cache in NAND ) on the SDcard, in addition to the normal FAT32 partition.
Using MiniTool Partition Wizard, create two EXT4 partitions as shown in following figure:
For SD-DATA, you can give whatever size you want. This where the user applications are installed.
For SD-CACHE, around 65MB is enough.
You should keep the order in which partitions are created. Partition Type for both SD-DATA and SD-CACHE should be Primary.
Assuming you have successfully prepared SDcard, lets go the second part:
PART 2 : Kernel Level Changes
First, you need to replace arch/arm/mach-msm/acpuclock-7201 with this one: https://dl.dropboxusercontent.com/u/...puclock-7201.c
This contains the overclocked frequencies and logic to dynamically calculate PLL2 values according to different frequencies.
When you look through the overclocked frequencies, you can see I have disabled 900MHz. This is because Class 4 SDcards can't handle data rate at this frequency. Those who have Class 10 SDcards can enable and try whether it is stable for them.
**** DO NOT OC GPU. ITS FAKE AND ACTUALLY DEGRADES PERFORMANCE. REVERT GPU OC IF YOU HAVE ENABLED IT ****
Next, you need to edit the configuration file ( pico_defconfig in my case ) and enable the following option. Its disabled by default so you have to enable it:
PART 3 : Setting Up RamDisk
Since, we are not using /data and /cache in NAND anymore, the changes must be made in RamDisk.
All modifications are performed on init.rc file.
Open init.rc and perform the following modifications:
1. Find the following line:
mount yaffs2 mtd@userdata /data nosuid nodev
# Mount SD-DATA wait /dev/block/mmcblk0p2 wait /dev/block/mmcblk0p2 wait /dev/block/mmcblk0p2 wait /dev/block/mmcblk0p2 mount ext4 /dev/block/mmcblk0p2 /data nosuid nodev noatime nodiratime barrier=0 data=ordered commit=15 noauto_da_alloc nouser_xattr errors=continue
mount yaffs2 mtd@cache /cache nosuid nodev
# Mount SD-CACHE wait /dev/block/mmcblk0p3 wait /dev/block/mmcblk0p3 wait /dev/block/mmcblk0p3 wait /dev/block/mmcblk0p3 mount ext4 /dev/block/mmcblk0p3 /cache nosuid nodev noatime nodiratime barrier=0 data=ordered commit=15 noauto_da_alloc nouser_xattr errors=continue
Add the following lines after the line: mount ext4 /dev/block/mmcblk0p3 /cache nosuid nodev noatime nodiratime barrier=0 data=ordered commit=15 noauto_da_alloc nouser_xattr errors=continue
# SDcard read speed boost write /sys/block/mmcblk0/bdi/read_ahead_kb 2048
PART 4 : Removing Memory Increasing Script
*** This is very important. You should remove any memory increasing script that you were using. Because /data partition is now on SDcard, using memory increasing script will cause conflict and makes ROM unbootable. ***
That's all, now you can flash your favourite ROM with the new OCed boot image and enjoy overclocking.
NOTE: A new Recovery must be made to support the new /SD-CACHE partition.