Outils pour utilisateurs

Outils du site


Panneau latéral

nas:dockstar:jtag

Table des matières

Liens de référence :
http://plume.redox.ws/article13/dockstar-debricking-jtag-with-buspirate
http://www.yourwarrantyisvoid.com/2010/09/08/dead-dockstar-resurrected-with-jtag/
http://dangerousprototypes.com/2011/08/17/dockstar-debricking-jtag-with-bus-pirate/
http://dangerousprototypes.com/docs/Pirate-Loader_console_upgrade_application_%28Linux,_Mac,_Windows%29
http://dangerousprototypes.com/docs/Bus_Pirate#JTAG_and_OpenOCD
http://dangerousprototypes.com/forum/viewtopic.php?t=1702
http://www.neufbox4.org/forum/viewtopic.php?pid=23551#p23551
http://archlinuxarm.org/forum/viewtopic.php?f=18&t=195&sid=85b9bed78edf2646339d0e38e0a7e79b

Solution ultime en cas de perte du Dockstar lors d'une mauvaise manipulation pendant le flashage.
Nécessité d'avoir un câble série et un connecteur JTAG (BusPirate v3b).

BusPirate

Nécessité d'avoir le BusPirate avec un firmware 5.8 max., une version spéciale ou le compiler soit même.
Le support d'OpenOCD n'est plus pris en compte par défaut dans les versions 5.8+ (après rev524 de binIO.c).
Utilisation du firmware buspirate.production.zip en RC6.0

OpenOCD

OpenOCD doit prendre en compte le support du BusPirate qui n'est pas par défaut.
Compilation d'OpenOCD :

>git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd
>cd openocd
>./bootstrap
>./configure --enable-buspirate --enable-maintainer-mode
>make
>sudo make install

Fichiers de configuration modifié à installer dans :

Dans buspirate.cfg modifier le device en fonction de votre configuration

Branchement

Voir pour le câble série
Le branchement se fait comme suit pour le BusPirate :

Seeed Studio et série ou Sparkfun et série
Couleur Pin Pin Couleur Couleur Pin Pin Couleur
/ 1-NC 10-GND GND / 1-NC 10-GND GND
Bleu 2-Aux 9-RxD TxD Vert 2-Aux 9-RxD TxD
Gris 3-TDI 8-TxD RxD Orange 3-TDI 8-TxD RxD
Blanc 4-TMS 7-NC / Rouge 4-TMS 7-NC /
Violet 5-TCK 6-TDO Noir Jaune 5-TCK 6-TDO Marron

Connexion

Brancher le Dockstar puis l'adaptateur série et le BusPirate.
Démarrer le serveur OpenOCD dans un terminal (A):

A>cd /usr/local/share//openocd/scripts/
A>opencd -f board/dockstar.cfg

Démarrer un autre terminal (B) et se connecter au serveur OpenOCD :

B>telnet localhost 4444

Démarrer un autre terminal (C) et se connecter par câble série :

C>minicom -D /dev/ttyUSB0

Il est nécessaire d'avoir une image U-Boot valide pour la suite.
Dans le terminal (B) :

B>init

La commande suivante est à taper puis on appuie sur le bouton reset et on valide la commande et simultanément on relâche le bouton reset.
La commande “halt” attend l'arrêt du processeur dans les 5 millisecondes.

B>halt
target state: halted
target halted in Thumb state due to debug-request, current mode: Supervisor
cpsr: 0x400000f3 pc: 0xffff0a42
MMU: enabled, D-Cache: enabled, I-Cache: enabled
B>

Pour que le reste de la manipulation fonctionne, il faut être arrêté en mode “ARM” et non “Thumb” comme ci-dessus. Il faut recommencer les manipulations précédentes jusqu'à obtenir ce qui suit :

B>halt
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x000000d3 pc: 0xffff0000
MMU: disabled, D-Cache: disabled, I-Cache: disabled

Il existe 2 méthodes pour installer l'image de U-Boot :

  • charger l'image en mémoire puis l'installer à partir du nouveau U-Boot,
  • installer directement l'image sur la NAND.

Pour les commandes, il y a aussi 2 possibilités :

  • taper les commandes une à une,
  • utiliser des macros inscrites dans le fichier “dockstar.cfg”.

Charger U-Boot en mémoire

