La réponse se trouve dans la source du noyau de ce HTC Wildfire - regardez dans arch/arm/mach-msm/acpuclock.c
pour voir le tableau des fréquences acceptées. Comme le WildFire est basé sur le chipset MSM-7x25, voici l'extrait de la table des fréquences codées en dur, en supposant qu'il s'agit d'un téléphone GSM :
/* 7x01/7x25 normal with GSM capable modem */
static struct clkctl_acpu_speed pll0_245_pll1_768_pll2_1056[] = {
{ 0, 19200, ACPU_PLL_TCXO, 0, 0, 19200, 0, 0, 30720 },
{ 1, 122880, ACPU_PLL_0, 4, 1, 61440, 1, 3, 61440 },
{ 0, 128000, ACPU_PLL_1, 1, 5, 64000, 1, 3, 61440 },
{ 0, 176000, ACPU_PLL_2, 2, 5, 88000, 1, 3, 61440 },
{ 1, 245760, ACPU_PLL_0, 4, 0, 81920, 2, 4, 61440 },
{ 1, 256000, ACPU_PLL_1, 1, 2, 128000, 1, 5, 128000 },
{ 0, 352000, ACPU_PLL_2, 2, 2, 88000, 3, 5, 128000 },
{ 1, 384000, ACPU_PLL_1, 1, 1, 128000, 2, 6, 128000 },
{ 1, 528000, ACPU_PLL_2, 2, 1, 132000, 3, 7, 128000 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0}, {0, 0, 0} }
};
- La première colonne indique que la fréquence peut être mise à l'échelle, si elle comporte un 1, la fréquence du chipset peut être augmentée ou diminuée, pensez à augmenter la puissance du CPU lorsqu'une application gourmande en processeur est en cours d'exécution. et cela est fait par le noyau dynamiquement dans les limites d'un seuil de sécurité sans brûler le chipset. - veuillez noter : C'est seulement pour le noyau à utiliser, plus loin dans la réponse, qui montre la table d'overclocking, qui est la responsabilité de l'utilisateur final - pas le noyau !!!!!!.
- Deuxième colonne, la fréquence normale en KHz telle qu'elle est dictée par ce que je pense être appelé la
a11
horloge (quelque part dans les entrailles du chipset lui-même)
- Troisième colonne, je ne sais pas exactement, mais elle est spécifiquement liée au chipset lui-même.
- Quatrième colonne, le sélecteur utilisé pour le réglage de la fréquence normale
- Cinquième colonne, le diviseur utilisé pour le réglage de la fréquence normale
- Sixième colonne, la fréquence d'overclocking en KHz
- Septième colonne, le sélecteur de fréquence d'overclocking
- Huitième colonne, le diviseur utilisé pour le réglage de la fréquence d'overclocking.
- Neuvième colonne, je ne suis pas sûr non plus de ce que cela signifie.
Il y a en fait 12 champs utilisés, les champs restants sont remplis au démarrage du noyau, ajoutant peut-être des protections et s'assurant que les valeurs conservées ne sont pas explicitement remplacées, un "gate-keeper" si vous voulez, lisez la suite...
Plus loin dans la source, il y a généralement un surcadençage conservateur des fréquences (le common MSM-7x 01 / 25 / 27 ) le supporte), encore une fois la même disposition que les "valeurs conservatrices" comme souligné ci-dessus, remarquez que chacune des fréquences peut être augmentée ou diminuée pour chaque fréquence d'overclocking. C'est ainsi que SetCPU peut ajuster ces valeurs puisqu'il y a un 1 dans la première colonne.
#ifndef CONFIG_MSM_CPU_FREQ_OVERCLOCK_AHB
/* Conservative AHB overclocking */
{ 0, 403200, ACPU_PLL_2, 2, 2, 134400, 2, 5, 122880 },
{ 1, 480000, ACPU_PLL_0, 4, 1, 160000, 2, 6, 122880 },
{ 1, 595200, ACPU_PLL_2, 2, 1, 198400, 2, 7, 122880 },
{ 1, 604800, ACPU_PLL_2, 2, 1, 201600, 2, 7, 200000 },
{ 1, 614400, ACPU_PLL_0, 4, 0, 204800, 2, 7, 200000 },
{ 1, 633600, ACPU_PLL_0, 4, 0, 211200, 2, 7, 200000 },
{ 1, 652800, ACPU_PLL_0, 4, 0, 217600, 2, 7, 200000 },
{ 1, 672000, ACPU_PLL_0, 4, 0, 224000, 2, 7, 200000 },
{ 1, 691200, ACPU_PLL_0, 4, 0, 230400, 2, 7, 200000 },
{ 1, 710400, ACPU_PLL_0, 4, 0, 236800, 2, 7, 200000 },
{ 1, 729600, ACPU_PLL_0, 4, 0, 243200, 2, 7, 200000 },
{ 1, 748800, ACPU_PLL_0, 4, 0, 249600, 2, 7, 200000 },
{ 1, 768000, ACPU_PLL_0, 4, 0, 256000, 2, 7, 200000 },
{ 1, 787200, ACPU_PLL_0, 4, 0, 262400, 2, 7, 200000 },
{ 1, 806400, ACPU_PLL_0, 4, 0, 268800, 2, 7, 200000 },
// { 1, 825600, ACPU_PLL_0, 4, 0, 275200, 2, 7, 200000 },
// { 1, 844800, ACPU_PLL_0, 4, 0, 281600, 2, 7, 200000 },
#else
/* Agressive AHB overclocking */
{ 0, 403200, ACPU_PLL_2, 2, 2, 201600, 1, 5, 200000 },
{ 1, 480000, ACPU_PLL_0, 4, 1, 240000, 1, 6, 200000 },
{ 1, 595200, ACPU_PLL_2, 2, 1, 297600, 1, 7, 200000 },
{ 1, 604800, ACPU_PLL_2, 2, 1, 302400, 1, 7, 200000 },
{ 1, 614400, ACPU_PLL_0, 4, 0, 307200, 1, 7, 200000 },
{ 1, 633600, ACPU_PLL_0, 4, 0, 316800, 1, 7, 200000 },
{ 1, 652800, ACPU_PLL_0, 4, 0, 326400, 1, 7, 200000 },
{ 1, 672000, ACPU_PLL_0, 4, 0, 336000, 1, 7, 200000 },
{ 1, 691200, ACPU_PLL_0, 4, 0, 345600, 1, 7, 200000 },
{ 1, 710400, ACPU_PLL_0, 4, 0, 355200, 1, 7, 200000 },
{ 1, 729600, ACPU_PLL_0, 4, 0, 364800, 1, 7, 200000 },
{ 1, 748800, ACPU_PLL_0, 4, 0, 374400, 1, 7, 200000 },
{ 1, 768000, ACPU_PLL_0, 4, 0, 384000, 1, 7, 200000 },
{ 1, 787200, ACPU_PLL_0, 4, 0, 393600, 1, 7, 200000 },
{ 1, 806400, ACPU_PLL_0, 4, 0, 403200, 1, 7, 200000 },
// { 1, 825600, ACPU_PLL_0, 4, 0, 412800, 1, 7, 200000 },
// { 1, 844800, ACPU_PLL_0, 4, 0, 422400, 1, 7, 200000 },
#endif /* CONFIG_MSM_CPU_FREQ_OVERCLOCK_AHB */
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0}, {0, 0, 0} }
};
Selon les consultations de la table, et selon le chipset, seul le maximum est spécifié, et est renforcé par le noyau (dans le reste des champs de l'enregistrement que le noyau lit et traite - comme mentionné ci-dessus !)
J'ai fini par créer un fichier setcpu.txt que j'ai placé à la racine de la carte SD. carte SD. Le problème est que lorsque j'avais une fréquence de 800MHz, SetCPU a toujours mais la fréquence maximale qu'il pouvait toucher était 768MHz.
C'est pourquoi vous ne pouvez jamais dépasser le maximum imposé, comme dans le cas de l'OP, pour éviter des dommages thermiques au chipset et à la fréquence d'horloge !
Les redémarrages aléatoires, les gels aléatoires, la surchauffe de la batterie plus rapide que la normale (normale comme dans le seuil réglementé de la fréquence d'horloge du CPU) sont tous des symptômes d'un chipset surcadencé.
C'est un indice révélateur lorsque quelqu'un pose des questions sur les redémarrages aléatoires mais ne dit pas que l'appareil est probablement overclocké !