Test TI-Nspire de développement avec thème CX + J04/JTAG
Posted: 18 Jul 2018, 15:12
Au printemps 2017, parrotgeek1 trouvait sur eBay un lot de prototypes TI-Nspire assez particuliers, acheté peu après par Brandon Wilson.
Pas de simples prototypes prêtés à des enseignants/testeurs avant la sortie, mais des machines utilisées par l'équipe de développement de Texas Instruments et ayant miraculeusement échappé à la destruction.
Cet été, le lot en question est en vacances chez nous, et nous allons donc en profiter pour lui arracher jusqu'à son dernier secret.
Aujourd'hui occupons-nous de la TI-Nspire en bas à droite sur la photo, reçue ici sans clavier.
Sommaire :
A première vue la calculatrice est d'apparence normale, à part le fait qu'elle a visiblement passé un bon moment dans un environnement fumeur vu comme le bleu de son boîtier est terne à côté du clavier que nous lui avons rajouté.
Mais sous ce clavier se cache déjà une première surprise, puisque nous notons ni plus ni moins qu'un trou dans le compartiment de piles de gauche.
Au dos est gravée la mention PROTOTYPE NOT FOR SALE.
Nous y avons également la raison de la surprise, avec une énorme ouverture. En conséquence, le patin inférieur droit ainsi que le volet du connecteur Dock/J01 sont manquants.
Le numéro de série est ici manquant puisque mangé par l'ouverture, seul le début en B-P3 ayant survécu. Par contre, un numéro de série manuscrit a été rajouté dans le cadre prévu pour mettre son nom, 2011001560.
Cette ouverture laisse apparaître la référence de la carte mère, P2/P3 ASIC MB_MP_6440, soit la même que sur les cartes mère de production. On y note également la présence du connecteur J04/JTAG, non soudé sur les modèles de production.
En conséquence la qualification de prototype, calculatrice conçue avant la sortie au matériel non final, est donc impropre. Il faudrait plutôt parler de modèle de développement, calculatrice utilisée par les ingénieurs Texas Instruments pour tester diverses choses après la sortie.
Allumons la machine. Sa barre de chargement se bloque un instant au démarrage, ce qui suggérerait qu'il y a tentative de charger une image Diags avant le Boot2 mais que cela échoue.
Le carré présent en haut à gauche de l'écran dès l'exécution du Boot1 puis pendant celle du Boot2 nous indique qu'elle fonction en mode développement. Aussi, en l'état, nous ne pourrons y exécuter que des images de développement et non de production.
Arrivé à l'écran d'accueil on note de suite l'une des caractéristiques remarquables de son OS (Operating System / système d'exploitation). En effet, cet écran utilise non pas le thème des TI-Nspire ClickPad/TouchPad, mais le nouveau thème couleur des TI-Nspire CX, ici affiché bien évidemment en 16 niveaux de gris !
Le superbe thème TI-Nspire CX sorties en version 3.0 avait donc été testé en utilisant toutes les capacités de niveaux de gris des écrans TI-Nspire ClickPad/TouchPad, avant que Texas Instruments ne lui préfère quelque chose de bien plus simple, peut-être pour des raisons de lisibilité.
Un petit tour par les écrans à propos nous apprend que nous sommes ici sur le système 3.0.0.621, intermédiaire donc entre les systèmes de production 2.1.1.38 du 17 février 2011 et 3.0.1.1753 du 24 mars 2011.
On y apprend aussi :
Mais le système 3.0.0.621 nous réserve encore d'autres surprises. Comme le système de développement TI-Nspire CX 3.0.0.1045, il dispose de l'éditeur de thème intégré puis retiré avant la sortie du système de production 3.0.1.1753 du 24 mars 2011.
Cette interface accessible par permet une double configuration (couleur et monochrome) de pas moins de 320 éléments d'interface :
On peut supposer que les ingénieurs Texas Instruments s'en sont servis pour tester rapidement en situation réelle différentes teintes d'éléments.
Même si nous regrettons la suppression de cette fonctionnalité bien sympathique, il nous faut bien avouer qu'avec une liste non hiérarchisée de 320 éléments nous étions encore bien loin d'un niveau acceptable pour un système de production.
Dans les fichiers listés via maintenant, nous remarquons deux étranges images wlan.flash d'exactement 512K, qui ne sont bien évidemment pas des documents TI-Nspire et ne peuvent être ouvertes sur la calculatrice. Il semble s'agir après récupération et ouverture sur ordinateur de deux copies identiques d'un firmware eCos pour puce Wifi Atheros AR6000/6001.
Mais que font-elles là ?
Si il est exact que les modules Wifi TI-Nspire Navigator utilisent des puces Atheros, nous n'avions jamais récupéré d'élément suggérant la possibilité de les mettre à jour depuis la calculatrice.
Après avoir branché le port Dock/J01 de la calculatrice sur une interface adéquat, on peut récupérer la sortie du port série.
Le log de démarrage nous confirme :
Par la suite on confirme le passage sur un Boot2 de développement en version 2.00 du 13 octobre 2009, plus précisément en version 2.00.DEVBUILD *DEBUG* :
Enfin on passe sur l'OS 3.0.0.621 dont on obtient la date, 4 octobre 2010 :
Enfin, ouvrons la bête pour lui extirper ses derniers secrets.
On confirme l'usage de la carte mère de production P2/P3 ASIC MB_MP_6440 ainsi que de la carte écran P1R2/P3_LB__MP_2440 qui va avec.
La présence du connecteur J04/JTAG n'est pas la seule modification apportée à la carte mère. On y note aussi l'ajout d'un fil qui permet de rendre réinscriptible la puce Flash NOR SST 39WF400A adjacente contenant le Boot1 1.1.8916 de développement.
Cette modification fut probablement nécessaire pour programmer le Boot1 1.1.8916 de développement dans la puce de cette carte mère de production.
Mais cela implique qu'il sera possible avec Ndless de la reprogrammer avec un Boot1 1.1.8916 de production, puis de mettre à jour la calculatrice avec le dernier OS 3.9.
Le firmware TI-Nspire Navigator a été récupéré par simple transfert de fichier.
L'OS 3.0.0.621 a été dumpé par envoi sur une autre machine et interception du fichier de réception temporaire via un programme Ndless.
Cet OS ne règle pas de version minimale d'OS installable, aussi nous avons pu installer l'OS 1.1.9227 puis Ndless, et dumper le Boot2 2.0.0.DEVBUILD *DEBUG*.
La partition Diags a également été dumpée par la même occasion et elle contient bien quelque chose, un logiciel de diagnostics 1.1.0 spécial où tout se passe sur la console série avec un shell U-Boot 1.1.2.
Il est toutefois signé avec les clés de production, et c'est pour cela que le Boot1 1.1.8916 de développement de cette machine ne voulait pas le lancer.
Mais nous pouvons le programmer et lancer sur un modèle de production, ou bien sur émulateur :
Tous les éléments récupérés ainsi que ceux nécessaires à leur utilisation sont disponibles ci-après.
Pas de simples prototypes prêtés à des enseignants/testeurs avant la sortie, mais des machines utilisées par l'équipe de développement de Texas Instruments et ayant miraculeusement échappé à la destruction.
Cet été, le lot en question est en vacances chez nous, et nous allons donc en profiter pour lui arracher jusqu'à son dernier secret.
Aujourd'hui occupons-nous de la TI-Nspire en bas à droite sur la photo, reçue ici sans clavier.
Sommaire :
1) Exploration visuelle :Go to top
A première vue la calculatrice est d'apparence normale, à part le fait qu'elle a visiblement passé un bon moment dans un environnement fumeur vu comme le bleu de son boîtier est terne à côté du clavier que nous lui avons rajouté.
Mais sous ce clavier se cache déjà une première surprise, puisque nous notons ni plus ni moins qu'un trou dans le compartiment de piles de gauche.
Au dos est gravée la mention PROTOTYPE NOT FOR SALE.
Nous y avons également la raison de la surprise, avec une énorme ouverture. En conséquence, le patin inférieur droit ainsi que le volet du connecteur Dock/J01 sont manquants.
Le numéro de série est ici manquant puisque mangé par l'ouverture, seul le début en B-P3 ayant survécu. Par contre, un numéro de série manuscrit a été rajouté dans le cadre prévu pour mettre son nom, 2011001560.
Cette ouverture laisse apparaître la référence de la carte mère, P2/P3 ASIC MB_MP_6440, soit la même que sur les cartes mère de production. On y note également la présence du connecteur J04/JTAG, non soudé sur les modèles de production.
En conséquence la qualification de prototype, calculatrice conçue avant la sortie au matériel non final, est donc impropre. Il faudrait plutôt parler de modèle de développement, calculatrice utilisée par les ingénieurs Texas Instruments pour tester diverses choses après la sortie.
2) Exploration logicielle :Go to top
Allumons la machine. Sa barre de chargement se bloque un instant au démarrage, ce qui suggérerait qu'il y a tentative de charger une image Diags avant le Boot2 mais que cela échoue.
Le carré présent en haut à gauche de l'écran dès l'exécution du Boot1 puis pendant celle du Boot2 nous indique qu'elle fonction en mode développement. Aussi, en l'état, nous ne pourrons y exécuter que des images de développement et non de production.
Arrivé à l'écran d'accueil on note de suite l'une des caractéristiques remarquables de son OS (Operating System / système d'exploitation). En effet, cet écran utilise non pas le thème des TI-Nspire ClickPad/TouchPad, mais le nouveau thème couleur des TI-Nspire CX, ici affiché bien évidemment en 16 niveaux de gris !
Le superbe thème TI-Nspire CX sorties en version 3.0 avait donc été testé en utilisant toutes les capacités de niveaux de gris des écrans TI-Nspire ClickPad/TouchPad, avant que Texas Instruments ne lui préfère quelque chose de bien plus simple, peut-être pour des raisons de lisibilité.
Un petit tour par les écrans à propos nous apprend que nous sommes ici sur le système 3.0.0.621, intermédiaire donc entre les systèmes de production 2.1.1.38 du 17 février 2011 et 3.0.1.1753 du 24 mars 2011.
On y apprend aussi :
- l'utilisation du Boot1 1.1.8916, ici donc en version de développement
- l'utilisation du Boot2 2.0.0, intermédiaire donc entre les versions de production 1.4.1571 du 3 mars 2008 et 3.0.1.131 du 23 février 2011.
Une très belle trouvaille que ce Boot2 2.0.0, puisqu'il tombe pendant la longue période où aucune nouvelle version n'est sortie !
Mais le système 3.0.0.621 nous réserve encore d'autres surprises. Comme le système de développement TI-Nspire CX 3.0.0.1045, il dispose de l'éditeur de thème intégré puis retiré avant la sortie du système de production 3.0.1.1753 du 24 mars 2011.
Cette interface accessible par permet une double configuration (couleur et monochrome) de pas moins de 320 éléments d'interface :
On peut supposer que les ingénieurs Texas Instruments s'en sont servis pour tester rapidement en situation réelle différentes teintes d'éléments.
Même si nous regrettons la suppression de cette fonctionnalité bien sympathique, il nous faut bien avouer qu'avec une liste non hiérarchisée de 320 éléments nous étions encore bien loin d'un niveau acceptable pour un système de production.
Dans les fichiers listés via maintenant, nous remarquons deux étranges images wlan.flash d'exactement 512K, qui ne sont bien évidemment pas des documents TI-Nspire et ne peuvent être ouvertes sur la calculatrice. Il semble s'agir après récupération et ouverture sur ordinateur de deux copies identiques d'un firmware eCos pour puce Wifi Atheros AR6000/6001.
Mais que font-elles là ?
Si il est exact que les modules Wifi TI-Nspire Navigator utilisent des puces Atheros, nous n'avions jamais récupéré d'élément suggérant la possibilité de les mettre à jour depuis la calculatrice.
3) Exploration série :Go to top
Après avoir branché le port Dock/J01 de la calculatrice sur une interface adéquat, on peut récupérer la sortie du port série.
Le log de démarrage nous confirme :
- l'utilisation d'un Boot1 1.1.8916 en mode développement
- la tentative de chargement d'un logiciel de diagnostics qui échoue
Boot Loader Stage 1 (1.1.8916)
Build: 2007/4/23, 23:29:51
Copyright (c) 2006, 2007 Texas Instruments Incorporated
Using developer keys
Last boot progress: 34
Clocks: CPU = 90MHz AHB = 45MHz APB = 22MHz
Available system memory: 37292
Checking for NAND: NAND Flash ID: ST Micro NAND256R3A
SDRAM memory test: Pass
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Boot option: Normal
Loading DIAGS software...
20%Error reading/validating DIAGS image
Error loading DIAGS. Switching to BOOT2.
Loading BOOT2 software...
99%
BOOT1: loading complete (203 ticks), launching image.
Par la suite on confirme le passage sur un Boot2 de développement en version 2.00 du 13 octobre 2009, plus précisément en version 2.00.DEVBUILD *DEBUG* :
Boot Loader Stage 2 (2.00.DEVBUILD *DEBUG*)
Build: 2009/10/13, 17:0:33
Copyright (c) 2006, 2007, 2008 Texas Instruments Incorporated
Using developer keys
Clocks: CPU = 90MHz AHB = 45MHz APB = 22MHz
Checking for NAND: NAND Flash ID: ST Micro NAND256R3A
Initializing graphics subsystem.
Boot option: Normal
Initializing filesystem.
Datalight Reliance v2.10.1150
Copyright (c) 2003-2006 Datalight, Inc.
Datalight FlashFX Pro v3.00 Build 1358
Nucleus Edition for ARM9
Copyright (c) 1993-2006 Datalight, Inc.
Patents: US#5860082, US#6260156.
Filesystem ready.
Purging temporary files...
Loading Operating System...
100%
BOOT2: loading complete (2127 ticks), launching image.
Enfin on passe sur l'OS 3.0.0.621 dont on obtient la date, 4 octobre 2010 :
Beginning system initialization.
Clocks: CPU = 120 MHz AHB = 60 MHz APB = 30 MHz
Preparing file system. This takes a while...
POSIX layer initialized.
POSIX "NULL" device initialized.
POSIX "CONSOLE" device initialized.
Datalight Reliance v2.10.1150
Copyright (c) 2003-2006 Datalight, Inc.
Datalight FlashFX Pro v3.00 Build 1358
Nucleus Edition for ARM9
Copyright (c) 1993-2006 Datalight, Inc.
Patents: US#5860082, US#6260156.
POSIX file system initialized.
File system ready.
* P3 mode battery door detection
System build date: Oct 4 2010, 02:24:33
Available memory: 15651468 bytes
Purging temporary files...
Launching system...
Created Execution Context
NavNet Ready.
BOOT2 updater: error -2
4) Exploration matérielle :Go to top
Enfin, ouvrons la bête pour lui extirper ses derniers secrets.
On confirme l'usage de la carte mère de production P2/P3 ASIC MB_MP_6440 ainsi que de la carte écran P1R2/P3_LB__MP_2440 qui va avec.
La présence du connecteur J04/JTAG n'est pas la seule modification apportée à la carte mère. On y note aussi l'ajout d'un fil qui permet de rendre réinscriptible la puce Flash NOR SST 39WF400A adjacente contenant le Boot1 1.1.8916 de développement.
Cette modification fut probablement nécessaire pour programmer le Boot1 1.1.8916 de développement dans la puce de cette carte mère de production.
Mais cela implique qu'il sera possible avec Ndless de la reprogrammer avec un Boot1 1.1.8916 de production, puis de mettre à jour la calculatrice avec le dernier OS 3.9.
5) Dumping :Go to top
Le firmware TI-Nspire Navigator a été récupéré par simple transfert de fichier.
L'OS 3.0.0.621 a été dumpé par envoi sur une autre machine et interception du fichier de réception temporaire via un programme Ndless.
Cet OS ne règle pas de version minimale d'OS installable, aussi nous avons pu installer l'OS 1.1.9227 puis Ndless, et dumper le Boot2 2.0.0.DEVBUILD *DEBUG*.
La partition Diags a également été dumpée par la même occasion et elle contient bien quelque chose, un logiciel de diagnostics 1.1.0 spécial où tout se passe sur la console série avec un shell U-Boot 1.1.2.
Il est toutefois signé avec les clés de production, et c'est pour cela que le Boot1 1.1.8916 de développement de cette machine ne voulait pas le lancer.
Mais nous pouvons le programmer et lancer sur un modèle de production, ou bien sur émulateur :
Boot Loader Stage 1 (1.1.8916)
Build: 2007/4/23, 23:37:16
Copyright (c) 2006, 2007 Texas Instruments Incorporated
Using production keys
Last boot progress: 0
Clocks: CPU = 90MHz AHB = 45MHz APB = 22MHz
Available system memory: 37292
Checking for NAND: NAND Flash ID: ST Micro NAND256R3A
PM is turning the device OFF
PM has turned the device ON
SDRAM memory test: Pass
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Boot option: Normal
Read of bootdata failed
Loading DIAGS software...
96%
BOOT1: loading complete (62 ticks), launching image.
U-Boot 1.1.2 (Feb 2 2007 - 19:48:46)
U-Boot code: 11800000 -> 1182DC2C BSS: -> 1183246C
RAM Configuration:
Bank #0: 10000000 32 MB
Flash: 0 kB
NAND:32 MB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
Starting Phoenix diagnostics...
Phoenix ASIC# help
? - alias for 'help'
autoscr - run script from memory
base - print or set address offset
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
dhcp - invoke DHCP client to obtain IP/boot params
echo - echo args to console
erase - erase FLASH memory
flinfo - print FLASH memory information
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
imls - list all images found in flash
itest - return true/false on integer compare
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nand - NAND sub-system
nboot - boot from NAND device
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
sleep - delay execution for some time
tftpboot- boot image via network using TFTP protocol
tidiag - perform Phoenix board diagnostics
version - print monitor version
Phoenix ASIC# version
U-Boot 1.1.2 (Feb 2 2007 - 19:48:46)
Phoenix ASIC#
Tous les éléments récupérés ainsi que ceux nécessaires à leur utilisation sont disponibles ci-après.
Téléchargements :
- OS de développement 3.0.0.621 (nécessite un Boot2 1.4+ de développement, ou un Boot2 1.4+ de production avec le certificat de développement adéquat)
- Boot2 de développement 2.0.0.DEVBUILD *DEBUG* (nécessite un Boot1 de développement)
- Boot2 de production 1.4.1571 (nécessite un Boot1 de production)
- Boot1 de développement 1.1.9170
- Diags de production 1.1.0 avec U-Boot 1.1.2 (nécessite un Boot1 de production)
- Firmware TI-Nspire Navigator eCos / Atheros AR6000/6001