Commandes successives

Pour la commande “load_image”, il faut indiquer le chemin absolu du fichier soit par exemple “/home/moncompte/Documents/u-boot.kwb”.
La commande “load_image” peut prendre plusieurs minutes à s'exécuter (ici 9min).

B>dockstar_init
B>load_image /tmp/uboot.mtd0.kwb 0x800000
524288 bytes written at address 0x00800000
downloaded 524288 bytes in 593.427490s (0.863 KiB/s)
B>resume 0x800200

Dans le terminal (C), on arrête le processus de redémarrage en tapant sur “Entrée”, puis :

U-Boot 2011.12 (Jul 11 2012 - 19:03:43)
Seagate FreeAgent DockStar - SD/MMC

SoC:   Kirkwood 88F6281_A0                                                             
DRAM:  128 MiB                                                                         
WARNING: Caches not enabled                                                            
NAND:  256 MiB                                                                         
In:    serial                                                                          
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  0
Marvell>>nand write.e 0x800000 0x0 0x80000
Marvell>>reset
Macros

Modifier dans le fichier “dockstar.cfg” le chemin pour “load_image” pour refléter son emplacement dans la macro “proc dockstar_load_uboot { } {“
Puis dans le terminal (B) :

B>dockstar_reflash_uboot
524288 bytes written at address 0x00800000
downloaded 524288 bytes in 593.427490s (0.863 KiB/s)

Passer sur le terminal (C), arrêter le processus avec la touche “Entrée”, puis :

U-Boot 2011.12 (Jul 11 2012 - 19:03:43)
Seagate FreeAgent DockStar - SD/MMC

SoC:   Kirkwood 88F6281_A0                                                             
DRAM:  128 MiB                                                                         
WARNING: Caches not enabled                                                            
NAND:  256 MiB                                                                         
In:    serial                                                                          
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  0
Marvell>>nand write.e 0x800000 0x0 0x80000
Marvell>>reset

Installer U-Boot sur NAND

Commandes successives

Pour la commande “nand write”, il faut indiquer le chemin absolu du fichier soit par exemple ”/home/moncompte/Documents/u-boot.kwb”.
La commande “nand write” peut prendre plusieurs minutes à s'exécuter (ici 9min).

dockstar_init
nand probe 0
NAND flash device 'NAND 256MiB 3.3V 8-bit (Micron)' found
nand erase 0 0x0 0x80000
erased blocks 0 to 3 on NAND flash device #0 'NAND 256MiB 3.3V 8-bit'
nand write 0 /tmp/uboot.mtd0.kwb 0 oob_softecc_kw
wrote file /tmp/uboot.mtd0.kwb to NAND flash 0 up to offset 0x00080000 in 1222.956299s (0.419 KiB/s)
resume

Sur le terminal (C) :

U-Boot 2011.12 (Jul 11 2012 - 19:03:43)
Seagate FreeAgent DockStar - SD/MMC

SoC:   Kirkwood 88F6281_A0                                                             
DRAM:  128 MiB                                                                         
WARNING: Caches not enabled                                                            
NAND:  256 MiB                                                                         
In:    serial                                                                          
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  0
Marvell>>
Macros

Modifier dans le fichier “dockstar.cfg” le chemin pour “nand write” pour refléter son emplacement dans la macro “proc dockstar_reflash_uboot { } {“
Puis dans le terminal (B) :

B>dockstar_reflash_uboot
NAND flash device 'NAND 256MiB 3.3V 8-bit (Micron)' found
erased blocks 0 to 3 on NAND flash device #0 'NAND 256MiB 3.3V 8-bit'
wrote file /tmp/uboot.mtd0.kwb to NAND flash 0 up to offset 0x00080000 in 1222.956299s (0.419 KiB/s)

Sur le terminal (C) :

U-Boot 2011.12 (Jul 11 2012 - 19:03:43)
Seagate FreeAgent DockStar - SD/MMC

SoC:   Kirkwood 88F6281_A0                                                             
DRAM:  128 MiB                                                                         
WARNING: Caches not enabled                                                            
NAND:  256 MiB                                                                         
In:    serial                                                                          
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  0
Marvell>>
nas/dockstar/jtag.txt · Dernière modification: 17 /11/2016 15:03 par psolyca