Open Sourcing, nueBattery2 For TP2 CDMA, v1.2 Build 122

by no2chem 20. September 2009 21:15

I’ve made the decision to publish / “open source” my clock tools for non-commercial use, with the hope that this will help with development. I’ll probably start a Wiki with whatever information I’ve gathered so far – though you’ll have to wait until I clean up my code and write up a licensing agreement.

I also finished nueBattery2 for the TP2 CDMA, apologies for the delay. To the comments about testing, the problem with sending you a test version is that it would be difficult for testers to give the relevant feedback, and the bug was a data abort due to an unsigned load where it should have been signed. Anyway, note that the TP2 battery driver doesn’t have automatic current reduction anymore, but has a different temperature where the alarm resets at. I haven’t had any problems with temperature yet, so maybe you shouldn’t need to play with the temperature settings.

Download link is below:
v1.2, Cabinet File (.cab) | 67.27 KB | 6448 downloads
Click here for other and older versions.

Tags:

nueBattery2 for Touch Pro 2 CDMA status

by no2chem 19. September 2009 10:30

I think I’ve compiled nueBattery2 correctly with all the features of the Touch Pro version –but I won’t be able to test it later tonight. There were more changes to the battery driver in the TP2 than I originally anticipated. Just wanted to give everyone an update on the status.

Tags:

Some updates, Touch Pro 2 Stuff

by no2chem 17. September 2009 14:25

On Overclocking
I still haven’t been able to identify how to control the PLL properly. I need to look into Linux/Android code, where they apparently have the Kaiser running at 528MHz just fine. Again, once I figure this out, the tool will be updated.

On The Touch Pro 2
I got the Touch Pro 2 from Sprint, finally – and can begin working on it. I’ll have a version of the battery driver with FastCharge, Temperature Override and 1% soon, I’ve already disassembled/reassembled it, it’s just awaiting my patches. I’ll probably post a review soon, but the best part of this phone is the screen. If you haven’t seen one, go and look at one. I’d say some of the major cons are the price (on Sprint), the missing tab button and the lack of a flashlight. It is definitely faster according to my reference benchmarks on stock. This will be my target device for a CE6/CE7 BSP as well now.

On Spam
I’ve taken a number of measures to try to reduce the amount of spam incoming on the blog, but BlogEngine seems to have an insane amount of old JavaScript that messes up ASP.NET AJAX extensions. I’ve added a simple captcha, but it seems that isn’t actually stopping the spammers. They must be manually entering it or using some kind of OCR – kind of weird since it is a custom implementation. Either way, I plan on adding code that would require one-time e-mail verification if you enter a website, which should finally fix the problem…. I hope.

Tags:

Why we can’t do ~600MHz yet

by no2chem 10. September 2009 22:46

Ever since the release of nueOverClockTest, I’ve got several inquiries on “why can’t there be a 600MHz setting? It would probably be much more stable”. Well, the short answer is – I haven’t found how to get to that setting yet. Since Qualcomm would rather keep information about it’s coveted MSM line a secret, I basically have to guess how to get things to work.

I’ve figured out my problem with changing the “L-Value” of BackPll0/1 – I need to change it when it isn’t selected as the ARM11 SubSystem’s core clock. However, it’s still pretty unstable, and a value of 0x5 makes the device slow as heck. What’s even more perplexing is the default value, which seems to be 0x7. If that is multiplied against the 19.2 MHz TCXO clock, we get something like 134 MHz. Perhaps I’m looking at the wrong place, or I got the meaning of the registers wrong.

I’ve found the registers that control the voltage exactly, not just levels 0-7, but writing to them seems to have no effect. It seems that I don’t understand the PMIC well enough yet to get complete control over it.

I’m still evaluating our options to figure out what’s best, but its starting to lean more and more towards figuring out how to get the ARM9 to execute code for us without hacking the radio rom.

Anyways, this raises a question that’s been on the back of my head for awhile now – why the heck does Qualcomm think it’s necessary to keep all information on the MSM chipsets confidential? I doubt its because they’re afraid the competition is going to steal all their secrets, because I doubt the documentation HTC engineers use could help a competitor of Qualcomm in any real way… Making the documentation public would probably get more developers on the device, increasing their sales volume… Alas, I fail to understand Qualcomm… Perhaps I should send them an e-mail asking for information.

