Projet Programmer processeur amd/intel via JTAG

Electronique numérique / Circuits logiques programmables EPLD, CPLD, FPGA d'Altera ou de Xilinx VHDL, Verilog ou SystemC

Modérateur : Modérateur

starostise
NOUVEAU
NOUVEAU
Messages : 4
Inscription : 27 mars 2006 22:24

Projet Programmer processeur amd/intel via JTAG

Message par starostise »

Salut à tous

Je suis overclockeur, en classe de terminale S et tres peu de connaissances en electronique vu le programme de l'enseignement général :(.
Les processeurs AMD avaient des coefficients débloqués jusqu'à la fin de l'année 2003 ce qui permettait de monter la frequence du processeur avec la ram synchronisée au FSB. On a pu alors débloquer les coeff en fesant un pinmod, une modification totalement hardware donc.

Avec les athlon 64 plusieurs problemes sont apparus, les coefficients sont bloqués uniquement vers le haut et l'apparition de ce qu'on appelle le coldbug fait qu'à des temperatures tres basses (dans les negatives)le FSB de monte plus comme on le voit sur cette courbe faite avec mon processeur (un amd athlon 64 3700+):

Image
(pour avoir -20° au processeur j'utilise un refroidissement à changement de phase avec un compresseur de congelo ou de frigo)

J'aimerai donc débloquer mon processeur, un athlon 64 3700+, et d'autres, frequence de 11*200=2200MHz, 1mo de mémoire cache, tension de 1.4v par defaut que j'ai reussi à monter à cette frequence avec un simple ventirad proco à environ 40°:
Image

donc avec ce probleme on voit bien qu'on ne peut plus augmenter la frequence du processeur à basse temperature et on peut aussi se retrouver facilement limité par le chipset de la carte mere si celui ci ne monte pas haut en FSB (ce n'est pas mon cas car je peux monter à un fsb au dela de 400MHz)

La solution est alors de trouver un moyen de débloquer les coefficient des a64 vers le haut pour pouvoir monter la frequence du processeur avec un FSB plus bas.

En faisant des recherches je me suis appercu que le deblocage de la meme facon que les athlon xp, en faisant un pont etait impossible.
J'ai alors regardé les datasheet des a64 dispo sur le site de amd et j'ai remarqué que les procos avaient des pins destinés à une interface jtag.
J'ai fait un dump des registres (MSR) d'un athlon FX57 (coeff débloqués) et comparé avec celui de mon Athlon 64 3700+ (coeff 11 max). J'en ai conclu que le coeff max etait directement programmé dans le processeur. Je connais exactement quels registres il faut reprogrammer.

Je travaille en parallele avec un Ukrainien qui m'a fourni les schémas de deux cables qui lui ont permi de reconnaitre et lire l'ID de tous les proco (A64, S64, pentium):

http://membres.lycos.fr/starostise/Unlo ... _tag_1.JPG
http://membres.lycos.fr/starostise/Unlo ... _tag_2.JPG


Suite à cela il reste plusieurs question:

- Pouvez vous me faire un listing complet des composants (avec references exactes si possible) que j'aurais besoin pour construire ces deux cables?
- Quelle est la différence entre ces deux cables (l'un à un uC et l'autre non)? quelles seront les différences lorsque je vais commencer à programmer?
- Pour le schema du cable avec uC, faudra-t-il programmer l'uC (ici il s'agit d'un DIP20)? > http://www.portalsimberos.com/el-portal ... GGLER1.htm
- Que me conseillez vous pour programmer les processeurs? quel os, quel softwares (gratuits ou payants)? de quelle façon?
- il semble (mais pas certain) que les registres des cpu soit en read only, comment changer en read-write si c'etait le cas?

merci de m'avoir lu et de bien vouloir de donner un coup de main :)
Dernière modification par starostise le 28 mars 2006 4:45, modifié 1 fois.
JP
Administrateur
Administrateur
Messages : 2328
Inscription : 23 sept. 2003 19:14
Localisation : Strasbourg
Contact :

Message par JP »

Salut,

Waou :ouch:
- Pouvez vous me faire un listing complet des composants (avec references exactes si possible) que j'aurais besoin pour construire ces deux cables?
Je te fais ca un peu plus tard, si ça t'intéresse toujours après avoir lu la suite ...
- Quelle est la différence entre ces deux cables (l'un à un uC et l'autre non)? quelles seront les différences lorsque je vais commencer à programmer?
Il a différentes variantes en fonction du logiciel utilisé, de la technologie du 74xx244, des adaptions faitent par chacun etc
- Pour le schema du cable avec uC, faudra-t-il programmer l'uC (ici il s'agit d'un DIP20)? >
Ce n'est pas un µC, c'est juste un simple buffer. Rien à programmer.
- Que me conseillez vous pour programmer les processeurs? quel os, quel softwares (gratuits ou payants)? de quelle façon?
Le JTAG Wiggler gère les AMD K7, les Intel Xcale mais pour les a64 je n'ai rien trouvé. Tu peux peut être directement demander à l'auteur
- il semble (mais pas certain) que les registres des cpu soit en read only, comment changer en read-write si c'etait le cas?
Normalement, les registres en lecture seule ne peuvent pas être modifié (logique), la mémoire est protégée vu qu'une utilisation normale ne necessite pas de les modifier. Soit AMD fait une manip que seul eux connaissent pour fixer le coef apres avoir testé la fréquence "max" d'utilisation (si ca se fait encore avant de lui attribuer sa fréquence définitive) ou alors ces registres sont programmés dans une mémoire qui ne peut être programmée qu'une seule fois (cf antifuse)
Dans les deux cas :pendu:

a+
JP
Ca clignote !!!!
starostise
NOUVEAU
NOUVEAU
Messages : 4
Inscription : 27 mars 2006 22:24

Message par starostise »

merci de ta reponse JP.

concernant l'µC ça m'enleve le doute car du monde m'a dit qu'il s'agissait d'un microcontroleur.

le cable wiggler a permi à un ukrainien avec qui je fais des recherches dessus de reconnaitre l'ID de son athlon 64, son sempron 64 et d'un vieux pentium mais apres pour ce qui est d'ecrire dans les registres c'est autre chose.

Enfait meme si les registres sont en lecture seule, il existe certains processeurs qui ont été débloqués sur un coup de chance, comment? on en a aucune idée, soit c'est jusqu'à un coeff supérieur (ex: de 4 et 15), soit c'est tous les coeffs (de 4 à 25) comme sur l'athlon FX ce qui laisse esperer qu'il doit quand meme y avoir un moyen de les modifier.

Donc j'ai bien l'intension d'aller le plus loin possible dans ce projet un peu fou il est vrai :shock:
JP
Administrateur
Administrateur
Messages : 2328
Inscription : 23 sept. 2003 19:14
Localisation : Strasbourg
Contact :

Message par JP »

le cable wiggler a permi à un ukrainien avec qui je fais des recherches dessus de reconnaitre l'ID de son athlon 64, son sempron 64 et d'un vieux pentium mais apres pour ce qui est d'ecrire dans les registres c'est autre chose.

C'est exactement ça, l'identification est une première étape standard à tous les µP/µC qui permet de déterminer facilement si la connexion est bonne. Rien de spécial n'est requit, il suffit d'envoyer une commande standard d'identification et le proc s'identifie. Ensuite pour communiquer avec lui, ca commence à se compliquer, il faut l'adresse du registre qui t'intéresse et lui envoyer les commandes adéquates pour le modifier. Alors si en plus le registre est en lecture seule c'est mission quasi impossible.
Enfait meme si les registres sont en lecture seule, il existe certains processeurs qui ont été débloqués sur un coup de chance, comment?
Un coup de chance ca m'étonnerait. A mon avis le plus simple est d'essayer de contacter les personnes qui l'ont fait et leur demander plus de détails.

Donc pour les programmateurs :
JTAG 1 (xilinx):
- DB25 male (pour brancher sur le port parallèle)
2x 74hc125
les résistances commencent par Rxx suivit de la valeur
ex : R14 100
résistance de 100 ohms
Suffit de les compter.
Idem pour les condensateurs.
ex C2 100pF
condensateur de 100pf
Diode 1N5817

JTAG 2 (Wiegler)
- DB25 male
- 74AC244
- 74LCX244
Comme avant pour les résistances et les condensateurs. Il n'y a pas de valeurs pour R9 et R10.
-VTX , il n'y a pas de ref. En transistor logique avec résistance de base intégrée tu as le BCR119
Ca clignote !!!!
Avatar de l’utilisateur
vincevg
ACCRO
ACCRO
Messages : 803
Inscription : 05 mars 2005 16:58
Localisation : SMalville
Contact :

Message par vincevg »

En fait les 2 câble sont des JTAG le 1 de lattice/vantis et l'autre de xilinx. Ils sont au départ fait pour programmer des compsants PAL ou PLD des ces marques mais ont peut tout à fait les utiliser pour programmer d'autre composants et notamments des µc et µp. Pour le reste je suis incompétent.
Vince
http://anyedit.free.fr/
http://electropol.free.fr/

Les amis, ça va, ça vient, mais les ennemis, ça s’accumule.
starostise
NOUVEAU
NOUVEAU
Messages : 4
Inscription : 27 mars 2006 22:24

Message par starostise »

merci, je vais me procurer tout ça.

j'ai contacté les personne qui se sont retrouvée avec leur proco débloqué et c'etait effectivement par un coup de chance:

le premier a eu son 3000+ avec les coeff débloqués, avec le dump de son registre (que je possede) on voit que la valeur pour le coeff dans le registre ne correspond à aucune des valeur valeur standart que j'ai vérifié avec le FX57.
Celui-ci avait déposé son proco sur un tapis de souris pendant deux semaine, il etait avant bloqué puis en le reessayant il s'est rendu compte qu'il etait débloqué.

Un autre à décapsulé son processeur, un opteron 146 (socket 939) et à endommagé un condensateur et s'es retrouvé avec des coeff superieurs à 10.
on a essayé cette technique en retirant exactement le meme condensateur, le processeur est mort

à chaque fois c'est vraiment des coups de chance

j'ai trouvé le debbuguer d'arium compatible avec les derniers processeurs pentium 4 et les amd64, ce debugguer pourrait-il me permettre de faire quelque chose avec un des deux cables jtag? ou seulement est-il prevu pour fonctionner avec leur ECM50 (http://www.logic.nl/arium_intel_itp.asp) ?
starostise
NOUVEAU
NOUVEAU
Messages : 4
Inscription : 27 mars 2006 22:24

Message par starostise »

j'ai une autre petite question:

est-il possible (si on arrive à ecrire les registres) de réparer un cpu mort si celui si n'est pas physiquement endommagé si l'interface jtag n'a pas été atteinte?
Répondre