Page 1 sur 1

Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 14:52
de critor
9783La nouvelle HP Prime en révision matérielle D est sortie pour la rentrée 2018, mais n'est pas encore disponible dans tous les pays et en passant toujours pas en France.
Surnommée HP Prime G2, la machine succède aux révisions matérielles A à C et fait un véritable bond technologique en passant :
  • d'un processeur ARM9/ARMv5 comme sur les TI-Nspire à un processeur i.MX 6ULL de chez NXP, un Cortex/ARMv7 comme chez NumWorks mais cadencé ici à 528 MHz ! :bj:
  • de 32Mio comme sur les TI-Nspire monochromes à 256Mio de SDRAM, et en DDR3 cette fois-ci ! :bj:
  • de 256Mio de mémoire Flash-NAND à 512Mio ! :bj:

Sur les HP Prime G1, Lionel Debroux avait développé le tout premier firmware non officiel.

jean-baptiste boric s'était remarquablement illustré en prenant la suite avec :

Mais suite au changement de processeur, tout ce qui avait été développé en langage machine et donc notamment ces firmwares tiers, ne fonctionne plus. :'(

Tout est donc à recommencer intégralement.

Une des méthodes qui a rendu possibles des tests qui ont à leur tour permis de tels développements sur les HP Prime G1, c'est la prise de contrôle du processeur via son interface JTAG.

Une piste pour trouver le JTAG était de chercher sur la carte électronique un groupe d'au moins 5 points de tests, à identifier par la suite en :
  • TCK
  • TDI
  • TDO
  • TMS
  • TRST ou/et RESET (peuvent partager le même point de test)
  • VCC (alimentation - peut être partagée avec d'autres choses que le JTAG, et donc éloignée des points de test précédents)
  • GND (masse - peut être partagée avec d'autres choses que le JTAG, et donc éloignée des points de test précédents)
  • RTCK (optionnel)

9785Problème sur HP Prime G2, la carte électronique ne présente apparemment rien de tel...

Notons que les HP Prime G1 identifiaient clairement deux points de tests pour une communication série (UART), points que l'on ne retrouve pas non plus ici.

Mais jean-baptiste boric ne se décourage pas pour autant, et a eu l'idée de décoller l'écran de l'autre face de la carte, révélant ainsi plein de points de tests supplémentaires, ici clairement identifiés. Ceux qui nous intéressent ici sont préfixés en JT_, mais sont plus dispersés cette fois-ci :
  • JT_TCK
  • JT_MOD
  • JT_TMS
  • JT_TDI
  • JT_TDO
  • JT_NTRST
On retrouve également les deux points de test du port série UART avec :
  • UART1_RX
  • UART1_TX
Notons aussi des points de test permettant apparemment le rajout d'un lecteur de carte mémoire SD comme sur les HP 49G+ et HP 50G :
  • SD1_DATA0
  • SD1_DATA1
  • SD1_DATA2
  • SD1_DATA3
  • SD1_CMD
  • SD1_CLK
C'est bien sympa de la part de HP de nous avoir ici identifié clairement les points de test qui nous intéressent.
Mais inversement, les avoir cette fois-ci cachés au dos et collé l'écran par-dessus les rend inaccessibles au commun des mortels ainsi qu'à nombre de bricoleurs du dimanche.

Laissons de côté la carte mémoire SD pour le moment, car même si elle est gérée matériellement il faudrait encore le code logiciel pour pouvoir l'exploiter, ce qui ne serait pas raisonnable pour de premières tentatives d'injection de code non officiel.

L'UART est quant à lui resté jusqu'à présent muet comme une carpe malgré les tentatives de jean-baptiste boric.

Par contre, la connexion via une interface JTAG FTDI MPSSE et OpenOCD est bien plus bavarde : :bj:
boricj@debian-boricj:~$ openocd -f Documents/hp-prime/G2/c232hm.cfg -f Documents/hp-prime/G2/imx6ull.cfg
Open On-Chip Debugger 0.9.0 (2018-01-21-13:43)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 100 kHz
Warn : imx6.sdma: nonstandard IR value
adapter speed: 1000 kHz
Info : clock speed 1000 kHz
Info : JTAG tap: imx6.dap tap/device found: 0x5ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x5)
Info : TAP imx6.sdma does not have IDCODE
Info : JTAG tap: imx6.sjc tap/device found: 0x088c101d (mfg: 0x00e, part: 0x88c1, ver: 0x0)
Info : imx6.cpu.0: hardware has 6 breakpoints, 4 watchpoints
Info : accepting 'gdb' connection on tcp/3333
Info : ttbcr 0ttbr0 900009ttbr1 4a3d30f0
Info : imx6.cpu.0 rev 5, partnum c07, arch f, variant 0, implementor 41
Info : number of cache level 2
Error: cache l2 present :not supported
Info : imx6.cpu.0 cluster 0 core 0 multi core
target state: halted
target halted in Thumb state due to debug-request, current mode: System
cpsr: 0x200000ff pc: 0x8035afd8
MMU: enabled, D-Cache: enabled, I-Cache: enabled


Le processeur est maintenant entièrement à nos ordres, et voici déjà jean-baptiste boric en train de jouer via les commandes ci-dessous avec la partie censée être la plus sécurisée de la machine, les diodes du mode examen : ;)
  • diode rouge :
    • allumer : set GPIO1_DR[7] = 0
    • éteindre : set GPIO1_DR[7] = 1
  • diode verte :
    • allumer : set GPIO1_DR[2] = 0
    • éteindre : set GPIO1_DR[2] = 1
  • diode bleue :
    • allumer : set GPIO1_DR[9] = 0
    • éteindre : set GPIO1_DR[9] = 1


