Page 1 sur 1

Découverte logiciel diagnostics TI-Phoenix 1

Message non luPosté: 04 Mar 2013, 18:43
de critor
Et pour fêter la rentrée (ou le début des vacances, c'est selon), on se retrouve en direct ce soir du labo de Critor pour une découverte extraordinaire! :D


Dans une news précédente, nous réussissions enfin à dumper les Boot1 et Boot2 du plus vieux prototype TI-Nspire actuellement connu, le TI-Phoenix 1 P1-EVT1 de janvier 2006! :bj:

Sa prise mini-USB était visiblement non fonctionnelle. Mais ce prototype disposait en lieu et place des Boot1 habituels de TI, d'un chargeur U-Boot fort répondu dans les univers Linux et embarqué.

Il nous a donc 'suffi' d'activer le menu de démarrage de U-Boot. :bj:
2175




Dans une news précédente, nous découvrions puis lancions le tout premier logiciel de diagnostics TI-Nspire CAS+ sur un prototype TI-Nspire+ P1-EVT2.
Nous confirmions par là-même la combinaison permettant de lancer ce logiciel sur ces prototypes: :nsclp: :nses: :nsg:
1652


Le logiciel était toutefois hélas manquant sur la quasi totalité des modèles en circulation. Cette combinaison a déjà été tentée sur le TI-Phoenix 1 et sans succès.
Mais c'est en fait normal: cette combinaison est normalement lue par le Boot1, et ici il est remplacé par un U-Boot non développé spécifiquement pour le matériel Nspire. Ce dernier est incapable de lire le clavier Nspire ou même d'écrire sur l'écran... Comme on peut le voir en RS232, les entrées et sorties ne se font que sur le port série:
Code: Tout sélectionner
U-Boot 1.1.2 (Jan 23 2006 - 11:21:34)

U-Boot code: 11080000 -> 110E3094  BSS: -> 110EF750
RAM Configuration:
Bank #0: 10000000 32 MB
Flash: 512 kB
NAND:32 MB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
Phoenix Demo#


Rappelons toutefois que ce U-Boot a été compilé spécifiquement par TI, et qu'ils l'ont peut-être un peu personnalisé. Mais maintenant que nous sommes arrivés dans le menu après avoir interrompu le démarrage, demandons la liste des commandes:
Code: Tout sélectionner
Phoenix Demo# 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 Demo#


Pleins de trucs intéressants notamment relatifs à une gestion du réseau, mais qui restent normaux dans un loader U-Boot.
A l'exception de... vous avez vu vers la fin? Il y a une commande tidiag que TI a donc spécifiquement rajouté avant de recompiler U-Boot pour TI-Nspire CAS+! :bj:

Voyons un peu ça:
Code: Tout sélectionner
Phoenix Demo# tidiag
Starting Phoenix diagnostics...
HALDisplayInit
inside KeyBoardInit_TI
GPIOSetDirection
keyboard and mpuio configuration

2193


Bingo, il y a bien un logiciel de diagnostics dans le TI-Phoenix 1, mais il est intégré au Boot1 (U-Boot ici) et ne peut être lancé que par envoi externe d'une commande sur le port série du connecteur Dock.

On reconnaît la plupart des menus habituels dans les logiciels de diagnostics TI-Nspire:
2192 2191 2190 2189 2188 2185 2183 2182


Nombre de ces menus semblent toutefois incomplets on non implémentés sur ce tout premier logiciel de diagnostics. Le menu 'Information screen' par exemple n'affiche rien et retourne directement au menu d'accueil.
La plupart des tests de plus vous demandent de confirmer vous-même si le test a réussi ou échoué:
2184


On notera avec amusement que lors du test clavier, l'image est ici couchée contrairement aux versions ultérieures du logiciel:
2187 2186


Petite bizarrerie, la touche :nsclp: échoue au test, et l'image indique d'enfoncer une touche au centre du joypad (qui serait logiquement le clic), alors que ce dernier ne s'enfonce pas.



U-Boot étant sous licence GPL, on peut donc se demander si le code du diagnostics lancé ici par la commande 'tidiags' tombe sous le coup de cette même licence, auquel cas il y a il me semble obligation pour TI de fournir le code source de ses diagnostics TI-Nspire et de tout ce qui est inclus dedans (carte SD, gestion réseau, JTAG...).



A bientôt pour d'autres découvertes encore plus extraordinaires
et toujours originales et inédites!
:bj:



Lien:
Boot1 TI-Phoenix 1