Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
nas:dockstar:jtag [13 /07/2012 16:36] psolyca [Connexion] |
nas:dockstar:jtag [17 /11/2016 15:03] (Version actuelle) psolyca ↷ Liens modifiés en raison d'un déplacement. |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
http://dangerousprototypes.com/docs/Bus_Pirate#JTAG_and_OpenOCD\\ | http://dangerousprototypes.com/docs/Bus_Pirate#JTAG_and_OpenOCD\\ | ||
http://dangerousprototypes.com/forum/viewtopic.php?t=1702\\ | 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.\\ | Solution ultime en cas de perte du Dockstar lors d'une mauvaise manipulation pendant le flashage.\\ | ||
Ligne 26: | Ligne 28: | ||
>sudo make install | >sudo make install | ||
</code> | </code> | ||
- | Fichiers de configuration à installer dans : | + | Fichiers de configuration modifié à installer dans : |
- | * /usr/share/local/openocd/scripts/board/ pour {{:dockstar:dockstar.cfg|}} | + | * /usr/local/share/openocd/scripts/board/ pour {{:dockstar:dockstar.cfg|}} |
- | * /usr/share/local/openocd/scripts/interface pour {{:dockstar:buspirate.cfg|}} | + | * /usr/local/share/openocd/scripts/interface pour {{:dockstar:buspirate.cfg|}} |
+ | **Dans buspirate.cfg modifier le device en fonction de votre configuration** | ||
==== Branchement ==== | ==== Branchement ==== | ||
- | Voir [[Dockstar:amelioration:ajout_cable_serie|pour le câble série]]\\ | + | Voir [[nas:dockstar:amelioration:ajout_cable_serie|pour le câble série]]\\ |
Le branchement se fait comme suit pour le BusPirate : | Le branchement se fait comme suit pour le BusPirate : | ||
^ Seeed Studio et série ^^^^ou^ Sparkfun et série ^^^^ | ^ Seeed Studio et série ^^^^ou^ Sparkfun et série ^^^^ | ||
Ligne 45: | Ligne 47: | ||
Démarrer le serveur OpenOCD dans un terminal (A): | Démarrer le serveur OpenOCD dans un terminal (A): | ||
<code> | <code> | ||
- | >cd /usr/local/share//openocd/scripts/ | + | A>cd /usr/local/share//openocd/scripts/ |
- | >opencd -f board/dockstar.cfg | + | A>opencd -f board/dockstar.cfg |
</code> | </code> | ||
Démarrer un autre terminal (B) et se connecter au serveur OpenOCD : | Démarrer un autre terminal (B) et se connecter au serveur OpenOCD : | ||
<code> | <code> | ||
- | >telnet localhost 4444 | + | B>telnet localhost 4444 |
</code> | </code> | ||
Démarrer un autre terminal (C) et se connecter par câble série : | Démarrer un autre terminal (C) et se connecter par câble série : | ||
<code> | <code> | ||
- | >minicom -D /dev/ttyUSB0 | + | C>minicom -D /dev/ttyUSB0 |
</code> | </code> | ||
Il est nécessaire d'avoir une image U-Boot valide pour la suite.\\ | Il est nécessaire d'avoir une image U-Boot valide pour la suite.\\ | ||
Dans le terminal (B) : | Dans le terminal (B) : | ||
<code> | <code> | ||
- | >init | + | B>init |
- | >halt ((taper la commande, appuyer sur reset, valider la commande et relâcher reset)) | + | </code> |
- | >dockstar_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.\\ |
- | >load_image u-boot.kwb 0x800000 ((peut prendre plusieurs minutes)) | + | La commande "halt" attend l'arrêt du processeur dans les 5 millisecondes. |
- | >go 0x800200 | + | <code> |
+ | 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> | ||
+ | </code> | ||
+ | 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 : | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | 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). | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | Dans le terminal (C), on arrête le processus de redémarrage en tapant sur "Entrée", puis : | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | == 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) : | ||
+ | <code> | ||
+ | B>dockstar_reflash_uboot | ||
+ | 524288 bytes written at address 0x00800000 | ||
+ | downloaded 524288 bytes in 593.427490s (0.863 KiB/s) | ||
+ | </code> | ||
+ | Passer sur le terminal (C), arrêter le processus avec la touche "Entrée", puis : | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | === 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). | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | Sur le terminal (C) : | ||
+ | <code> | ||
+ | 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>> | ||
+ | </code> | ||
+ | == 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) : | ||
+ | <code> | ||
+ | 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) | ||
+ | </code> | ||
+ | Sur le terminal (C) : | ||
+ | <code> | ||
+ | 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>> | ||
</code> | </code> |