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>>