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 {{:dockstar: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 :
* /usr/local/share/openocd/scripts/board/ pour {{:dockstar:dockstar.cfg|}}
* /usr/local/share/openocd/scripts/interface pour {{:dockstar:buspirate.cfg|}}
**Dans buspirate.cfg modifier le device en fonction de votre configuration**
==== Branchement ====
Voir [[nas:dockstar:amelioration:ajout_cable_serie|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>>