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).
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 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
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 |
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 :
Pour les commandes, il y a aussi 2 possibilités :
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
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
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>>
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>>