Posted on March 18, 2014
First Blog and the Snapdragon 800 with a custom kernel (Really Old Post)
I often bore people to death. Mainly when I, from others point of view, waffle on about technology and science… constantly. I go in to far to much detail in those areas than any ‘normal’ person should in conversation, and that is what makes me a geek. So I thought I best try to find a way to voice my thoughts on the world of amazing technology. I’ve decided to explore the world of blogs.
Today I’ve been messing around with flashing a custom kernel for my galaxy note 3 (snapdragon 800 variant) made by Imoseyon on XDA Devlopers (http://forum.xda-developers.com/showthread.php?t=2488082). It has a custom CPU core voltage interface, display controller changeable parameters and CPU overclocking to 2.72ghz among many other features. Some quick history about me with mobile devices, I’ve had 6 android smartphones and 4 android tablets since 2010. I have rooted and experimented with custom roms, kernels. When I have more time, I even make my own custom kernels. I do this for fun. Sounds weird, I know but it’s quite fun to do research on a devices SoC (System on Chip). Then to push my SoC to the limits and explore the vast plethora of Git’s (github software) housing the numerous source codes for custom kernels. It’s just fun experimenting. To discover what voltages and clock speeds work best for your specific SoC, and doing tests for heat output and performance gain vs increase in clock speed. I’ll talk a lot more about what a lot of the terminology means in this blog post in future blogs, as they are too big of subjects to condense as part of this.
Just a little info on the snapdragon 800:
– up to 2.36 GHz
– LPDDR3 memory
– 4 KiB + 4 KiB L0 cache
– 16 KiB + 16 KiB L1 cache
– 2 MiB L2 cache
– 4K × 2K UHD video capture and playback
– Up to 21 Megapixel, stereoscopic 3D dual image – signal processor
– USB 2.0 and 3.0
– 28 nm HPm semiconductor process
– Display Controller: MDP 5, 2 RGB, 2 VIG, 2 DMA, 4k
– there are free Linux drivers Qualcomm’s Adreno GPU
– there are free Linux drivers for the Qualcomm Atheros WNICs
– LLVM supports the Qualcomm Hexagon DSP
Why even overclock the note 3, isn’t 2.3ghz on four cores enough? Especially when android is going to switch it’s runtime to ART instead of dalvik which should dramaticly increase android efficiency. (ART is something I’ll be going into detail in the future) It’s a good point, going back only 4 years android was running on the 1st 1ghz single core ARM cortex A8 SoC’s like Samsung Hummingbird or the Qualcomm Scorpion S1. That seemed insane to have a 1ghz chip…in a phone. But over time software became bigger and more advanced, and so did the need for chips to become faster to power that software. Today 2.3ghz is overkill for a phone. Not to mention it has four of those crazy 2.3ghz krait400 cores, I say again…in a phone. (*cough Phablet cough*) In addition, I have underclocked, for an experiment, it to 1.2ghz on all cores. The perceivable performance difference is almost unnoticeable. That is, it’s unnoticeable atm, but the snapdragon 800 is a brand new chip on the block and has to power a phone for 2 years for peoples contracts. So it’s overpowered now, but ask me again in 2 years. Which is where overclocking comes in.
Over-clocking doesn’t just sound awesome, it’s useful too. I’ll go more in depth later about overclocking but the basics idea of it is the process of making a computer or component operate faster than the clock frequency specified by the manufacturer, and generally involves operating at higher voltages to do so. It’s extremely important to note that overclocking, even when operating at the same voltages, will produce a lot more heat and over-volting will increase heat as well. On a passively cooled device such as a phone this is important. Furthermore your pushing the devices speed beyond what it was meant to, so it might become unstable and crash or even damage the hardware it self. It’s like when you run, you know how fast you can run but you if try, you can probably run faster, although you’ll get tired a lot quicker and you might loose balance and trip up , which doesn’t really end very well.
How’d the note do? My note 3 did pretty well. In my testing I loaded up the kernel and went straight into the voltage interface and lowered the voltages for the stock frequencies as well as the over-clocked ones, to lower heat output. Nearly all SoC’s have a little voltage overhead to ensure stability of the chip. I just removed that to run at it’s lowest stable voltages. It’s a lot more complicated than that, but the subject is too large for this post and deserves a post to itself. I lowered the lower frequencies by 25mV and then lowered the higher ones by setting a new voltage then running a stress test app which puts the CPU cores on full load until I found the voltage at which it crashed. It turns out my SoC has a overhead of about 75mV on the higher frequencies, so I could under-volt 2.3ghz from 1025mV to 950mV which will improve battery a tiny bit but more importantly it will have a reasonable positive effect in lowing the temperature of the CPU when running full load at that speed. I was also able to lower the lower CPU speeds such as 300mhz by another 25mV. I couldn’t lower any of the middle frequencies like 1ghz further before it crashed. Anyhow, I then moved on to 2.5 GHz. I managed to get it to run at 1025mv, the same as stock 2.3ghz stable. This isn’t that surprising, as the chip is pretty much just a lower binned version of the 2.5ghz s801 found in the new galaxy s5. I then moved into the dark side. As with great clock speeds come great responsibility. I slowly jumped to 2.72ghz as my heart skipped a beat. Then it happened…
It was perfectly stable at 2.72ghz. I was surprised but it was also able to run 2.72ghz at 1100mv which is a perfectly safe voltage for the chip. Not only that, heat output wasn’t too bad. I’ll explain a lot about active vs passive cooling in mobile devices in a future post. But with insane clock speed with a low voltage and reasonable heat output is all thanks to the brand spanking new 28nm HP fabrication for the chip and the fantastic micro-architecture called Krait 400. This is Qualcomm custom micro-architecture running the arm v7 ISA. It will take a few days of messing about with the overclocking speeds to fully test the performance gain and I’ll have a dedicated blog post later on detailing how my dear old note 3’s SoC is fairing. Furthermore, I’ll be making a few blog posts exploring more of the terminology I’ve used in this post.