Téléchargement : configuration JTAG OpenOCD HP Prime G2
Source : viewtopic.php?f=69&t=22127#p238167

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 15:32
de Adriweb
critor a écrit:Le processeur est maintenant entièrement à nos ordres, et voici déjà jean-baptiste boric en train de jouer via les commandes ci-dessous avec la partie censée être la plus sécurisée de la machine, les diodes du mode examen


Je sais bien que bidouiller en JTAG est puissant (et pas pratique/discret/portable ni à la portée de tout le monde, au contraire), mais je me permet de citer "pour rappel" Tim Wessman de HP, au sujet de la sécurité des HP Prime (G2), au cas où il viendrait des idées tordues à quelqu'un en voyant cette partie de la news ^^ (je doute que JB Boric bidouille le mode examen, je parle en général)

Tim Wessman, HP a écrit:It is not locked down and is just used for verification at this time. Note however, we DO have the ability to fully encrypt and lock the system to hell as that is part of the new chip. We DO have that tested and working. We WILL turn it on if needed. It IS a corporate security mandate (after things like firmware being loaded into mice/keyboard or printers to hack networks came to light) that we fought to get an exemption for.

(source)

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 15:38
de critor
Oui enfin bon, là pour prendre le contrôle du processeur et donc des diodes examen il faut ouvrir la machine, débrancher et décoller l'écran sans rien casser, souder sans rien casser, acheter des trucs, rebrancher l'écran, arriver à dissimuler les trucs dans le boîtier déjà très mince puisque les modules externes sont interdits aux examens...

Bref, tout ce que les lycéens dans une écrasante majorité ne feront pas.

Il y a bien plus simple sur HP Prime pour ceux qui en 2019 voudraient conserver leurs données en mode examen.

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 15:40
de Adriweb
Clairement.

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 17:25
de jean-baptiste boric
critor a écrit:de 32Mio comme sur les TI-Nspire monochromes à 512Mio de SDRAM, et en DDR3 cette fois-ci !

De mémoire, la HP Prime G2 a 256 MiB de DRAM, pas 512 MiB.

critor a écrit:Oui enfin bon, là pour prendre le contrôle du processeur et donc des diodes examen il faut ouvrir la machine, débrancher et décoller l'écran sans rien casser, souder sans rien casser, acheter des trucs, rebrancher l'écran, arriver à dissimuler les trucs dans le boîtier déjà très mince puisque les modules externes sont interdits aux examens...

Rien n'empêche d'enlever toutes les soudures et de remonter la calculette une fois patchée, pour peu que la calculette ait survécu à un traitement aussi brutal. Mais soyons sérieux, quelqu'un qui a les compétences, les moyens et le temps libre pour tenter une telle manipulation a son sens des priorités complètement à la ramasse s'il décide de tricher de cette manière :'D

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 17:50
de critor
Merci.

En passant ça me fait penser; le changement de processeur sur Nspire c'est je crois à peu près la seule chose qui n'a pas encore été tentée par TI pour bloquer Ndless...
Faudrait pas qu'ils s'inspirent de la HP Prime G2. ;)

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 17:55
de Adriweb
Oh ben si c'est pour en fin de compte avoir un processeur plus puissant et/ou mieux doté en fonctionnalités, pourquoi pas hein, de toute façon Vogtinator finira par trouver un moyen j'imagine :D

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 17:57
de jean-baptiste boric
critor a écrit:En passant ça me fait penser; le changement de processeur sur Nspire c'est je crois à peu près la seule chose qui n'a pas encore été tentée par TI pour bloquer Ndless...
Faudrait pas qu'ils s'inspirent de la HP Prime G2. ;)

Texas Instruments qui utiliserait un SoC standard dans leurs calculettes au lieu d'en concevoir un propriétaire? Ils sont peut-être désespérés, mais pas à ce point là :troll:

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 04 Jan 2019, 18:04
de critor
Adriweb a écrit:Oh ben si c'est pour en fin de compte avoir un processeur plus puissant et/ou mieux doté en fonctionnalités, pourquoi pas hein, de toute façon Vogtinator finira par trouver un moyen j'imagine :D


Certes, mais comme ici sur HP Prime il faudrait adapter et/ou recompiler tous les programmes Ndless.

Or nous n'en avons déjà même pas été capables lors du changement d'écran avec les TI-Nspire CX CR4.

Et les raisons qu'il y a derrière sont à ma connaissance toujours d'actualité; le public qui codait des programmes Ndless passe à autre chose et ne se renouvelle pas ou peu.

Re: Contrôle total HP Prime G2 via JTAG

Message non luPosté: 08 Juin 2022, 20:24
de s0cr4t3
Bonjour,

Pas de nouvelle... Personne a essayé de manipuler la PRIME avec la JTAG depuis ces dernières années?