Regarding 0.4, there’s nothing yet to show in a version 0.4, so relax, calm down, when I have something to show you, it’ll come out in version 0.4.

Tags:

Yet more notes on overclocking

by no2chem 8. September 2009 20:59

So, I’ve got a lot of feedback on nueOverClockTest, which is actually more mixed than I expected. Here’s a brief summary of the results:

1) Both GSM and CDMA users are capable, to some degree, of running their device at 768MHz.
2) Some users cannot run at the higher speed at all, while others can run on AC and Battery just fine.
3) Stability varies heavily from user to user. Some people report that their device crashes after 1 minute, others claim they can run at 768MHz all day (and run intensive apps such as CorePlayer).

So what does this all mean? Let’s break down exactly what we’re doing here. The MSM7xxx series, as much as we love or hate it is a pretty complicated in terms of clocks, as it needs to maintain accurate, low jitter clocks for cell radio, USB, TV out, I2C, the two processors, memory, etc – all on one chip. The MSM comes with several clock sources:

Sleep Crystal: 32.576 kHz, used for sleep circuit when TCXO is disabled

TCXO (Temperature Controlled Crystal Oscillator): A very accurate 19.2MHz signal that is required for radio communications (Apparently,  dividing this by about 16 gives you ~ the 1.25 MHz baseband channel frequency for CDMA).

USB Crystal: a 48MHz crystal used to meet USB standards for jitter.

Now, thats not actually very many frequencies to work with, so how do we generate the 528MHz required for the A11 at regular (stock) operating speed? The MSM7500 comes with four PLLs to generate these:

PLL0: a FPLL (Frequency and Phase Locked Loop), this generates the frequency used for the Modem (ARM9), which if I’m correct, is 294 MHz.

PLL1: a DPLL (Digital Phase Locked Loop), this is the “global PLL”. A lot of frequencies are generated from this PLL by division, and it runs at 768MHz.

PLL2: a DPLL, “Backup PLL 0”, which is used for the MSM7xxA processors when they are at 528MHz. It appears to run at 1.056 GHz.

PLL3: a DPLL, “Backup PLL 1”, which appears to be unused.

All these PLLs source their signals from the 19.2MHz TCXO, probably because its nicely accurate and temperature compensated.

So what does nueOverClockTest do? It simply sets the primary clock for the applications arm (ARM11) to PLL1 / 1, instead of the default PLL2 / 2. (And no, there are no non-integer dividers, probably because it would result in really bad jitter) Now why would this work on some devices but not others? Let’s explore several theories:

Die Quality: It might just be that the dies of some processors are higher quality than other processors, making them capable of running at higher frequencies than others, much as in your traditional CPU. After all, we are running the ARM11 at 45% higher than it’s rated speed, so quality control only rejected dies that could not run at 528 MHz.

AHB/AHI/AXI bus stability: Some people may have noted that running applications such as Manila may cause crashes. This is because the graphics core runs at a different frequency than the ARM11 core, so a sudden drastic change in frequency might not make the intercommunications bus very happy and cause the device to crash.

Radio Version: As much as it seems to not be related, contrary to common belief, the Radio actually controls a lot of the setup and initial configuration of the device, including controlling voltage levels and PLL settings. This might explain why some radios seem to work better than others (different AMSS versions).

Insufficient Voltage: Perhaps the voltage regulators are a little inaccurate, and the devices that are working are pushing a higher voltage than the devices that aren’t working.

So what have I done to approach the problem?

1) I’ve tried to see if I can adjust the output value of PLL2. It appears that a clock control register under the control of the ARM9, DCPLL1_L_VAL_REG, controls what the output frequency of PLL2 is. It appears to be a multiple the TCXO 19.2MHz clock – the default value is 0x7, and when I set it to 0x1, the device operates as if it is running at 19.2MHz. 0x2 – 0x6 causes crashes. Another option here is to try using PLL3, which is unused, to generate a custom frequency.

2) I’ve tried to adjust voltage regulators. The device has eight (0-7) power levels, which are set by the ARM9. There is a configuration register, VDD_APC_PLEVEL*, which controls the actual output of each level, which in turn is set by the PMIC. The ARM11 can request one of the levels, and the ARM9 in turn requests a level from the PMIC. I’ve tried increasing the voltage defined in this register, but it seems to not help at all with stability.

3) There is a clock divider for the AHB that is separate from the ARM11 frequency. I’ve tried increasing the divider from the default of 0x4 to 0x5, with no real increase in stability.

So that’s what I’ve done so far – and hopefully that gives you a better picture of the task at hand =). I’m working hard on trying to lower the frequency a bit so its stable for more people, and to make it work for everyone, be patient!

Tags:

More notes on overclocking

by no2chem 7. September 2009 19:39

Many people are reporting that their devices freeze when running the test. This is probably because you are running a GSM device.

Please be sure to note whether you are using a GSM or CDMA device when you leave feedback – I tested on a CDMA device (MSM7501A).

I’m trying to see if theres a way to get the mARM (radio) to lower the PLL.

note: I don’t know about other people, but I was able to run coreplayer benchmark, sktools benchmark, etc without crashing.

Tags:

nueOverClockTest

by no2chem 7. September 2009 16:38

If you downloaded the previous version, please try the updated version, there was a bug in the old version due to optimizations being turned on.

nueOverClockTest is a simple utility to test how your device overclocks – its just a test version, so the usual disclaimers apply. I’ll note these things so far:

(1) MSM72xx devices do not overclock well. Usual behavior is auto-restart, or lockup.
(2) Overclock seems to be stable on AC, but not stable on battery. Seems to be PMIC related, so I’ll have to work on a way to get that working.
(3) Might be possible to pull one of the backup PLLs down a bit, so I’ll have to look into that
(4) This is nowhere near a final version, expect more configuration options etc.

I was deciding whether to make this a donator only release, but I’ve decided against it for now, seeing as it seems really popular and I’ve been getting a bit of inquiries about it. However, nueOverClockTest is donationware, so please, please consider donating if you like the work you are seeing and want to see it worked on more.. I have to somehow allocate money between buying a TP2, paying hospital bills, rent and other expenses so any donation would be really appreciated.

v1.3, Cabinet File (.cab) | 79.60 KB | 9032 downloads
Click here for other and older versions.

Tags:

Touch Pro running at 800MHZ???

by no2chem 6. September 2009 22:58

Screen01 I swear it’s working, really, see screen shot attached… Short story – I knew that the number of clocks on MSM devices are limited (Actually, that’s a pretty relative Screen02term – the MSM has a LOT of clocks for a single chip), the main problem is that there isn’t that much resolution with the clocks, and that there aren’t that many high clocks to choose from – in fact if you look at the clocks available on MSM devices, we have:

TCXO: 19.2 MHz (for CDMA clock)
GlobalPLL: 800MHz
BackPLL0: ? MHz
BackPLL1: 1.056GHz
PLLTest: ? MHz
USB: 48MHz
Sleep: ? MHz



So the standard frequencies for the MSM are obtained by BackPLL1 / 2= 528MHz or GlobalPLL / 2 = 400 (384) MHz.

But just a few minutes ago, a lightbulb lit up in my head, why not just TRY setting GlobalPLL / 1 for the applications ARM? … And to my surprise, the device didn’t freeze.. it worked just fine actually. And there is a noticeable improvement in speed ( ~ 330 integer @ 528 MHz , ~456 integer @ 768 MHz).

I guess this’ll be finalized into a tool for some sort. Guess overclocking this thing was possible =p.


Note: Before I get a bunch of stuff about 1.056 GHz, no, it didn’t work on my Touch Pro, it locked up!

Tags:

nueBacklight v1.1 Build 101

by no2chem 4. September 2009 02:28

Okay, the problem is now fixed – it seems to be isolated to when power is unplugged to the device. Anyways, I recommend that you update to version 101 immediately below if you downloaded version 100 earlier. Sorry for any inconvenience – now I can sleep =). 

v1.1, Cabinet File (.cab) | 44.17 KB | 883 downloads
Click here for other and older versions.

Tags:

on nueBacklight

by no2chem 4. September 2009 02:18

… I was lying in bed, getting ready to get some sleep when my phone appeared to crash. I traced the problem to a misinterpreted jumptable and will be updating nueBacklight shortly….

Tags:

Disclaimer
Windows Mobile is a registered trademark of Microsoft Corporation in the United States and other countries.

Wei Enterprises is not affiliated in any way with Microsoft, HTC, Sprint, or any other wireless carrier/phone manufacturer otherwise mentioned on this site.

Copyright 2010 2009 Wei Enterprises